Ekspander 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.
Dodałem też link, z Akademii Nettigo, który pokazuje jak wykorzystać układ w innych konfiguracjach. Jest tam też biblioteka expandera, której należy użyć

Ekspander PCF i wyświetlacz LCD16/2

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()
{
}

Użycie układu PCF8574P w celu zwiększenia ilości pinów

Tu użyłem biblioteki: https://github.com/xreef/PCF8574_library która wydaje się ciekawa i napisana też dla ESP8266

Rozmieszczenie pinów PCF8574

#include "PCF8574.h"

// Set i2c address
PCF8574 pcf8574(0x20);

void setup()
{
	Serial.begin(115200);
	delay(1000);
	Serial.println("\n\nINIT");

	pcf8574.pinMode(P4, OUTPUT, LOW);

	Serial.print("\nInit pcf8574...");
	if (pcf8574.begin()){
		Serial.println("OK");
	}else{
		Serial.println("KO");
	}
}
void loop()
{
  pcf8574.digitalWrite(P4, HIGH);
  delay(1000);
  pcf8574.digitalWrite(P4, LOW);
  delay(1000);
	}

Linki:

Dodaj komentarz