easy code mit PCF8574(AP)?

Hallo.

Im letzten Tread fragte ich nach, wie ich den Centipeden ansprechen kann.
Das ist nun für mich klar, wie ich das mache.

Nun habe ich das problem, das der versand eines Centipeden aus den USA stolze 30 US$ kostet.
Leisten kann ich mir es schon, wollen aber nicht. Zumal sie nur Expressversand anbieten, kein normalen versand, der günstiger ist. Die wartezeit wäre kein problem für mich.
Nun hab ich mich mal nach alternativen umgesehen und fand den PCF8574(AP) als Erweiterungs-IC am besten. Den code verstehe ich zum größten teil, und die beschaltung von 8 IC´s schaffe ich auch. Nur dass ich bei jedem zustandsänderung erstmal 3 zeilen code schreiben muss, das stört mich doch sehr. Mein zielsketch muss mit über 150 portänderungen handeln, da kann ich doch nicht mit 450 zeilen code alleine dafür anmarschieren.
Ist es möglich alles so in eine eigene Library exportieren, so dass ich wie beim Centipeden nur noch z.b. CS.digitalWrite(51, HIGH); schreiben muss, oder wenn nötig einen eigenen vorzeichen wie PCF.digitalWrite(51, HIGH); ?

450 :kissing: , ist doch nichts.

Warum eine Libary für eine poppelige Aufgabe? In C gibt es für solche Sachen Funktionen. Dann kommste auch mit einer Zeile hin.

Des weiteren handelt es sich dabei nicht um den gleichen Bausteil. Die Libary, die dir jemand bereits geschrieben hat, muss nicht so ausfallen wie du es bei dem CP hast.

Selberschreiben ist möglich, aber da muss man sich erst einmal richtig eingearbeitet haben.

Gruß Stefan

Das problem ist, ich bin anfänger, und wollte es möglichst übersichtlich haben.

sschultewolter:
450 :kissing: , ist doch nichts.

Warum eine Libary für eine poppelige Aufgabe? In C gibt es für solche Sachen Funktionen. Dann kommste auch mit einer Zeile hin.

Gruß Stefan

Wenn ich das auf eine zeile je änderung schrumpfen kann, käme mir das sehr gelegen.
Nur weiß ich nicht wie.

Warum nimmst Du nicht den MCP23017 oder PCF9555 ? Die haben 16 Pin und nicht nur 8.
Die Bibliothek des Centipeden kannst Du für den MCP23017 1 zu 1 verwenden.

Grüße Uwe

Danke für den hilfreichen Tipp uwefed. (karma added)
Wenn ich die Centipeden Bibliothek für die MCP23017 nutzen kann, dann kann ich bestimmt auch den Befehlsformat übernehmen.
Nun habe ich mal nach beschaltungstutorials gesucht, und nach dem MCP23017 auch.
Allerdings wurde ich mit z.b. MCP23017-E/SP oder MCP23017-E/SO fündig. Der vergleich bei Conrad zeigte mir bisher nur unterschiede in der Gehäusebauform an. SPDIP-28 würde ich fürs testen der schaltungen am breadboard nutzen, aber für mein Stargate brauch ich dann SOIC-28.
Ist nur im Gehäuseform ein unterschied, oder auch technisch ein Unterschied da?

Erhältlich ist das ganze als 28-pin PDIP, SOIC, SSOP und QFN.

Aufpassen musst du nur, dass es sich um MCP23017 handelt. Ein MCP23S ist zB kein I2C IC mehr, sonder eines für den SPI Bus.

Der Produktschlüssel ist auf Seite 41 zu finden.

MCP23017-E/SP und MCP23017-E/SO sind identisch. Lediglich das eine ist PDIP, das andere SOIC.

Hier gibt es auch eine Library dafür:

Und hier ein Tutorial:

Vielen dank.
Wie gesagt, ich habe den MCP23017-E/SP und den MCP23017-E/SO gefunden.
nur hab ich keine ahnung, welchen unterschied das macht.

Aber ich sehe gerade, ich muss im Tutorial auch die wire befehle nutzen.
Beim Centipeden nicht. Das ist es, worauf ich zum teil auch aus bin.

sschultewolter:
https://cdn-reichelt.de/documents/datenblatt/A200/DS_MCP23017.pdf

Der Produktschlüssel ist auf Seite 41 zu finden.

MCP23017-E/SP und MCP23017-E/SO sind identisch. Lediglich das eine ist PDIP, das andere SOIC.

Es tut mir aufrichtig leid, aber offenbar sehe ich den Wald vor lauter Bäumen nicht.

MCP23017-E/SP und MCP23017-E/SO sind identische IC´s, aber nur andere Gehäuse bauformen. Ok, das hab ich verstanden.
Für die kann ich die Adafruit MCP23017 Library für den Arduino nutzen. Auch verstanden.
Für die kann ich auch die Library für den Centipeden nutzen. Ebenfalls verstanden, bis auf den part, ob ich auch die selben Befehle wie CS.digitalWrite(51, HIGH); nutzen kann.
Ebenfalls verstehe ich nicht die aussage von sschultewolter
"Der Produktschlüssel ist auf Seite 41 zu finden."
Dort finde ich nur die abmessungen der Bauteile.

PDF Seite 41 (nicht die DS21952B-page*).
Natürlich kannst du auch die CS Libary nehmen. Ob du nun die Adafruit oder Centipede Version in Arduino nutzt, ist dem IC vollkommen egal!

Bei mir ist es im PDF reader Seite 45 :stuck_out_tongue:

Ach Mist, neuer Versuch:

Seite 45 (PDF Viewer)
oder DS21952B-page41

Jetzt verstehe ich, was du meintest.
Mein pdf betrachter hatte unter angabe der Seite 41 die erste DS21952B-page 41 angezeigt. Die von dir gemeinte seite ist ebenfalls damit beschriftet, also ein suchfehler meinerseits.

Ich habe die gesuchten infos, werde die MCP23017-E/SO SOIC-28 verwenden in verbindung mit der Centipeden Bibliothek.

Ich weiß aber immer noch nicht, ob ich die Centipeden befehle nutzen kann, oder ob ich mir wire. arbeiten muss.

SOIC ist SMD. Bist du sicher dass du damit umgehen kannst? Dazu brauchst du auch eine Platine. DIP ist zwar größer, aber für Anfänger wesentlich einfacher zu handhaben.

SMD kan ich mit meiner Lötstation löten, hab ne nadelspitze, die ist dünn genug. Die platine kann ich ätzen (lassen), da klemmts auch nicht. DIP nehme ich zuerst um zu eperimentieren. Klappt alles so wie ich es haben möchte, steige ich auf SOIC um.

Nur noch eines.
Ich möchte nicht unhöflich erscheinen, aber ich mag nicht in jedem post die selbe frage stellen, die bisher immer noch unbeantwortet blieb.

Kann ich mit der Centipeden-Bibliothek die CS. befehle auf dem MCP23017 anwenden?

sschultewolter:
PDF Seite 41 (nicht die DS21952B-page*).
Natürlich kannst du auch die CS Libary nehmen. Ob du nun die Adafruit oder Centipede Version in Arduino nutzt, ist dem IC vollkommen egal!

Wurde schon lange beantwortet!!

Und wegen SMD Löten, dafür verwendet man eigentlich keine Nadelspitzen. Dünn ist keines Falls gut wegen der schlechten Wärmeleitfähigkeit. Meisselspitze mit ~2mm und extra Flussmittel ist deutlich effektiver und schützt gleichzeitig die ICs vor der großen Hitze, da der Lötvorgang deutlich schnell von statten geht.

Wie gesagt, ich bin neuling. die genaue Funktionsweiße einer Bibliothek kenne ich nicht. Daher fragte ich nach.

Meisselspitzen habe ich auch, kein problem.

Ishtmi:
Ich weiß aber immer noch nicht, ob ich die Centipeden befehle nutzen kann, oder ob ich mir wire. arbeiten muss.

Wire spricht die Schnittstelle an. Die Centipeden-Bibliothek spricht über die Schnittstelle das IC an. Es funktioniert beiden wobei die Bibliothek einfacher ist, weil sie bereits die Einstellungen und spezifischen Ansteuerungen des MCP enthält und DU Dich darum nicht kümmern mußt.
Alternativ kannst Du auch die MCP23017 Bibliothek verwenden.

Grüße Uwe

Hallo.

Erstmal danke für die Hilfe, aber... Ich raffs nicht.

Ich habe Gestern die IC´s bekommen und nach dem Tutorial von Tronixstuff beschaltet.
Alle steuerpins habe ich mit LED´s beschaltet, die mit einem Vorwiderstand auf 15 Miliampere begrenzt wurden. Zum testen habe ich einen Sketch geschrieben, der eine LED blinken lässt. Somit hätte ich ein wenig herumspielen können wie die sache läuft. Nun passierte das, was ich erwartet hatte. Nix blinkt.

Diesen Sketch hatte ich dazu geschrieben.
https://codebender.cc/sketch:61868

Was habe ich falsch gemacht?