Показано с 1 по 7 из 7
  1. #1
    Пользователь
    Регистрация
    21.07.2010
    Возраст
    45
    Сообщений
    82
    Вес репутации
    201

    По умолчанию Не могу запустить ЖК 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_LINESDOUT_PINSTR_PINCLK_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);
      
    charmsg msgs[pick];
      
      
    lcd.clear();
      
    lcd.printIn(msg);
      
    delay(1000);
      
    //print some dots individually
      
    for (int i=0i<3i++){
        
    lcd.print('.');
        
    delay(100);
      }
      
    //print something on the display's second line. 
      
    if(LCD_LINES>1){
        
    lcd.cursorTo(20);  //line=2, x=0.
        
    lcd.printIn("Score: 6/7");
        
    delay(1000);
      }
      
      
    //scroll entire display 20 chars to left, delaying 50ms each inc
      
    lcd.leftScroll(2050);

    Ссылка на более детальное изображение: http://s006.radikal.ru/i213/1008/90/1160e479a8a2.jpg
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	IMG_0198[1].jpg 
Просмотров:	1337 
Размер:	143.9 Кб 
ID:	9444  
    С уважением, Дмитрий.
    тел. 8 9I6 855 7Ч 95

  2. #2
    Пользователь
    Регистрация
    21.07.2010
    Возраст
    45
    Сообщений
    82
    Вес репутации
    201

    По умолчанию Re: Не могу запустить ЖК c LCD3Wire library


    И по этой схеме пробовал...
    С уважением, Дмитрий.
    тел. 8 9I6 855 7Ч 95

  3. #3
    Модератор
    Регистрация
    06.07.2008
    Возраст
    47
    Сообщений
    414
    Вес репутации
    451

    По умолчанию 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.

    зы. ты в какой части мск обитаешь? если на севере или на юго-западе мож помогу.

  4. #4
    Пользователь
    Регистрация
    21.07.2010
    Возраст
    45
    Сообщений
    82
    Вес репутации
    201

    По умолчанию 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 для подключения по следующей схеме:


    зы. обитаю в районе сокольников... работаю в районе каширского.
    С уважением, Дмитрий.
    тел. 8 9I6 855 7Ч 95

  5. #5
    Пользователь
    Регистрация
    21.07.2010
    Возраст
    45
    Сообщений
    82
    Вес репутации
    201

    По умолчанию Re: Не могу запустить ЖК c LCD3Wire library

    Никак не получилось на 595 регистре запустить.. Может из-за нехватки питания.
    Запустил на HEF4094 по схеме в предыдущем посте. Всем спасибо.
    С уважением, Дмитрий.
    тел. 8 9I6 855 7Ч 95

  6. #6
    Пользователь
    Регистрация
    21.07.2010
    Возраст
    45
    Сообщений
    82
    Вес репутации
    201

    По умолчанию 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 регистра... грешу все таки на питание.
    С уважением, Дмитрий.
    тел. 8 9I6 855 7Ч 95

  7. #7
    Пользователь
    Регистрация
    21.07.2010
    Возраст
    45
    Сообщений
    82
    Вес репутации
    201

    По умолчанию Re: Не могу запустить ЖК c LCD3Wire library

    Полное г** эта библиотека... протестировал скорость вывода на ЖК - разочарован. Думаю при последовательном выводе должно работать быстрее гораздо. Вернулся на параллельное подключение, но освободил ШИМ ноги путем переноса на другие.
    С уважением, Дмитрий.
    тел. 8 9I6 855 7Ч 95

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •