Ich will meine Variable A zurück auf 0 setzen aber mein Arduino hört nicht auf weiter zu zählen.
Ich muss immer warten bis er weit genug subtrahiert bzw addiert hat.
Was mache ich falsch?
#include <Adafruit_NeoPixel.h>
#define PIN 2
#define NUMPIXELS 45
const int button = 4;
int buttonState = 0;
int A = 0;
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800);
void setup() {
pinMode(button, INPUT);
pixels.begin();
pixels.setPixelColor(3, pixels.Color(0, 0, 0));
pixels.show();
digitalWrite(A, LOW);
}
void loop() {
if (buttonState == HIGH) {
buttonState = digitalRead(button);
if((A > -1) && (A < 45)) {
pixels.begin();
pixels.setPixelColor(A, pixels.Color(0, 0, 150));
pixels.show();
A = A++;
delay(500);
}
if (A > 44) {
A = 44;
}
}
if (buttonState == LOW) {
buttonState = digitalRead(button);
if((A > -1) && (A < 45)) {
pixels.begin();
pixels.setPixelColor(A, pixels.Color(0, 0, 0));
pixels.show();
A = A--;
delay(500);
}
if (A < 0) {
A = 0;
}
}
Auf Deine eigentliche Frage habe ich keine Antwort. Ich habe Deinen Sketch nicht gelesen.
Du solltest ihn in „code-Tags“ fassen, damit er in einer Festbreitenschrift und dargestellt wird und scrollbar ist. Du kannst das auch nachträglich tun: „Posting bearbeiten“ wählen, Code markieren und in der Symbolleiste </> klicken.
Ich habe zweimal die Taster abfrage weil sich das Programm beschwert wenn ich eine break einbauen möchte.
Das Programm soll wenn man den Taster aktiviert hoch zählen und LEDs nacheinander einschalten und wenn man ihn deaktiviert runterzählen und die LEDs wieder ausschalten.
Das Problem ist nur das die Variable zu weit ins negative und zu weit ins positive weiter zählt und somit zu lange braucht um wieder aus- oder einzuschalten.