Вывод на графический дисплей информации с сом порта

uno
Offline
Зарегистрирован: 16.06.2016

подключил графический. статическую информацию печатает а с порта не получается вывести. мигнет и исчезает.

// инициализируем библиотеку 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);
}
}
}
}

 

 

 

 

uno
Offline
Зарегистрирован: 16.06.2016
.
// инициализируем библиотеку 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() );
}

 

uno
Offline
Зарегистрирован: 16.06.2016

этот код заработал. не там переменые объявлял