Вывод на графический дисплей информации с сом порта
- Войдите на сайт для отправки комментариев
подключил графический. статическую информацию печатает а с порта не получается вывести. мигнет и исчезает.
// инициализируем библиотеку 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);
}
}
}
}
. // инициализируем библиотеку LCD //LiquidCrystal lcd(12, 13, 11, 10, 9, 8); #include "U8glib.h" U8GLIB_ST7920_128X64 u8g(37, 35, 39, U8G_PIN_NONE); // настройка пинов String s1="00.00"; String s2="00.00"; String s3=" 000 "; void setup(){ // устанавливаем параметры дисплея: // u8g.setFont(u8g_font_gdb20); Serial.begin(9585); //9585здесь не забываем указать скорость вашего порта роутера // Serial.setTimeout (1000); } void loop() { char s; String str; u8g.firstPage(); u8g.setFont(u8g_font_gdb17); u8g.setRot90(); // u8g.setRGB(100,200,200); // u8g.drawStr( 66, 0, "Color Page"); do { if (Serial.available()) { delay(100); while (Serial.available() > 0) { s=Serial.read(); if (s=='^') { switch (Serial.read()) { case '1': s1=""; str="1"; Serial.read(); break; case '2': s2=""; str="2"; Serial.read(); break; case '3': s3=""; str="3"; Serial.read(); break; } //switch } else { if (str=="1") { s1=s1+s; } else { if (str=="2") { s2=s2+s; } else { if (str=="3") { s3=s3+s; } } } } Serial.print("1:"+s1); Serial.print("2:"+s2); Serial.print("3:"+s3); } } u8g.setPrintPos(0, 20); u8g.print(" BEC "); u8g.setPrintPos(0, 45); u8g.print(s1); u8g.setPrintPos(0, 70); u8g.print(s2); u8g.setPrintPos(0, 100); u8g.print(" KOR "); u8g.setPrintPos(0, 125); u8g.print(s3); } while( u8g.nextPage() ); }этот код заработал. не там переменые объявлял