Вложений: 1
Не могу запустить ЖК c LCD3Wire library
Всем привет! Не могу запустить ЖК дисплей WH1602 с библиотекой LCD3Wire. Ниже стандартный скетч с этой библиотекой и фото соединения ЖК через регистр сдвига 74HC595N производства NXP.
Питается все от USB порта. На питание регистра доходит 4.8 вольта.
Мне кажется не работает регистр сдвига. Т.к. осциллографа нет, действовал подручным способом - подсоединял светодиод к выходам с ардуины, видел на них помаргивание.... а вот "прозвонка" по остальным выводам регистра, которые идут на ЖК, результатов не дали... попробовал 2 микросхемы - ноль результатов. Может дохлые обе или чего не хватает??? Блин и этот чи_и_дип одно раззорение, 60р за регистр сдаига ))))
PHP код:
// Example use of LCD3Wire library
// Almost a carbon-copy of LCD4BitExample.pde
#include <LCD3Wire.h>
// Arduino pins
#define LCD_LINES 2 // number of lines in your display
#define DOUT_PIN 7 // Dout pin
#define STR_PIN 6 // Strobe pin
#define CLK_PIN 5 // Clock pin
//create object to control an LCD.
LCD3Wire lcd = LCD3Wire(LCD_LINES, DOUT_PIN, STR_PIN, CLK_PIN);
//some messages to display on the LCD
char msgs[6][15] = {"apple", "banana", "pineapple", "mango", "watermelon", "pear"};
int NUM_MSGS = 6;
void setup() {
lcd.init();
}
void loop() {
//pick a random message from the array
int pick = random(NUM_MSGS);
char* msg = msgs[pick];
lcd.clear();
lcd.printIn(msg);
delay(1000);
//print some dots individually
for (int i=0; i<3; i++){
lcd.print('.');
delay(100);
}
//print something on the display's second line.
if(LCD_LINES>1){
lcd.cursorTo(2, 0); //line=2, x=0.
lcd.printIn("Score: 6/7");
delay(1000);
}
//scroll entire display 20 chars to left, delaying 50ms each inc
lcd.leftScroll(20, 50);
}
Ссылка на более детальное изображение: http://s006.radikal.ru/i213/1008/90/1160e479a8a2.jpg
Re: Не могу запустить ЖК c LCD3Wire library
Re: Не могу запустить ЖК c LCD3Wire library
лучше всего повесить несколько светодиодов (есесно с резисторами) и тупо проверить работу 595-го регистра. Шлешь в него данные (да хоть переключателями) и смотришь результат.
Я использую следующий код для отсылки данных в 595. Код не для ардуины, в ней проще с ногами работа, но я комменты расставил.
Код:
void GraphLCD_WriteByte(uint8_t i1)
{
uint8_t j;
for (j=0;j<8;j++)
{
GRAPHLCD_DATA_CLK_PORT &=~ (1<<GRAPHLCD_DATA_CLK_PIN); // ногу CLK опускаем
if (i1 & 128)
GRAPHLCD_DATA_PORT |= (1<<GRAPHLCD_DATA_PIN); //ногу SI поднимаем
else
GRAPHLCD_DATA_PORT &=~ (1<<GRAPHLCD_DATA_PIN); ногу SI опускаем
GRAPHLCD_DATA_CLK_PORT |= (1<<GRAPHLCD_DATA_CLK_PIN); // ногу CLK поднимаем
i1 = i1<<1; // сдвигаем на 1 бит влево
}
}
После этого надо передернуть вывод RCK вниз-вверх.
Да, перед подобным кодом не забыть ноги перевести в режим Output.
зы. ты в какой части мск обитаешь? если на севере или на юго-западе мож помогу.
Re: Не могу запустить ЖК c LCD3Wire library
Цитата:
Сообщение от
SBorovkov
лучше всего повесить несколько светодиодов (есесно с резисторами) и тупо проверить работу 595-го регистра. Шлешь в него данные (да хоть переключателями) и смотришь результат.
Я использую следующий код для отсылки данных в 595. Код не для ардуины, в ней проще с ногами работа, но я комменты расставил.
Код:
void GraphLCD_WriteByte(uint8_t i1)
{
uint8_t j;
for (j=0;j<8;j++)
{
GRAPHLCD_DATA_CLK_PORT &=~ (1<<GRAPHLCD_DATA_CLK_PIN); // ногу CLK опускаем
if (i1 & 128)
GRAPHLCD_DATA_PORT |= (1<<GRAPHLCD_DATA_PIN); //ногу SI поднимаем
else
GRAPHLCD_DATA_PORT &=~ (1<<GRAPHLCD_DATA_PIN); ногу SI опускаем
GRAPHLCD_DATA_CLK_PORT |= (1<<GRAPHLCD_DATA_CLK_PIN); // ногу CLK поднимаем
i1 = i1<<1; // сдвигаем на 1 бит влево
}
}
После этого надо передернуть вывод RCK вниз-вверх.
Да, перед подобным кодом не забыть ноги перевести в режим Output.
зы. ты в какой части мск обитаешь? если на севере или на юго-западе мож помогу.
Пасиб... Я примерно так и планировал проверить. На всякий случай куплю сегодня еще 595ых и HEF4094 для подключения по следующей схеме:
http://www.arduino.cc/playground/upl...ematic_new.jpg
зы. обитаю в районе сокольников... работаю в районе каширского.
Re: Не могу запустить ЖК c LCD3Wire library
Никак не получилось на 595 регистре запустить.. Может из-за нехватки питания.
Запустил на HEF4094 по схеме в предыдущем посте. Всем спасибо.
Re: Не могу запустить ЖК c LCD3Wire library
Кстати, на одном забугорном сайте наткнулся на то что у человека тоже были неудачные попытки запустить ЖК дисплей на 595 регистре и получилось только на HEF4094:
Цитата:
Цитата:
I made use of HEF4094 shift register and LCD3WireLibrary in the Arduino IDE. Intially It dint work due to some loose wiring in the circuit. I also tried out other complicated schematic using shift registers like 74HC164, 74LS164N, 74HC595. But even these circuits did not work for me. I got only Black blocks getting displayed on the first line of my Display unit.
ссылка на первоисточник: http://walkingwithtux.wordpress.com/2010/05/
Хотя, честно говоря, не вижу причин для неработоспособности 595 регистра... грешу все таки на питание.
Re: Не могу запустить ЖК c LCD3Wire library
Полное г** эта библиотека... протестировал скорость вывода на ЖК - разочарован. Думаю при последовательном выводе должно работать быстрее гораздо. Вернулся на параллельное подключение, но освободил ШИМ ноги путем переноса на другие.