Вывод на графический дисплей информации с сом порта
- Войдите на сайт для отправки комментариев
подключил графический. статическую информацию печатает а с порта не получается вывести. мигнет и исчезает.
// инициализируем библиотеку LCD //LiquidCrystal lcd(12, 13, 11, 10, 9, 8); #include "U8glib.h" U8GLIB_ST7920_128X64 u8g(37, 35, 36, U8G_PIN_NONE); // настройка пинов void ScreenSaver() { u8g.setFont(u8g_font_gdb20n); u8g.drawStr(40, 60, "BARA"); } void setup(){ // устанавливаем параметры дисплея: u8g.setFont(u8g_font_gdb20); Serial.begin(9585); //9585здесь не забываем указать скорость вашего порта роутера // Serial.setTimeout (1000); } void loop() { char s; char st; char str; u8g.firstPage(); do { if (Serial.available()) { delay(100); while (Serial.available() > 0) { s=Serial.read(); if (s=='^') { switch (Serial.read()) { case '1': st=30; //u8g.setPrintPos(20, 20); Serial.read(); break; case '0': st=60; //u8g.setPrintPos(20, 60); Serial.read(); break; } //switch } else { str=s; // Выводим каждый символ на LCD } } } u8g.setFont(u8g_font_gdb20); u8g.setPrintPos(40, 40); u8g.print(str); u8g.println(); } while( u8g.nextPage() ); }
был дисплей 16х2 все работало. с таким кодом:
#include
// инициализируем библиотеку LCD
LiquidCrystal lcd(12, 13, 11, 10, 9, 8);
void ScreenSaver()
{
int i;
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" BARA ");
lcd.setCursor(0,1);
lcd.print(" 2016 ");
delay(3000);
lcd.clear();
for (i=0;i<8;i++)
{
lcd.setCursor(i,0);
lcd.print("=");
lcd.setCursor(16-i-1,0);
lcd.print("=");
delay(200);
}
lcd.clear();
}
void setup(){
// устанавливаем параметры дисплея:
lcd.begin(16, 2);
// инициализируем последовательный порт:
Serial.begin(9585); //9585здесь не забываем указать скорость вашего порта роутера
}
void loop()
{
char s;
if (Serial.available())
{
delay(100);
while (Serial.available() > 0)
{
s=Serial.read();
if (s=='^') {
switch (Serial.read()) {
case '1':
lcd.setCursor(0,1);
Serial.read();
break;
case '0':
lcd.setCursor(0,0);
Serial.read();
break;
case 'c':
lcd.clear();
Serial.read();
break;
case 's':
Serial.read();
ScreenSaver();
break;
} //switch
}
else {
// Выводим каждый символ на LCD
lcd.write(s);
}
}
}
}
этот код заработал. не там переменые объявлял