Как вы без проверки на макетке? Соберите на макетке, оттестируйте, а уже потом на плату переносите.На макетке я это не собирал, заказывал платы.
По плате видно что дисплей напрямую подключается, через 4-битный интерфейс.Если I2C, может не оказаться подтягивающих резисторов.
Не факт, хоть проводов и хватает.По плате видно что дисплей напрямую подключается, через 4-битный интерфейс.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
byte Char_1[8] = {B00100,B01010,B01010,B01010,B10001,B11111,B10001,B10001};//A
byte Char_2[8] = {B00111,B00101,B00101,B00101,B01001,B01001,B01001,B10001};//Л
byte Char_3[8] = {B11111,B10000,B10000,B11111,B10000,B10000,B10000,B11111};//Е
byte Char_4[8] = {B10001,B10010,B10100,B11000,B11000,B10100,B10010,B10001};//К
byte Char_5[8] = {B11111,B10000,B10000,B10000,B10000,B10000,B10000,B11111};//C
byte Char_6[8] = {B01010,B00100,B10011,B10101,B10101,B11001,B11001,B10001};//Й
byte Char_7[8] = {B11111,B10000,B10000,B11110,B10001,B10001,B10001,B11110};//Б
byte Char_8[8] = {B11110,B10001,B10001,B11110,B10000,B10000,B10000,B10000};//Р
byte Char_9[8] = {B10001,B10001,B10001,B11111,B10001,B10001,B10001,B10001};//Н
byte Char_10[8] = {0x11,0x11,0x11,0x1F,0x11,0x11,0x11,0x11};//Н
void setup() {
lcd.createChar(1,Char_1);
lcd.createChar(2,Char_2);
lcd.createChar(3,Char_3);
lcd.createChar(4,Char_4);
lcd.createChar(5,Char_5);
lcd.createChar(6,Char_6);
lcd.createChar(7,Char_7);
lcd.createChar(8,Char_8);
lcd.createChar(9,Char_9);
lcd.createChar(10,Char_10);
lcd.init();
lcd.home();
lcd.backlight();
lcd.write(1);
lcd.write(2);
lcd.write(3);
lcd.write(4);
lcd.write(5);
lcd.write(3);
lcd.write(10);
}
void loop() {
}
Wire.begin();
, причём сделать это до lcd.init();
. Опять же, память дисплея не резиновая, в неё можно записать не более 8-ми пользовательских символов одновременно, нумерация от 0 до 7.#include <LCD_1602_RUS.h>
LCD_1602_RUS lcd(0x27, 16, 2);
void setup()
{
Serial.begin(9600);
Serial.println("status");
Serial.println(lcd.status());
Serial.println("avaliable");
Serial.println(lcd.availableForWrite());
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(2, 0);
lcd.print(L"Теперь можно");
lcd.setCursor(3, 1);
lcd.print(L"по-русски");
}
void loop()
{
}
Контрастность крутили?ни один пример из папки библиотеки не вывел на дисплей ничего, только загорается подсветка
#include <Wire.h>
void setup() {
Serial.begin (115200);
// Leonardo: wait for serial port to connect
while (!Serial)
{
}
Serial.println ();
Serial.println ("I2C scanner. Scanning ...");
byte count = 0;
Wire.begin();
for (byte i = 8; i < 120; i++)
{
Wire.beginTransmission (i);
if (Wire.endTransmission () == 0)
{
Serial.print ("Found address: ");
Serial.print (i, DEC);
Serial.print (" (0x");
Serial.print (i, HEX);
Serial.println (")");
count++;
delay (1); // maybe unneeded?
} // end of good response
} // end of for loop
Serial.println ("Done.");
Serial.print ("Found ");
Serial.print (count, DEC);
Serial.println (" device(s).");
} // end of setup
void loop() {}