PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zwei PCF8574 an Arduino



11udo11
18.04.2024, 15:06
Hallo,
ich möchte am Arduino zwei PCF8574 mit den Adressen 0x20 und 0x21 anschließen. An Pin 1 ist bei beiden PCF8574 jeweils nur eine LED angeschlossen. Sie sollen im Abstand einzeln mit einer Sekunde Pause auf HIGH und LOW angesteuert werden.
Alle Versuche, den zwei PCF8574 die Adressen zuzuweisen, funktionieren nicht.
Die unten aufgeführten Codes sind im Adafruit „PCF8574.h“ nicht implementiert.
Es kommt die Meldung "class PCF8574' has no member named 'pinMode'"
Ich verstehe die Meldung nicht.
Kann jemand helfen?


PCF8574 expander1(0x20); // PCF8574 an Adresse 0x20
PCF8574 expander2(0x21); // PCF8574 an Adresse 0x21

expander1.pinMode(1, OUTPUT); // PCF8574 Modul 1
expander2.pinMode(1, OUTPUT); // PCF8574 Modul 1

// Set pin 1 on PCF8574 expander1 to HIGH (turn on LED)
expander1.digitalWrite(1, HIGH); // PCF8574 Modul 1
expander2.digitalWrite(1, HIGH); // PCF8574 Modul 2

021aet04
19.04.2024, 09:01
Ich arbeite nicht mit Arduino, deswegen kann ich dir nicht so gut helfen.

Aber wenn dort steht "class ....has no member..." heißt das für mich das bei "expander1.pinmode(...);" bzw. "expander2.pinmode(...);" etwas falsch ist. Eventuell eine Library nicht eingebunden o.Ä. ?

Passen die Adressen? Musst du die Adresse ohne Bit 0 angeben? Normalerweise ist die erste Adresse 0x40 (Schreiben) & 0x41 (Lesen).

MfG Hannes

Holomino
19.04.2024, 09:28
Die Doku...
https://github.com/RobTillaart/PCF8574
...sagt's eindeutig:
Die Klasse PCF8574 hat keine "pinMode"-Funktion (Eine Festlegung Ein-/Ausgang ist lt. DB des Bausteines auch gar nicht softwareseitig implementiert).

Wenn Du am Baustein lesen oder schreiben willst, kannst Du die unter der Zwischenüberschrift "Read and Write" aufgelisteten Funktionen benutzen.

(Alle Aussagen unter der Voraussetzung, dass Du keine andere Lib benutzt.)