ich hoffe, dass mir hier jemand helfen kann. Ich befinde mich gerade in den Anfängen im Aufbau und der Programmierung von Arduinos.
Ich habe mir ein I2C Modul besorgt und möchte damit vorerst drei in Reihe geschaltete LEDs ansteuern.
Das Programm läuft auch und die LEDs leuchten zwar, aber viel zu schwach.
Auf dem angehängten Bild ist der Aufbau zu erkennen hoffe ich. Ich habe es mit 4,7k und 10k Pull Up Widerständen versucht, aber ich habs einfach nicht hinbekommen, dass ich die LEDs, welche ich über das I2C Modul ansteuere, so stark leuchten wie die LEDs, die ich über den Arduino selbst ansteuer.
Was übersehe ich? Freue mich über jeden Tipp!
Also Du hast 3 LED´s in Serie geschaltete und die haben jeweils einen eigenen 150 Ohm Widerstand.
Das kann so nicht klappen Du scheibst Doch selber das die LED´s für 5V sind. Wenn sie an 5V aber richtig leuchten dann sind sie allerdings parallel geschaltete.
An dem i2C Portexpander geht das so nicht, den Gesamstrom von ca 60mA kann der Expander nicht treiben. Eventuell geht es noch mit 2 LEDs.
Das mit den 3 in Reihe geschalteten Leds wirdnicht funktionieren.
Dazu liefert der Port-Expander zu wenig Spannung. Pro Pin eine Led, das funktioniert.
Und poste deinen Sketch hier in Code-Tags, dann ist dieser für alle gut lesbar.
Edit:
Und was genau hast du mitdem 4k7 Pullup versucht ?
Zeichen am besten ein Schaltbild und zeige uns wie du alles angeschlossen hast.
Okay, danke für die Antwort von euch! Da ich im weiteren die LEDs über Knöpfe ansteuern will und zwar sollen es dann aber 20 dieser LEDs also à 3(ins. 60) werden. Die ganzen LEDs leuchten zumindest, wenn ich diese nur über die digitalen Eingänge des Arduinos betreibe.
Dann hoffe ich einfach, dass die Knöpfe ohne Probleme über die I2C Module steuern kann.
Und zum 4k7 Pull Up: Habs einfach versucht, weil ich gelesen hab, dass ich solche Widerstände brauche zum betreiben von I2C Modulen. Aber vielleicht hab ich auch falsch gelesen. Wie gesagt hab erst vor kurzem angefangen mich mit dem Thema überhaupt auseinanderzusetzen und wurde aus dem was ich gelesen habe auch nicht immer schlau.
Ihr wart eine große Hilfe! Danke, ich hätte wahrscheinlich weiter dumm rumprobiert.
Manche PCF8575-Module haben die PullUp-Widerstände für SDA und SCL schon auf dem Modul. Das wäre zu testen.
Hast Du Dich schon mal mit WS2812, WS2815 oder APA102 beschäftigt? Die 60 Lichtpunkte kannst Du dann mit nur zwei oder einem Pin ansteuern, weil die Lichtpunkte ein IC als eine Art Schieberegister eingebaut haben, das die LEDs per PWM ansteuert. Es gibt RGB, RGBW und WWW (RGBW=Rot Grün Blau Weiß).
Also ich habe jetzt die LED am digitalen Eingang 22 und den Button am Eingang P0 des I2C Modul. Allerdings hat der Knopf nun ständig das logische HIGH. Weshalb die LED durchgängig leuchtet. Am Ground des Buttons befindet sich ein Widerstand von 10k Ohm. So hat es in vorherigen Versuchen auch geklappt. Solange der Knopf gedrückt ist, soll auch die LED leuchten. PullUp Widerstände sind angebracht.
Muss der Widerstand vom Knopf nun wieder angepasst werden? Wenn ja wie lässt sich so etwas berechnen? Bringt mir nichts, wenn ich nicht weiß wieso weshalb warum.
Das Modul funkt noch. Habs durch den Scanner laufen lassen und es konnte erkannt werden. Denke auch der Pin sollte nicht fritte sein.
Und ich mit den WS2812 LEDs etc. kann ich für meine Anwendung leider nichts anfangen, aber danke dir trotzdem für den Tipp! Vllt brauch ichs wann anders mal!
Nicht inbegriffen ist die Spannungsversorgung und es handelt sich um einen PCF8575 (nicht PCF8575C wie abgebildet). Die Widerstände an SDA und SLC sind je 4k7 und der Widerstand am Button 10k. Die dargestellt LED dient der Vereinfachung. Gemeint sind die 3 LEDs wie auf den Bildern zuvor mit vorgeschaltetem 150 Ohm Widerstand.
Wenn noch was fehlt um das Problem zu lösen geb mir bescheid.
Danke!
Wenn alles gut läuft, dann schließe ich noch ein weiteres I2C Modul an und auf die selbe Art wie im Bild werden über diese dann pro Modul je 10 Buttons betrieben und über den Arduino 20 der beschriebenen LEDs.
Im Schaltbild kann ich keinen echten Fehler feststellen.
Allerdings sind die 3parallel geschaltete Leds mit je ca. 20 mA schon zu viel.
Das sind bei 3 Leds ca. 60 mA für einen Pin.
Du hast im Sketch den Fehler.
Mit "digitalRead()" liest du einen Pin vom Mega, aber nicht vom Portexpander.
Da muss es vermutlich "pcf8575_rot.digitalRead()" heißen.
Lag am Scetch, wie du gesagt hast. Jetzt leuchtet die LED nur wenn ich den Knopf drücke. Aber wieder nur schwach. Warum? Ohne die Steuerung durch den Knopf funktioniert es doch auch.
lucas95:
Lag am Scetch, wie du gesagt hast. Jetzt leuchtet die LED nur wenn ich den Knopf drücke. Aber wieder nur schwach. Warum? Ohne die Steuerung durch den Knopf funktioniert es doch auch.
Wie meinst du es mit "Ohne Steuerung durch den Taster" (Knopf gehört ans Hemd) ?
Und für 3 Leds reicht der Strom nicht.
Ich meinte, wenn ich den Knopf drücke, dass dann die LED leuchtet.
Meine Frage ist nur warum leuchtet die LED, wenn ich in der Funktion void loop direkt auf High setzte ohne die Bedingung mit dem Knopf zu implementieren, hell und mit dem Knopf nur ein wenig. Der Strom für die LED sollte doch der Gleiche sein. Ich kann schließlich auch alle LEDs also die 20 Stk à 3 ohne Probleme über den Arduino betreiben.
lucas95:
Ich meinte, wenn ich den Knopf drücke, dass dann die LED leuchtet.
Nochmals, du meinst Taster, Knopf gehört ans Hemd.
Meine Frage ist nur warum leuchtet die LED, wenn ich in der Funktion void loop direkt auf High setzte ohne die Bedingung mit dem Knopf zu implementieren, hell und mit dem Knopf nur ein wenig. Der Strom für die LED sollte doch der Gleiche sein.
Evtl. weil du einen Fehler machst.
Das kann ich hier nicht sehen.
Ich kann schließlich auch alle LEDs also die 20 Stk à 3 ohne Probleme über den Arduino betreiben.
Das solltest du mal ausrechnen. 60 Leds (ca. 1,2 A bei deinen Vorwiderständen) sind für den Mega zu viel.
Der ist mit max. 200 mA an den Pins angegeben.
Du meinst insgesamt für alle digitalen Pins, richtig?
Sprich ich muss noch einen weiteren Vorwiderstand vor jede LED schalten, um den Strom auf 200 mA zu reduzieren also von 60 mA auf 10 mA?!
Was muss ich dir bereitstellen damit der mögliche Fehler erkenntlich wird?
lucas95:
Du meinst insgesamt für alle digitalen Pins, richtig?
Sprich ich muss noch einen weiteren Vorwiderstand vor jede LED schalten, um den Strom auf 200 mA zu reduzieren also von 60 mA auf 10 mA?!
Ja, korrekt.
Was muss ich dir bereitstellen damit der mögliche Fehler erkenntlich wird?
Mach mal ein Foto, auf dem alles zu erkennen ist und die Leds hell leuchten.