Arduino Uno + LCD16/2 + PCF8574

W tym poście pokazuję jak połączyć wyświetlacz LCD z Arduino korzystając z magistrali I2C. Dzięki temu do komunikacji użyte są tylko dwa piny plus zasilanie.
Pomaga nam w tym ekspander PCF8574P.

Oto schemat połączeń dla Arduino Uno R3:

Uwaga! Ja korzystam z Arduino Uno R3 i ma on wyprowadzone dodatkowo piny magistrali I2C tak jak na rysunku powyżej. Równie dobrze można z ekspandera wyjść na piny A4 i A5, jak w tabelce.

Łączenie z innymi platformami:

Arduino boardsI2C / TWI pins
Uno, EthernetA4 (SDA), A5 (SCL)
Mega256020 (SDA), 21 (SCL)
Leonardo2 (SDA), 3 (SCL)
Due20 (SDA), 21 (SCL), SDA1, SCL1

Potrzebne części:
Potencjometr 10k.
Expander PCF8574P
Arduino Uno R3

Biblioteki do instalacji:
https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library.git

Kod 1:

#include  //Standardowa biblioteka Arduino
#include
LiquidCrystal_I2C lcd(0x16,16,2);
void setup()
{
  lcd.init(); 

  lcd.print("Hello, world!");
}

void loop()
{
}

Kod 2:


#include
#include 

LiquidCrystal_I2C lcd(0x16,16,2);

void setup()
{
  lcd.init();
  lcd.backlight();
  Serial.begin(9600);
}

void loop()
{
  if (Serial.available()) {
    delay(100);
    lcd.clear();
    while (Serial.available() > 0) {
      lcd.write(Serial.read());
    }
  }
}

Kod 3:


#include
#include 

LiquidCrystal_I2C lcd(0x20,16,2);  // set the LCD address to 0x20 for a 16 chars and 2 line display
int time = 0; 

void setup()
{
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);

lcd.print("3w.yarogniew.net");
}

void loop(){
//Przejście kursora do pierwszej kolumny drugiego wiersza
lcd.setCursor(2, 1);
//Odczyt oraz wyświetlenie czasu jaki upłynął od ostatniego resetu w sekundach
time = millis()/1000;
lcd.print("time:");
lcd.print(time);
///lcd.print("---");
/*if (time==10){
  lcd.noDisplay();
  lcd.setCursor(5, 1);
  lcd.print("czas=20");
  delay(3000);               // czekaj
   lcd.display();
  lcd.setCursor(5, 1);
  lcd.print("       ");
}
*/
}

Linki:

Dodaj komentarz