OLIMEX SHIELD-LCD16x2 ликбез

Тема в разделе "Arduino & Shields", создана пользователем MESS, 7 мар 2015.

  1. MESS

    MESS Гик

    Прошу ликбез. Работоспособность этого дисплея проверил с помощью встроенного в библиотеку примера с кнопками с сайта производителя: (спасибо X-DRON, который
    объяснил, что LiquidCrystal_I2C для устройств, построенных на чипе PCF8574, а у этого шилда стоит другой чип PIC16F722A и нужна другая библиотека:
    https://www.olimex.com/Products/Duino/Shields/SHIELD-LCD16x2/resources/Olimexino-328 LCD16x2.zip
    вот работающий скетч примера:
    #include <LCD16x2.h>
    int buttons;

    void setup(){
    Wire.begin();
    lcd.lcdClear();
    lcd.lcdGoToXY(2,1);
    lcd.lcdWrite("BUT1:");
    lcd.lcdGoToXY(10,1);
    lcd.lcdWrite("BUT2:");
    lcd.lcdGoToXY(2,2);
    lcd.lcdWrite("BUT3:");
    lcd.lcdGoToXY(10,2);
    lcd.lcdWrite("BUT4:");
    }
    void loop(){
    buttons = lcd.readButtons();
    lcd.lcdGoToXY(7,1);
    if(buttons & 0x01)
    lcd.lcdWrite("0"); // символы печатает, а как переменную вставить ?
    else
    lcd.lcdWrite("1");
    lcd.lcdGoToXY(15,1);
    if(buttons & 0x02)
    lcd.lcdWrite("0");
    else
    lcd.lcdWrite("1");
    lcd.lcdGoToXY(7,2);
    if(buttons & 0x04)
    lcd.lcdWrite("0");
    else
    lcd.lcdWrite("1");
    lcd.lcdGoToXY(15,2);
    if(buttons & 0x08)
    lcd.lcdWrite("0");
    else
    lcd.lcdWrite("1");
    delay(100);}

    Однако, при попытке вывести переменную (время) компилятор ругается из-за неправильного формата. ( другие дисплеи понимают lcd.print( clock.hour, DEC ); ) в библиотеке не смог найти каким должен быть формат ввода переменных. .
    Правильно ли я думаю, что пример теста не предусматривает получение данных извне , а только внутреннюю часть шилда тестирует? Подскажите пожалуйста чего нехватает (про меня не надо - я чайник)
     
    Последнее редактирование: 7 мар 2015
  2. X-Dron

    X-Dron Гик

    Я же написал в личке
     
  3. MESS

    MESS Гик

    И еще позвольте спросить, на этом шилде есть много свободных выводов. Они могут принести дополнительную пользу для расширения пинов? (если надо отпаяю дисплей и поставлю взад)
    где посмотреть?
     
  4. X-Dron

    X-Dron Гик

    Опять же писал в теме
    Дисплей отпаивать не надо, нужно применять Г-образные штырьки, завести их между дисплеем и платой и подпаять с нижней стороны платы. Штырьки будут торчать вбок.
     
    Последнее редактирование: 7 мар 2015
    MESS нравится это.
  5. MESS

    MESS Гик

    Как я вижу на шилде, отверстия под пины GPIO идут напрямую от контроллера, для чего заводить штырьки?
    Через час после вопроса, сам понял о чем речь. штырьки для разьемного соединения.:)
     

    Вложения:

    • GPIO.png
      GPIO.png
      Размер файла:
      638,4 КБ
      Просмотров:
      733
    Последнее редактирование: 7 мар 2015
  6. MESS

    MESS Гик

    [quote="X-Dron, post: 36491, member: 6284"
    Есть вопросы по функциям
    LCD16x2:: PinMode(uint8_t pin, uint8_t direction)
    LCD16x2::digitalWrite(uint8_t pin, uint8_t level)
    Если указывать номер пина (не в ардуино), то обозначать его надо по маркировке разьема GPIO или как?
    откуда два двоеточия ?
     
  7. X-Dron

    X-Dron Гик

    Внимательно читайте личку.
    LCD16x2:: обозначает что метод описанный далее принадлежит классу LCD16x2.
     
    MESS нравится это.