Guten Tag,
ich habe einen fertigen Sketch, den ich optimieren möchte.
Der Sketch soll folgendes machen: Wenn ich die Lichtschranke passiere, soll der LED-Streifen angeschaltet werden.
passiere ich die Lichtschranke erneut, soll der LED-Streifen ausgeschaltet werden. Soweit funktioniert es. Nun möchte ich noch einen Schalter hinzufügen. Wenn Schalter AN ist, soll der LED-Streifen auch angehen und die Lichtschranke soll für die Zeit, bis der Schalter wieder AUS ist, die Bewegungen ignorieren.
Hat da jemand eine Idee?
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN_LED 6 //
#define NUMPIXELS 24
Adafruit_NeoPixel pixel = Adafruit_NeoPixel(NUMPIXELS, PIN_LED, NEO_GRB + NEO_KHZ800);
int delayval = 25;
const int SENSOR1 = 2;
int SENSOR1_STATUS = 0;
int i = 0;
void setup()
{
pinMode(SENSOR1, INPUT_PULLUP);
Serial.begin(9600);
#if defined (__AVR_ATtiny85__)
if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
#endif
pixel.begin();
pixel.show();
}
void loop()
{
SENSOR1_STATUS = digitalRead(SENSOR1);
if (SENSOR1_STATUS == HIGH )
{
for (int i = 0; i < NUMPIXELS; i++) {
pixel.setPixelColor(i, pixel.Color(155, 0, 255)); // BITTE HIER EINEN RGB CODE EINTRAGEN!
pixel.show();
delay(delayval); // WARTEZEIT
}
}
}
bazukaa:
Wenn Schalter AN ist, soll der LED-Streifen auch angehen und die Lichtschranke soll für die Zeit, bis der Schalter wieder AUS ist, die Bewegungen ignorieren.
Hat da jemand eine Idee?
Ja.
if ((SENSOR1_STATUS == HIGH )||(SCHALTER_PIN==xxx))
xxx je nachdem, wie Du den Schalter an den PIN geklemmt hast (PULLUP oder PULLDOWN)
bazukaa:
Hatte jetzt Zeit rum zu experimentieren.
Mit der "and" Funktion habe ich es gelöst.
if (SENSOR1_STATUS == LOW and SCHALTER_STATUS == LOW)
Das ist aber logisch falsch.
Aus Deinem Eingangspost:
Wenn Schalter AN ist, soll der LED-Streifen auch angehen und die Lichtschranke soll für die Zeit, bis der Schalter wieder AUS ist, die Bewegungen ignorieren.
SENSOR1_STATUS = digitalRead(SENSOR1);
if (SENSOR1_STATUS == HIGH )
Du musst jetzt in Deinem Konstrukt BEIDE Bedinungen erfüllen.
Der Sensor muss aus sein
UND
Der Schalter muss ....
Diese Zusammensetzung macht nicht das, was Du willst. "die Bewegungen ignorieren" .
Aber gut - wenns denn funktioniert, war die Aufgabenstellung falsch formuliert.