Друзья, приветствую. Помогите, не могу понять в чем дело. Не получается создать собственный символ на LCD 1602. После компиляции экран пустой, т.е. никаких символов не отображено. Правильность подключения и работоспособность ЖКИ проверил на другом коде - все исправно. Вот код с моим символом: Код (C++): #include <LiquidCrystal.h> LiquidCrystal lcd (4, 5, 6, 7, 8, 9); // k vivodam na lcd byte a[8] = { B00100, B01010, B01010, B01010, B10001, B10001,B01110, B00000 }; void setup() { lcd.begin (16, 2); lcd.createChar(1, a); } void loop() { lcd.write (byte(0)); }
нашел косяк в коде: Код (C++): lcd.createChar(1, a[8]); lcd.write (byte(0)); Но дело не в этом. Это я пытался экспериментировать.
Народ, как такое может быть при таком коде? Как думаете, что не так? Код (C++): #include <LiquidCrystal.h> LiquidCrystal lcd (4, 5, 6, 7, 8, 9); // k vivodam na lcd byte a[8] = { B00100, B00100, B11111, B00100, B00000, B00000, B00000, B00000 }; void setup() { lcd.createChar(0, a[8]); lcd.begin (16, 2); } void loop() { lcd.write (byte(0)); }
Не так тот факт, что ты в loop с охренительной частотой фигачишь в экран. Перенеси из loop строчку кода в конец setup и посмотри - будут изменения?
Код (C++): byte a[8] = { B00100, B00100, B11111, B00100, B00000, B00000, B00000, B00000 }; lcd.createChar(0, a[8]); //Вылез за пределы массива Вышел за пределы массива и слепил символ из того что было.
В этом случае у меня будет заполнена одна клетка, а если в loop поставить lcd.write, то у меня заполнятся все клетки.
Все заработало. Спасибо всем. Очень странно то, что изначально такой же код прописывал, а он мне какую-то х***ю показывал на ЖКИ.
Кому интересно, вот исправный код, при котором ЖКИ полностью будет заполнен моим символом. Код (C++): #include <LiquidCrystal.h> LiquidCrystal lcd (4, 5, 6, 7, 8, 9); // k vivodam na lcd byte a[8] = { B00100, B00100, B01010, B01010, B01010, B10001, B10101, B01110 }; void setup() { lcd.createChar(0, a); lcd.begin (16, 2); } void loop() { lcd.write (byte(0)); }
не такой же. Изначально ты создавал символ номер 1, а выводил на экран символ 0 - так что не удивительно
Дорогой, изначально было 0 и 0, я некорректно скопировал сюда просто после того, как экспериментировал с этими цифрами, вот и все.
ну если ты "экспериментировал", будет ли выводится символ 1, если его описать как символ 0 - то тем более неудивительно, что не работало это как эксперимеентировать, не заработает ли сломаный холодильник, если втыкать в розетку вилку от торшера
Экспериментировал это было в процессе, я хотел вместо 0 поставить 1 и не успел. Да короче, какая разница вообще. Суть в том,что дело совершенно не в этом было