Форум по Роботика
Технически форум => Електроника => Темата е започната от: reverenge в Януари 09, 2010, 04:20:08 pm
-
Здравейте,направих си една от схемите от сайта на АРДУИНО и на нея тествах доста от схемите и програмите , които са приложили там,но когато стигнах до упражненията с LCD дисплей се натъкнах на следния проблем:
към платката АРДУИНО свързвам дисплей 16Х1 и когато кача кода в процесора , тръгва само половината дисплей.Първо си помислих,че проблема е в това,че дисплея не работи , но по време на рестартиране на процесора се вижда , че всичките 16 символа на дисплея светват , което ме кара да си мисля , че аз пропускам нещо.
http://icopz.snimka.bg/radio-amateur/lcd-displeyi.461481.16844864
Ако някой има идеи за решаване на проблема,ще съм му благодарен да ги сподели.
-
Честно казано нямам си и представа от Arduino и никога не съм се докосвал до него, но се съмнявам да е направено универсално за всички LCD-та. Виж дали няма в документацията някакви препоръчителни, тествани и т.н.
-
Според мен ми прилича на проблем с инициялизацията на LCD дисплея. Възможно е код който е тестван и върви на един дисплей, да не работи на друг, примерно ако самия LCD контролер е друг или има някъкав проблем с времената за достъп.
-
Не съм работил с Ардуино, но съм се занимавал с различни PIC-ове а сега се занимавам с основно с AVR микроконтролери.
Обикновенно по-голямата част на LCD дисплейте имат еднакви команди както за инициализация, така и за синволи.
Предполагам че има проблем с времената за достъп.
Ако можеш увеличи времето на изчакване след въвеждане на синвол.
Успех.
-
Ами дай кода който качваш.С кое Ардуино си?
-
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of rows and columns:
lcd.begin(16, 1);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop() {
// Turn off the display:
lcd.noDisplay();
delay(500);
// Turn on the display:
lcd.display();
delay(500);
}
Няма значение кои от готовите кодове ползвам.
Примерно с този , който съм дал виждам само до осмия символ.
Ардуиното сам си го направих , това е схемата http://arduino.cc/en/Main/ArduinoBoardSerial с ATmega8 , но не мисля,че това е от значение.Утре ще си намеря друг дисплей защото вече имам съмнения в този.Като го свържа към LPT порта и пусна да изобразява някакъв текст резултата е същия , пак пише само до 8-мия символ.
Благодаря за всяко едно мнение.
-
Според мен е по-добре сам да си напишеш функциите, които ползваш за да пишеш по LCD-то. Така, че имаш повече свобода на действие и ще знаеш какво става. Специално за тези 2-редовите не е кой знае колко дълъг кода.
-
Ами виждаш до 8мия символ, защото от 9 до 16 се водят в паметта като втори ред. Пробвай да го инициализираш с
lcd.begin(8, 2);
Ако това не стане, трябва да бръкнеш във функцията, която пише и да я пригодиш с адресите на твоя дисплей.
-
Ами виждаш до 8мия символ, защото от 9 до 16 се водят в паметта като втори ред. Пробвай да го инициализираш с lcd.begin(8, 2);
Ако това не стане, трябва да бръкнеш във функцията, която пише и да я пригодиш с адресите на твоя дисплей.
Благодаря ти !!!:robotics: Така наистина стана.
Това ми е бил проблема.
Благодаря на всички за оказаната помощ.
-
Здравейте, ще използвам тази тема за да питам за едно дисплейче. Имам ето този (http://www.adelaida.ro/adelaida/catalog/pub/TME/lcd/rc1602b-biw-esx.pdf) дисплей. Свързах го по 2-3 схеми от туториалите на Ардуино, но не иска да изобрази нищо. При ресет не примигват всички символи (по-точно никой не примигва) каква може да е причината? В спецификациите пише че контролера е или HD44780 или еквивалентен. Дисплеят е нов, дали е някаква повреда по него или някъде с връзката с Ардуино-то?
P.S. клипче (http://www.youtube.com/watch?v=Qd5WEOjczxQ), ако може да е от помощ.