Проблема с IR приемником и LCD 128x64

Нет ответов
gapich.evgenij
Offline
Зарегистрирован: 04.07.2015

Не могу разобраться. Подключаю LCD 128x64 и IR приемник. Даже не нажимаю на кнопки пульта начинает без перестанку сыпать в сериал мусор: "C235C82D

A64D4B97
6E03BA79
6E79A67D
F5AA6C03
E156D187
FEF185F2
E556464
FEF419A7
2B75CC82
 
Подключаю LCD 20x4. Соответственно коментирую строки 74-79. Все нормально. Принимает нормально коды.
Что не так?
#include "U8glib.h"
U8GLIB_ST7920_128X64_1X u8g(22, 24, 26);	// SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17

#include <IRremote.h>
IRrecv irrecv(4);
decode_results results;
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x3F, 20, 4);


void draw(void) {
  // graphic commands to redraw the complete screen should be placed here  
  u8g.setFont(u8g_font_unifont);
  //u8g.setFont(u8g_font_osb21);
  u8g.drawStr( 0, 22, "Hello World!");
}

void setup(void) {

  Serial.begin(9600);
  irrecv.enableIRIn();
  //LCD
#ifdef AVR
  Wire.begin();
#else
  Wire1.begin(); // Shield I2C pins connect to alt I2C bus on Arduino Due
#endif
  lcd.init();   // initialize the lcd
  lcd.backlight();
  //--LCD  
  // flip screen, if required
  // u8g.setRot180();
  
  // set SPI backup if required
  //u8g.setHardwareBackup(u8g_backup_avr_spi);

  // assign default color value
  if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
    u8g.setColorIndex(255);     // white
  }
  else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
    u8g.setColorIndex(3);         // max intensity
  }
  else if ( u8g.getMode() == U8G_MODE_BW ) {
    u8g.setColorIndex(1);         // pixel on
  }
  else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
    u8g.setHiColorByRGB(255,255,255);
  }
}

void ir_button_read()
{
  if (irrecv.decode(&results))
  {
    Serial.println(results.value, HEX);
    irrecv.resume();
    delay(100);
  }
}

void loop(void) {
  // picture loop
  if (irrecv.decode(&results))
  {
    lcd.setCursor(0, 0); //Позиція 0, строка 0
    lcd.print("code=");
    lcd.print(results.value, HEX);
    Serial.println(results.value, HEX);
    irrecv.resume();
    delay(100);
  }
  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );
  delay(500);
//   rebuild the picture after some delay
}

 

"