arduino nano + lcd HD44780

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Максим B, 25 май 2014.

  1. Максим B

    Максим B Гуру

    Привет всем. В интернете не нашел правильно скетча для ардуино нано, подключил точно все правильно

    • 4-й контакт дисплея — на A0 nano
    • 6-й контакт дисплея — на A3 nano
    • 11-й, 12-й, 13-й, 14-й контакт дисплея — 10-й, 11-й, 12-й, 13-й контакт Arduino соответственно. Это линии данных. Известные как DB4, DB5, DB6, DB7.
    Дисппей с uno работал 100%

    // include the library code:
    #include <LiquidCrystal.h>

    // initialize the library with the numbers of the interface pins
    LiquidCrystal lcd(D7, D6, D5, D4, A3, A0);

    void setup() {
    // set up the LCD's number of columns and rows:
    lcd.begin(16, 2);
    // 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);
    }


    какие правильно пины использовать в данном скетче???
     
  2. geher

    geher Гуру

    Во-первых, в "LiquidCrystal lcd(D7, D6, D5, D4, A3, A0);" первыми двумя параметрами должны идти пины, подключенные к 4-му и 6-му контактам дисплея. В данном случае А0 и А3 (хотя можно было задействовать и другие пины, обычные, не аналоговые, но это уже тонкости).
    Далее параметрами должны идти пины, к которым подключены контакты дисплея с 11-го по 14-й, причем в том же порядке.

    Не совсем понятно, что означает "10-й, 11-й, 12-й, 13-й контакт Arduino", это номер контакта по счету или пины с маркировкой D10, D11, D12, D13 соответственно?

    Если первое, то нужно прочитать маркировку на ардуино (пины в "Нано" вроде должны быть подписаны.) и, если там Dx, проставить номер после D, если Ax - проставить то, что написано в маркировке, если что-то другое, переключить на другой контакт, аналоговый или цифровой. Получится
    LiquidCrystal lcd(A0, A3, ?, ?, ?, ?);
    где вместо вопросительных знаков надо подставить номера из маркировки цифровых пинов ардуино или маркировку аналоговых пинов ардуино. к которым подключены контакты дисплея с 11-го по 14-й.

    Если второе, то проставить 10,11,12,13, т.е. в итоге в этом случае получится
    LiquidCrystal lcd(A0, A3, 10, 11, 12, 13);

    Вроде бы так.
     
  3. Максим B

    Максим B Гуру

    Спасибо, разобрался. Вот правильно как должно быть

    Код (Text):
    /*
     
    // include the library code:
    #include <LiquidCrystal.h>

    // initialize the library with the numbers of the interface pins
    LiquidCrystal lcd(A0, A3, 9, 10, 11, 12);

    void setup() {
      // set up the LCD's number of columns and rows:
      lcd.begin(16, 2);
      // 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);
    }
     
    А подключено к пинам A0, A3, D9, D10,D11,D12