I2C aansturing van de PCF8574
Deze opdracht is je “Hello World” oefening voor het werken met I2C. Ook voor de volgende semesters zal dat een essentiele ervaring zijn.


De PCF8574 heeft een I2C interface waarmee je 8 I/0 pinnen kan uitlezen of aansturen. De 8 I/O pinnen van de chip zijn open-collector, met ingebouwde, zwakke pull-ups.
- Lees eerst de gehele opdracht voordat je aan de slag gaat.
- Gebruikt het internet: wat is een open-collector? Waarom is het handig?
- Zoek op internet naar de datasheet van de PCF8574.
- Sluit de PCF8574 chip aan:
- VSS aan ground
- VDD aan 3.3V
- De I2C-pinnen (SCL en SDA – of SCL1 en SDA1, afhankelijk van de I2C library) naar de Arduino
- Verbindt die pinnen ook met pull-up weerstanden (van bijvoorbeeld 2.2kOhm) naar de voedingsspanning.
- A0-A2 aan de ground
- INT gebruik je niet
- Sluit LEDs (met weerstanden) aan op P0, P1, P2 en P3 (naar de VDD/power, dus actief laag).
- Gebruik de Wire library om de chip aan te sturen.
Zoek in de chip datasheet op wat het I2C adres van de chip is. Let
op: de PCF8574 en de PCF8574A zijn verschillend. Bedenk je of het genoemde
adres in de datasheet met of zonder het r/w bit is. Bedenk je of Wire een adres met of zonder het r/w bit verwacht. Laat de LEDs in Kitt patroon (heen en weer) oplichten.
Debug en/of controleer de I2C signalen met behulp van je Logic Analyzer.
- Sluit op P4 een drukknop aan naar de ground.
- Lees via de Arduino de stand van de schakelaar uit en bestuur daarmee een of meer LEDs.
- NB: Door middel van de open-collector kunnen de I/O-pinnen (P1 t/m
P7) zichzelf verbinden met de ground. De I/O-pinnen hebben intern zwakke
pull-ups. Zet ze dus in open-collector mode en schrijf er een “1”
heen om ze als input te configureren.
Wat lever je in?
- De C++ code die je hebt gebruikt om het kitt-patroontje op de leds te laten zien.
- De C++ code die je hebt gebruikt om punt 7 en 8 hierboven uit te voeren.
Vergeet niet de code van commentaar te voorzien, zodat duidelijk is wat de bedoeling is.