LCD 5110
- Войдите на сайт для отправки комментариев
Втр, 07/11/2017 - 12:37
Добрый день! Выковырял из старой нокии дисплей. подключил все по инструкции --- через резисторы (нашел только 3 кОм) и кондер 4 мкФ. Вывод текста впринципе работает, а вот при загрузке стандартных примеров вывода картинки -- проблемы( Картинка рассыпается. Да и вообще ловлю какие-то приколы, то кубики всплывают черные в разных частях экрана (помогает ресет --- пропадают), то мусор. В чем может быть проблема может быть кто сталкивался?



Причин может быть 100500 - сопли, неверное подключение, ошибки в скетче. Ты не привел ни схемы, ни скетча, так что ХЗ.
Да, если чо, так фотка на которой толком ни хрена не видно - это не схема.
Доверия к тому, что ты собрал правильно нет никакого после заявления о конденсаторе на 4 мкф (ну, не бывает таких!)
Результат стандартного примера 5110 битмап... Картинка есть, но смещена куда-то в стороны и снизу присутствует мусор
Скетч:
Схема подключения --- как на фото, только у меня ардуино НАНО, выдает сразу 3 вольта, понижать напряжение я так понял что не нужно. Резисторов как на картинке не нашлось, есть на 3 кОм. Конденсатор, если быть точнее 3.3 мкФ 400вольт. ставил и 10мкФ 50вольт - результат тот же.
Контакты на этом lcd очень лёгко повредить. Так что наиболее вероятно что "сопли". Обычно легко диагностируется покачиванием проводов.
Парень, вот я смотрю на твоё фото, и смотрю на приведённую схему .... они же разные!
В общем, если тебе нужна помощь, то давайю ТВОЮ схему и ТВОЙ скетч, а не
фуфло для лоховкартинки с посторонних сайтов. Проблема-то у тебя, а не у автора, у которого ты схемы сдуваешь и мне подсовываешь.Покажите где они разные, за исключеним диода и резистора для понижения питания, которые я не использовал -- т.к. у меня Адруино Нано и 3.3 вольта есть изначально.
Вот например текстовый скетч, ничего не плывет, все отлично отображается... Я не могу понять почему так происходит. Если есть сопля и плохой контакт, то плыть будет все, и текст и картинки... А тут.. текст отлично, картинки нет. Не понимаю :(
#define RST 12 #define CE 11 #define DC 10 #define DIN 9 #define CLK 8 #include "font.h"; void LcdWriteString(char *characters) { while(*characters) LcdWriteCharacter(*characters++); } void LcdWriteCharacter(char character) { for(int i=0; i<5; i++) LcdWriteData(ASCII[character - 0x20][i]); LcdWriteData(0x00); } void LcdWriteData(byte dat) { digitalWrite(DC, HIGH); //DC pin is low for commands digitalWrite(CE, LOW); shiftOut(DIN, CLK, MSBFIRST, dat); //transmit serial data digitalWrite(CE, HIGH); } void LcdXY(int x, int y) { LcdWriteCmd(0x80 | x); // Column. LcdWriteCmd(0x40 | y); // Row. } void LcdWriteCmd(byte cmd) { digitalWrite(DC, LOW); //DC pin is low for commands digitalWrite(CE, LOW); shiftOut(DIN, CLK, MSBFIRST, cmd); //transmit serial data digitalWrite(CE, HIGH); } void setup() { pinMode(RST, OUTPUT); pinMode(CE, OUTPUT); pinMode(DC, OUTPUT); pinMode(DIN, OUTPUT); pinMode(CLK, OUTPUT); digitalWrite(RST, LOW); digitalWrite(RST, HIGH); LcdWriteCmd(0x21); // LCD extended commands LcdWriteCmd(0xBF); // set LCD Vop (contrast) LcdWriteCmd(0x04); // set temp coefficent LcdWriteCmd(0x14); // LCD bias mode 1:40 LcdWriteCmd(0x20); // LCD basic commands LcdWriteCmd(0x0C); // LCD normal video for(int i=0; i<504; i++) LcdWriteData(0x00); // clear LCD LcdXY(0,0); LcdWriteString("Sketch uses 1562 bytes (5%) of program storage space. Maximum is 30720 bytes. Global variables use 567 bytes (27%) of dynamic me"); } void loop() { }+ font.h
#include <Arduino.h> static const byte ASCII[][5] = { {0x00, 0x00, 0x00, 0x00, 0x00} // 20 ,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 ! ,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 " ,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 # ,{0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $ ,{0x23, 0x13, 0x08, 0x64, 0x62} // 25 % ,{0x36, 0x49, 0x55, 0x22, 0x50} // 26 & ,{0x00, 0x05, 0x03, 0x00, 0x00} // 27 ' ,{0x00, 0x1c, 0x22, 0x41, 0x00} // 28 ( ,{0x00, 0x41, 0x22, 0x1c, 0x00} // 29 ) ,{0x14, 0x08, 0x3e, 0x08, 0x14} // 2a * ,{0x08, 0x08, 0x3e, 0x08, 0x08} // 2b + ,{0x00, 0x50, 0x30, 0x00, 0x00} // 2c , ,{0x08, 0x08, 0x08, 0x08, 0x08} // 2d - ,{0x00, 0x60, 0x60, 0x00, 0x00} // 2e . ,{0x20, 0x10, 0x08, 0x04, 0x02} // 2f / ,{0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0 ,{0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1 ,{0x42, 0x61, 0x51, 0x49, 0x46} // 32 2 ,{0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3 ,{0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4 ,{0x27, 0x45, 0x45, 0x45, 0x39} // 35 5 ,{0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6 ,{0x01, 0x71, 0x09, 0x05, 0x03} // 37 7 ,{0x36, 0x49, 0x49, 0x49, 0x36} // 38 8 ,{0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9 ,{0x00, 0x36, 0x36, 0x00, 0x00} // 3a : ,{0x00, 0x56, 0x36, 0x00, 0x00} // 3b ; ,{0x08, 0x14, 0x22, 0x41, 0x00} // 3c < ,{0x14, 0x14, 0x14, 0x14, 0x14} // 3d = ,{0x00, 0x41, 0x22, 0x14, 0x08} // 3e > ,{0x02, 0x01, 0x51, 0x09, 0x06} // 3f ? ,{0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @ ,{0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A ,{0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B ,{0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C ,{0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D ,{0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E ,{0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F ,{0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G ,{0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H ,{0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I ,{0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J ,{0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K ,{0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L ,{0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M ,{0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N ,{0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O ,{0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P ,{0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q ,{0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R ,{0x46, 0x49, 0x49, 0x49, 0x31} // 53 S ,{0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T ,{0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U ,{0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V ,{0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W ,{0x63, 0x14, 0x08, 0x14, 0x63} // 58 X ,{0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y ,{0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z ,{0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [ ,{0x02, 0x04, 0x08, 0x10, 0x20} // 5c ¥ ,{0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ] ,{0x04, 0x02, 0x01, 0x02, 0x04} // 5e ^ ,{0x40, 0x40, 0x40, 0x40, 0x40} // 5f _ ,{0x00, 0x01, 0x02, 0x04, 0x00} // 60 ` ,{0x20, 0x54, 0x54, 0x54, 0x78} // 61 a ,{0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b ,{0x38, 0x44, 0x44, 0x44, 0x20} // 63 c ,{0x38, 0x44, 0x44, 0x48, 0x7f} // 64 d ,{0x38, 0x54, 0x54, 0x54, 0x18} // 65 e ,{0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f ,{0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g ,{0x7f, 0x08, 0x04, 0x04, 0x78} // 68 h ,{0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i ,{0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j ,{0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k ,{0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l ,{0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m ,{0x7c, 0x08, 0x04, 0x04, 0x78} // 6e n ,{0x38, 0x44, 0x44, 0x44, 0x38} // 6f o ,{0x7c, 0x14, 0x14, 0x14, 0x08} // 70 p ,{0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q ,{0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r ,{0x48, 0x54, 0x54, 0x54, 0x20} // 73 s ,{0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t ,{0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u ,{0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v ,{0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w ,{0x44, 0x28, 0x10, 0x28, 0x44} // 78 x ,{0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y ,{0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z ,{0x00, 0x08, 0x36, 0x41, 0x00} // 7b { ,{0x00, 0x00, 0x7f, 0x00, 0x00} // 7c | ,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d } ,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ← ,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f → };Парень, ты тугой: для текста ты используешь один код, для картинок - другой. Ты попробуй текст выводить с помощью той же библиотеки, которой рисунки выводишь - в классе LCD5110 вполне себе есть метод printStr, судя по исходникам на гитхабе.
И вот тогда уже утверждай, что глючит - дисплей или библиотека такая кривая.
Судя по примерам в интернете, библиотека прекрасно работает с дисплеем от нокии. поэтому и пытаюсь понять, в чем проблема.
Судя по примерам в интернете, библиотека прекрасно работает с дисплеем от нокии. поэтому и пытаюсь понять, в чем проблема.
Для вывода картинок Вы используете стороннюю библиотеку, а для вывода текста нет. Весьма вероятно, что дисплей у Вас инициализируется по-разному. Найдите инициализацию дисплея в библиотеке, сравните с теми командами, что Вы шлёте в примере с текстом. Может как раз тут собака и порылась.
Ну или самое быстрое - выведите тот же самый текст средствами используемой библиотеки. Нормально выведется или нет?
Покажите где они разные, за исключеним диода и резистора
Прости, друг, если ты считаешь, что схемы "за исключеним диода и резистора", а также с разными номиналами резисторов, на самом деле одинаковые, то разбирайся со своей проблемой сам. Тебя просили привести ТУ САМУЮ, схему, что у тебя собрана. Просили дважды. Третий раз просить не буду. На нет и суда нет. Если тебе это не нужно, то мне уж и подавно. Удачи!
спасибо за ответ! я новичок в вопросах ардуино. попробую сравнить, порыть. любопытно весьма. В интернете народ подключает готовый дисплей на плате из Китая, там впаяны смд элементы --- сотни видео на ютюбе. Может быть в обвязке и кроется проблема... на шилде с алиэкспресс все распаяно, а я подключаю голый дисплей с большими советскими резисторами... На сайте, где взял эту схему подключения было написано, что 2.8 кОма не принципиально, можно и больше. Я подобрал 3 кОма, все одинаковые.
Судя по примерам в интернете, библиотека прекрасно работает с дисплеем от нокии. поэтому и пытаюсь понять, в чем проблема.
Ещё раз, вдруг с первого раза не дошло: ВЫВЕДИ ТЕКСТ при помощи той же библиотеки, через которую ты выводишь рисунки! И потом будет яснее, в чём дело. Тебе уже сказали, что инициализация, возможно, разная в библиотеках.
На сайте, где взял эту схему подключения было написано, что 2.8 кОма не принципиально, можно и больше. Я подобрал 3 кОма, все одинаковые.
Схема не имеет существенного влияния. Я подключал аналогичный дисплей совсем без резисторов, и даже питание не подключал - дисплей устойчиво работал от тех крох, что приходили на входы управления. Конденсатор 0,1 мкф распаивал прямо на дисплее.
той же библиотеки
А они у него как схемы - одинаковые ("за исключеним диода и резистора", конечно) :)))))))))