Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

LynX
2018-07-09 14:23:32

Попробуйте другие библиотеки, их для LiquidCrystal_I2C как минимум 3. Две в IDE, одна NEWLiquidCrystal_I2C - нужно устанавливать вручную.

А еще нужно знать АДРЕС контроллера на шине I2C, даже несмотря что он один. Смотрите какой адрес у Вашего контроллера и как он устанавливается. Или поищите сканер I2C адресов.

Makcim
2018-07-09 12:51:00

Вот код:

#include <Keypad.h> 
#include <Wire.h>  
#include <LiquidCrystal_I2C.h>
#define printByte(args) write(args);
int Cursor = 0;
uint8_t heart[8] = {0x0,0xa,0x1f,0x1f,0xe,0x4,0x0};
const byte ROWS = 4; 
const byte COLS = 4; 
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
}; 
byte rowPins[ROWS] = {9,8,7,6}; 
byte colPins[COLS] = {5,4,3,2}; 
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
  Serial.begin(9600);
  LiquidCrystal_I2C lcd(0x27, 16, 2);
  lcd.init();  // инициализация ЖК дисплея
  lcd.backlight();  // включение подсветки дисплея
  lcd.createChar(3, heart);  // создаём символ «сердце» в 3 ячейке памяти
  lcd.home();
}
void loop(){
  char key = keypad.getKey();
  
  if (key){
    Serial.println(key);
    if (key == 1){
25     lcd.print(1);
     Cursor =+ 1;
27     lcd.setCursor(Cursor, 0);
    }else if (key == 2){
29      lcd.print(2);
      Cursor =+ 1;
31      lcd.setCursor(Cursor, 0);
      }else if (key == 3){
33       lcd.print(3);
       Cursor =+ 1;
35       lcd.setCursor(Cursor, 0);
       }else if (key == 4){
37        lcd.print(4);
        Cursor =+ 1;
39        lcd.setCursor(Cursor, 0);
    } 
  }
}

На 39, 37, 35, 33, 31, 29, 27, 25 не распознает lcd

Підвал форуму