N-spoor – deel 10 – I2C bus

Nu het probleem van de aardlussen is opgelost heb ik ook de I2C-bus verlengd met een tweede PCF8574-module die, middels de jumpers op de print, als adres 0x21 kreeg.

PCF8574 I2C expander module met adres 0x20

Deze modules zijn te “daisy-chainen”: door te lussen dus. Hierboven zie je zo’n module. Links vind je naast de voedingsaansluitingen Vcc en Gnd, de I2C aansluitingen SDA (data) en SCL (clock) die naar de Arduino UNO gaan. Aan de rechterkant dezelfde 4 aansluitingen die de module met een volgende module verbindt. Zo zijn er in totaal 8 modules aan elkaar te rijgen. Op de print zitten 3 jumpers waarmee elke module een eigen adres krijgt. De afgebeelde module heeft adres 0 (komt overeen met 0x20).

Bovenin de aansluitingen (P0 t/m P7) naar de seinen en de wissels. In het programma van de Arduino bepaal je welke aansluitingen in- dan wel uitgangen zijn.

Per module kan je dus 8 I/O lijnen inlezen, of uitsturen. Met 8 modules achter elkaar geknoopt kom je dan op 72 I/O’s. Dit aantal is nog te verdubbelen door naast de PCF8574 een PCF8574A in te zetten. De PCF8574 gebruikt de adressen 0x20 tot 0x27 en de PCF8574A adres 0x38 tot 0x3F. Mocht dit nog niet voldoende zijn dan is er nog de mogelijkheid om een tweede (en 3e?) I2C bus te realiseren op de Arduino.

In het volgende deel verder met treindetectie d.m.v. reed relais.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.