• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP8266 вывод VGA и кнопка.

OLDBIM

New member
Добрый день. Я новичек в программировании, помогите пожалуйста.
Есть ESP07, нашел библиотеку вывода текста на VGA монитор - https://github.com/smaffer/espvgax/.
Проблема в том что не знаю как сделать переключение текса(по типу меню) с одной кнопки.
Ниже мой скетч.

#include <ESPVGAX.h>
#include <fonts/monodos12.h>
ESPVGAX vga;
int buttonState = 0;
int Program = 0;
static const ESPVGAX_ALIGN32 char str0[] PROGMEM="\
\n\
. text1"; //текст №1

static const ESPVGAX_ALIGN32 char str1[] PROGMEM="\
\n\
. text2"; //текст №2

static const ESPVGAX_ALIGN32 char str2[] PROGMEM="\
\n\
. text3"; //текст №3

void setup() {
vga.begin();
pinMode(12,INPUT);
}
void loop() {
while (1) {
buttonState = digitalRead(12);

if(buttonState == HIGH)
{Program+=1;
vga:delay(1000);}

if(Program>=3)
{Program=0;}

switch (Program) {
case 0:

vga.setBitmapFont((uint8_t*)img_monodos12_data, 12);
vga.print_P(str0, 0, 0, true);
break;
case 1:

vga.setBitmapFont((uint8_t*)img_monodos12_data, 12);
vga.print_P(str1, 0, 0, true);
break;
case 2:

vga.setBitmapFont((uint8_t*)img_monodos12_data, 12);
vga.print_P(str2, 0, 0, true);
break;
}
}
}


Укажите на ошибку.
 

OLDBIM

New member
все решилось
#include <ESPVGAX.h>
#include <fonts/monodos12.h>
const int buttonPin = 12;
int buttonState = 0;
int Program = 0;
ESPVGAX vga;

static const ESPVGAX_ALIGN32 char str0[] PROGMEM = "\
\n\
text1";
static const ESPVGAX_ALIGN32 char str1[] PROGMEM = "\
\n\
text2";
static const ESPVGAX_ALIGN32 char str2[] PROGMEM = "\
\n\
text3";

void setup() {
vga.begin();
pinMode(buttonPin, INPUT);
}

void loop() {

buttonState = digitalRead(buttonPin);
if (buttonState == HIGH)
{ Program += 1;
vga.delay(100);
}

if (Program >= 3)
{
Program = 0;
}

switch (Program) {
case 0:
vga.setBitmapFont((uint8_t*)img_monodos12_data, 12);
vga.print_P(str0, 0, 0, true);
vga.delay(100);
break;

case 1:
vga.setBitmapFont((uint8_t*)img_monodos12_data, 12);
vga.print_P(str1, 0, 0, true);
vga.delay(100);
break;

case 2:
vga.setBitmapFont((uint8_t*)img_monodos12_data, 12);
vga.print_P(str2, 0, 0, true);
vga.delay(100);
break;
}

}







 
Сверху Снизу