Hallo, Vorweg: Ich bin ein absoluter Neuling im Thema Arduino, habt bitte Gnade ^^
Zum Thema: Ich möchte an der Kellertreppe außen ein Lauflicht mit 274 LED programmieren, welches mit Bewegungsmelder an geht, einmal durchläuft, an bleibt und dann erst bei der nächsten Bewegung wieder einschaltet. Kabel Technisch ist es kein Problem und Berechnung von der Stromaufnahme etc. Mein Problem sobald ich den Laptop abklemme wird das Programm auch ohne Bewegung wiederholt( bleibt nicht aus läuft immer wieder an).
Ich habe, da ich noch nicht so fit bei diesem Thema bin, mit Ardublock das Programm geschrieben, auf einen Arduino atMega.
Könnte mir jemand meinen Fehler in dem Programm aufzeigen. ich komme nicht weiter. Wäre euch sehr verbunden. Mit freundlichen Grüßen Eichner Ronny.
PS: ich hoffe das ich hier nicht erschlagen werde wegen meines Unvermögens
ein wenig unvorteilhaft formuliert.Die LED sollen nacheinander angehen bis alle an sind- dann eine gewisse Zeit anbleiben(das man es schafft die Treppe hoch oder runter zu laufen) dann sollen alle ausgehen bis das nächste Signal vom Bewegungsmelder kommt.
Ah....ok.
Dann formatiere deinen Sketch noch so, dass den alle gut lesen können.
Den Sketch oben markieren und anschließend die Schaltfläche </> klicken.
Also auch ein elektrisches Problem...
Wie hängt der Bewegungsmelder an Pin 10 ? Wenn der einen Relais-Ausgang hat, brauchst du einen Pulldown Widerstand.
Den Sketch wollte ich so unformatiert eigentlich gar nicht ansehen, aber die Variable Bewegung scheint mir etwas sinnlos ...
Stimmt die "Bewegung" hab ich inzwischen raus genommen. ein Pulldown-Widerstand ist über eine AMP Steckverbindung eingebaut. Würde der Sketch, auch wenn er milde gesagt nicht schön ist,denn so laufen ?
Dann mal was grundlegendes. Benenne die Variablen, das man erkennt, was da gemeint ist.
Und Pins nicht nach Nummern schreiben sondern einen Namen geben.
soll so aussehen?
#include <Adafruit_NeoPixel.h>
/**
file: Lauflicht Keller
author: R.E
description:
Auflaufendes Licht mit Bewegungsmelder
date: 21.10.21
version: 0.1
*/
const byte neoPixelPin = 6;
const byte melderPin = 10;
unsigned int Pixel = 0;
unsigned int anzahlPixel = 274;
bool zustand = false;
const unsigned long interval = 5000; // Zeit in ms
unsigned long lastmillis;
Adafruit_NeoPixel strip_pin6 = Adafruit_NeoPixel(anzahlPixel, neoPixelPin, NEO_RGB + NEO_KHZ800);
void setup()
{
strip_pin6.begin();
strip_pin6.show();
pinMode(10, INPUT);
}
void loop()
{
if ((digitalRead(melderPin)) && zustand == false) // retriggersperre
{
zustand = true;
lastmillis = millis();
for (unsigned int i = 0; i < anzahlPixel; i++)
{
strip_pin6.setPixelColor(i, 255 , 255 , 255 );
strip_pin6.setBrightness(255);
strip_pin6.show();
delayMicroseconds( 750 );
}
}
else
{
if ((millis() - lastmillis > interval) && zustand == true) // nur wenn Zeit abgelaufen UND vorher an
{
zustand = false;
for (unsigned int i = 0; i < anzahlPixel; i++)
{
strip_pin6.setPixelColor(i, 0 , 0 , 0 );
strip_pin6.setBrightness(0);
}
strip_pin6.show();
}
}
}
die Dunkelschaltung hab ich ausprobiert da er sonst angeblieben wäre... wie gesagt leie^^. ich Danke schonmal sehr für euer Verständnis und eure Hilfe.
Ich bin leider noch auf der Arbeit. Das erste, was ich tue, wenn ich daheim bin ist dies auszuprobieren. Ich vergessen zu erwähnen: Pull down entspricht 10 K-ohm Widerstand. Ist das richtig?
Das geht auch noch mit 10K. ich hab hier nach 7 Metern noch mit nem internen Pullup nen Pin am laufen
Und wenn das Wochenende gerettet ist....
dann habe ich mal ne Einsteigerliteratur - nicht auswendig lernen. Nur wissen was drin steht. Einmal komplett durch. Jeden Abend ein paar Seiten. Auch den trockenen Text am Anfang. https://www.arduinoforum.de/code-referenz
einfach da das .pdf runterladen.