Hallo Thomas,
Zitat von ThKaS im Beitrag #112
das müsste doch dann gehen, wenn ich ein Kabel von GND auf A0 nutze, kurz stecke und wieder ziehe, oder habe ich den Sketch noch nicht verstanden?
Über A0 liest er doch die Taster ein, oder?
Problem: Da tut sich nichts, Taster habe ich keine da.
Ja, der Pin A0 wird als Eingang verwendet. Aber er muss in diesem Beispiel mit 5V verbunden werden. In den anderen Beispielen habe ich die Schalter mit GND verbunden, weil man sich dann den Pull-Up Widerstand sparen kann, indem man den Pull-Up im Prozessor aktiviert. Das macht man mit der folgenden Zeile:
1
pinMode(SWITCH0_PIN, INPUT_PULLUP); // Activate an internal pullup resistor for the input pin
Die Eingänge eines IC‘s müssen immer auf einem definierten Pegel liegen sonst driften sie undefiniert zwischen 5V und GND was komische Effekte erzeugen würde. Dazu müsste man einen Schalter verwenden der ganz schnell zwischen 5V und GND wechselt. Das ist aber umständlich deswegen verwendet man einen Widerstand der den Eingang auf den „Ausschalt“ Pegel zieht, wenn der Schalter nicht betätigt wird.
Das Beispiel ist aber für die „PushButtonAction_4017“ Schaltung geschrieben. Hier schaltet ein Zähler (CD 4017) abwechselnd 5V auf einen der 10 Taster. Wenn der Taster in dem Moment gedrückt wird, dann kommen die 5V am Arduino an. Anhand des Zeitpunkts kann das Programm bestimmen welcher Taster gedrückt wurde.
Bei dieser Anwendung muss ein Pull-Down Widerstand verwendet werden. Dummerweise hat der Arduino nur schaltbare Pull-Up Widerstände. Darum ist in der Schaltung der Widerstand R5 unten Links eingebaut:
Dieser sorgt dafür, das am Eingang A0 des Arduinos 0V anliegen, wenn kein Taster betätigt wird.
Mit diesem Widerstand und einem einfachen Taster gegen 5V sollte das Beispiel auch funktionieren. Der Arduino würde sich vielleicht „wundern“ warum immer alle 10 Taster gleichzeitig gedrückt werden, aber er würde sich nicht weiter darum kümmern, weil er laut Programm nur auf den Taster 3 achten soll.
Falls Dir die Erklärung zu ausführlich war, dann bitte ich das zu entschuldigen, aber vielleicht hilft sie einem anderen Stummi weiter. Und wenn ich mich nicht klar genug ausgedrückt hab, dann frag einfach noch mal nach. Auch darüber freuen sich die Anderen, die sich nicht zu fragen trauen…
Ich habe das Beispiel so angepasst, dass man es ohne die Schaltplatine verwenden kann. Der Taster (Oder in Kabel) wird an D7 angeschlossen und mit GND verbunden. Mit einem Compiler Schalter kann man die Verwendung der Tastenplatine wieder aktivieren.
Das geänderte Beispiel ist auf GitHub verfügbar (Link siehe ersten Beitrag).
Zitat von ThKaS im Beitrag #112
Ergänzung: Während des Essens hat das Teilchen gelegen, jetzt flimmert es . GND war mit A0 verbunden ....
Gibt es da noch irgendeinen Timer, der nur ab und zu ein Einschalten zulässt?
Nein, die Push Button Aktion kann sofort wieder aktiviert werden. Und wenn A0 mit GND verbunden war, dann entspricht, dass dem nicht betätigten Taster. Es sollte also gar nichts passieren. Wenn A0 offen gewesen wäre, dann würde der Eingang sich irgendwo zwischen 5V und GND herum driften. Dann hätte die Aktion gestartet und gleich darauf wieder beendet werden können.
Wenn Du Pech hast, dann liegt das an einer kaputten RGB LED. Ich hatte das letztens auch mal. Das sieht dann so aus:
Ich habe ewig gebraucht den Bösewicht zu finden. Hab die Dächer von allen Häusern noch mal abgerissen… Wenn ich das Video vorher gemacht hätte, dann wäre mir vielleicht aufgefallen, dass der Fehler erst im zweiten Haus von links aufgetreten ist. Die Fehlerhafte LED war im ersten Haus auf der Rückseite. Die Häuser sind immer noch nicht wieder richtig zusammen gebaut ;-(
Das Gemeine an dem Fehler war, dass er erst nach einer bestimmten Zeit und vermutlich bei einem bestimmten Muster aufgetreten ist.
Zum Glück ist das bis jetzt der erste Fehler dieser Art. Bei einer zweiten LED braucht eine der Grundfarben eine Zeit bis sie richtig leuchtet. Sie beeinflusst aber nicht die folgenden LEDs.
Insgesamt habe ich etwas mehr als 200 LEDs verbaut und erst 2 Fehler.
Hat das flackern bei Dir ähnlich ausgesehen?
Oder vielleicht war der Pin A0 nicht richtig mit GND verbunden und das, was Du gesehen hast, war das Feuer? Es sieht bei den LEDs ohne Haus tatsächlich aus wie ein wildes Flimmern fällt mir gerade auf. Und die Blinkenden Lichter des Feuerwehrautos sind nicht besser. Hier werden die Einzelnen LEDs mit falschen Farben angezeigt und sie überlagern sich Teilweise.
Je länger ich darüber nachdenke bin ich davon überzeugt, dass Du mein „Feuer“ gesehen hast. Das wirkt erst mit dem darüber gestülpten Haus und LEDs welche in die verschiedenen Richtungen scheinen und sich dabei überlagern gut.
Erst wenn man viele LEDs verwendet und diese nicht direkt sieht (Blatt Papier), dann wirkt es ein bisschen wie ein Feuer. Es ist aber noch sehr verbesserungsfähig.
Im Video stimmen die Farben nicht und es ist außerdem überstrahlt.
Ich finde das der Effekt in dem „brennenden“ Haus ganz gut rüberkommt, und ein größeres Feuer will ich gar nicht auf der Anlage haben.
Die Simulation eines Lagerfeuers sieht auch ganz gut aus. Ich muss auch davon mal ein Video machen.
Hardi