• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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;
}

}







 
Сверху Снизу