Pierwsze kroki z Ekspanderem PCF8574

Pierwsze kroki z Ekspanderem PCF8574

INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(

Witam,

W tym artykule przedstawię wam działanie Ekspandera PCF8574.

Na początek: co to jest ekspander?
Jest to układ który pozwala nam na „wyekspandowanie” czyli zwiększenie ilości pinów w naszym mikrokontrolerze.

Co będzie nam potrzebne by zacząć go używać:

-Arduino (ja użyję Leonardo)
Płytka prototypowa
-Kabelki
Diody LED (Ja użyję 3)
Rezystory
Oraz Ekspander PCF8574

Na początku potrzebujemy wiedzieć który nóżka naszego ekspandera jest do czego

View post on imgur.com

Widzimy, że ekspander będzie się porozumiewał z Arduino po magistrali SPI co widać po pinach SDA i SCL. A więc zabierzmy się za podłączanie wszystkiego do naszego Arduino.

Schemat:

2

Trzy zielone kable wyznaczają nam adres naszego ekspandera. Tutaj używamy tylko 1 ekspandera więc nie musimy się bawić zbytnio z ustawianiem adresów wszystkich układów.

Po podłączeniu ekspandera musimy poznać jego adres. Dokonamy tego dzięki temu programowi który wgrywamy do naszego Arduino.

#include <Wire.h>


void setup()
{
  Wire.begin();

  Serial.begin(9600);
Serial.println("\nI2C Scanner");
}


void loop()
{
byte error, address;
  int nDevices;

  Serial.println("Scanning...");

  nDevices = 0;
for(address = 1; address < 127; address++ )
  {
// The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
// a device did acknowledge to the address.
    Wire.beginTransmission(address);
error = Wire.endTransmission();

if (error == 0)
    {
Serial.print("I2C device found at address 0x");
      if (address<16) 
Serial.print("0");
      Serial.print(address,HEX);
Serial.println("  !");

nDevices++;
    }
else if (error==4)
    {
Serial.print("Unknow error at address 0x");
      if (address<16) 
Serial.print("0");
      Serial.println(address,HEX);
}
  }
if (nDevices == 0)
    Serial.println("No I2C devices found\n");
else
    Serial.println("done\n");

  delay(5000);           // wait 5 seconds for next scan
}

Po wgraniu wchodzimy w Serial Monitor i powinna nam wyskakiwać informacja:

I2C

Oznacza to, że nasz ekspander ma adres 0x20. Następnie spróbujemy sterować naszym ekspanderem 3 diodami LED.

Schemat:

PCF

Do tego kroku będzie nam już potrzebna specjalna biblioteka do obsługi ekspandera. LINK

Następnie gdy podłączymy wszystko razem to możemy brać się za sam program.

#include <PCF8574.h>
#include <Wire.h>

PCF8574 expander;     //stwarzamy sobie obiekt o nazwie expander

void setup() {
expander.begin(0x20);     //rozpoczynamy komunikacje z naszym ekspanderem pod adresem 0x20
  expander.pinMode(0, OUTPUT);;     //definiujemy działanie pinów
expander.pinMode(1, OUTPUT);
  expander.pinMode(2, OUTPUT);
}

void loop() {
  expander.digitalWrite(2, LOW);     //załączamy stan niski na ostatniej diodzie
expander.digitalWrite(0, HIGH);;     //załączamy stan wysoki na pierwszejej diodzie
  delay(1000);     //czekamy 1 sekundę
expander.digitalWrite(0, LOW);;     //załączamy stan niski na pierwszej diodzie
  expander.digitalWrite(1, HIGH);;     //załączamy stan wysoki na drugiej diodzie
delay(1000);     //czekamy 1 sekundę
  expander.digitalWrite(1, LOW);;     //załączamy stan niski na drugiej diodzie
expander.digitalWrite(2, HIGH);;     //załączamy stan wysoki na ostatniej diodzie
  delay(1000);     //czekamy 1 sekundę
}

UWAGA: Jest szansa, że diody będą słabo świecić. Może to być spowodowane zbyt małym prądem. W takim przypadku powinno podziałać zamienienie rezystorów przy LED-ach na zwykłe kabelki.

Po wgraniu kodu LED-y powinny świecić po kolei: 1-2-3-1-2-3…

INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(

Ocena: 4/5 (głosów: 2)

Podobne posty

7 komentarzy do “Pierwsze kroki z Ekspanderem PCF8574

  • „ekspander będzie się porozumiewał z Arduino po magistrali SPI co widać po pinach SDA i SCL”
    magistrala I2C, nie SPI ;)

    „Jest szansa, że diody będą słabo świecić. Może to być spowodowane zbyt małym prądem. W takim przypadku powinno podziałać zamienienie rezystorów przy LED-ach na zwykłe kabelki.”
    w tym expanderze większą wydajność prądową ma wyjście ujemne – czyli katoda LED’a podłączona do PCF’a, a Anoda do plusa – będą lepiej świecić (czyt. normalnie)
    rezystor obojętnie po której stronie LED’a

    co do opisu to słabiutki – byś mógł skupić się na większej ilości poleceń do tego expandera, a posiada on wiele (masowe zmiany pinów, przesuwanie wartości do kolejnego wyjścia itd)

    Odpowiedz
    • „Krótko zwięźle i na temat”

      może i tak, ale poradnik nie może zawierać tak prostych błędów jak np „wywalenie rezystorów, by LEDy lepiej świeciły” – nowicjusz tak zrobi i popali sobie mnóstwo LEDów, bo „w poradniku było tak napisane, że jak LEDy słabo świecą to można od tak wywalać rezystory”

      Przy tekście tak krótkim i „zwięzłym” jak to określiłeś, jest za dużo błędów do poprawienia

      Odpowiedz

Odpowiedz

anuluj

Pierwsze kroki z Ekspanderem PCF8574

Nie przegap nowych projektów!

Zapisując się na nasz Newsletter będziesz miał pewność, że nie przegapisz żadnego nowego projektu opublikowanego w Majsterkowie!

Od teraz nie przegapisz żadnego projektu!

Masz uwagi?