Hi Ich habe noch nicht so viel erfahrung mit Programmierungen von Mikrocontrollern, also bitte verzeiht mir wenn diese eine "zu einfache" Frage ist. Ich möchte mit einem Freund zusammen für ein Event etwas zusammenbauen. Ich habe einen Arduino und daran ein TL595 IC angeschlossen, hierbei handelt es sich um ein Port-Expander welcher seriell angeschlossen ist. Es kann also nicht wie bei I2C Expandern ein einzelner Ausgang gesetzt werden ,es muss immger das ganze Register aktualisiert werden. Nun habe ich verschiedene LEDs an den 8 Ausgängen. Ich habe bereits Experimente gemacht, und es funktioniert einwandfrei. Mein Problem ist nun, das ich z.b. eine Funktion machen will, die z.b. "setLed(8)" heisst, und dann die 8te LED anschaltet. Nun müsste ich ja aber dafür wissen, was die Led gerade für einen Zustand haben, da ich ja auch die anderen LED "wieder" auf Ein bzw. aus setzen muss. Irgendwie müsste man beim Ausführen von "setLed" abspeichern welche LED gerade welchen zustand hat, also etwas im stil von byte ledStatus = 00100111 und dann shiftOut(ledStatus) Das habe ich auch schon probiert, also mit beliebigen werten von ledStatus, und es funktioniert. Nun komme ich aber nicht weiter, wie ich die einzelnen Werte im byte ledStatus aktualisieren kann. Kann mir jemand vielleicht weiterhelfen wie man sowas macht? Grüsse Julian
Bitmanipulation heisst das Zauberwort bei Google. https://www.mikrocontroller.net/articles/Bitmanipulation
Wenn du den Status nicht rücklesen kannst must du eine Variable deklarieren und dort immer speicheren was du sendest. Diese Variable ist dann quasi dein Ledstatus. Einzelne LEDs kannst du dann mit bitmanipulationen verändern. Dabei gilt für die Bitmaske OR setzt AND löscht XOR toggelt. Thomas
So setzt du eine Bit auf 1: variable |= (1<<bitNummer); Und so setzt du ein Bit auf 0: variable &= ~(1<<bitNummer); Danach kannst du die Variable senden.
Julian schrieb: > Ich habe einen Arduino Wurden da nicht für alles eigene Funktionen implementiert? Google sagt: https://www.arduino.cc/reference/en/language/functions/bits-and-bytes/bitset/ oder zum Löschen https://www.arduino.cc/reference/en/language/functions/bits-and-bytes/bitclear/
Julian schrieb: > . Nun müsste ich ja > aber dafür wissen, was die Led gerade für einen Zustand haben Steht auch in der Arduine-Hilfe (sogar mit einem Beispiel): https://www.arduino.cc/reference/en/language/functions/digital-io/digitalread/
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.