hallo co'ers

ik heb een pcf8574p die kan ik aan sturen via bascom.

ik kan op elk kanaal nu een schakelaar zeten, maar ik wil nu een relais bord maken met 8 relais dus elke uitgang komt op een relais.

maar het lukt me niet om de uitgangen op een pcf8574P aan te sturen.

http://www.qsl.net/pa3ckr/bascom%20and%20avr/i2c/index.html

voor de schakelaar had ik deze tutorial gebruikt maar bij het onderwerp ledje is de foto maar half en kan ik niet een specifieke poort aansturen.

hoe ga ik dit aanpaken?

stef

Als het goed is dan verandert het LSB van je slave-adres op het moment dat je overschakelt van input naar output.

Bij read (chip gebruiken als ingang) is dit bit 1
Bij write (chip gebruiken als uitgang) is dit bit 0

mvg Hendrik

en kan ik niet een specifieke poort aansturen.

Als je de 8574 als uitgang gebruikt kun je er gewoon een byte naartoe schrijven die op de uitgang komt te staan. Je kunt echter wat je wegschrijft NIET teruglezen. Je zult dus zelf in software een "schaduwregister" moeten maken waarin je de laatste actuele waarde vasthoudt. Een extra relais bijschakelen doe je dan door de waarde van dit register op te halen , OR met een waarde en weer wegschrijven.

Houd er tevens rekening mee dat bij power-up de uitgangen even in tri-state gaan dus bij voorkeur naar de "0" schakelen.

Groeten, Bram

in de tut staat

Do
Set Portd.6
I2cstart
I2cwbyte Pcf8574write
I2cwbyte 255
I2cstop
Waitms 500
Reset Portd.6
I2cstart
I2cwbyte Pcf8574write
I2cwbyte 0
I2cstop
Waitms 500
Loop

maar welke poort hoort dan bij welke byte?

stef

Binair tellen moet je toch wel kunnen?
I2cwbyte 255 = I2cwbyte &HFF = I2cwbyte &B11111111
&B11111111, Rechter 1 is port 0 en de meeste linker 1 is dus port 7.

maar welke poort hoort dan bij welke byte?

Ik zou er ook even een I2C tutorial bij pakken. Free_electron heeft wel een aardige op zn website staan.

Groeten, Bram

ah ik snap het bedankt voor de tip/hint het werkt nu

stef

[Bericht gewijzigd door stef110 op (72%)]