Hvis det er meningen at knap 1 skal tænde LED 1 ved første tryk og slukke ved næste osv. er der flere problemer.
Du sætter konstant hver knaps "huske" variabel = med kanppens tilstand (altså "0" eller "1"). Det betyder at LEDerne kun er tændt når der er trykket på en eller flere knapper. Der ud over vil den "else" der er til sidst bevirke at der kun er "hul" igennem hvis der er trykket på knap 4 ("else" er bundet til din sidste "if" hvor du tester knap 4). Er der ikke trykket på knap 4 vil alle udgange blive sat til "0", også selv om f.eks. knap 1 er trykket ned.
prøv istedet det her efter setup (switchstat variablerne skal måske være af type "Boolean" i stedet for "int"):
Hvis jeg forstår dig rigtigt har du forbundet knapperne som i vedhæftede diagram.
Det er ikke nogen god ide. Tænk på at hvis knappen ikke er aktiveret, er pin 8 ikke forbundet til noget, og den er derfor ikke hverken HIGH eller LOW, eller måske er den. Det kaldes en flydende tilstand.
Når du trykker på knappen skal de to tilledninger være sluttet, når du slipper skal de ikke være forbundet.
Som sagt lav en test med et multimeter eller en LED+modstand.
Det vil måske være en ide at starte med en knap. Når du har fået den til at virke kan du udvide til 4.
Denne sketch er med kun een knap, og bruger ikke så mage komponenter.
Denne linje betyder at den indbyggede pull-up modstand bliver aktiveret, du behøver altså ikke at forbinde en ekstern modstand. (det svare til at forbinde en modtand fra pin 8 til +5V)
pinMode(switchPin1, INPUT_PULLUP);
Og så har jeg brugt pin13, der jo har en LED forbundet istedet.
Du skal så bare forbinde din knap fra pin 8, til Gnd, så kan du også teste hvordan den skal vende
const int switchPin1 = 8;
const int ledPin1 = 13;
int switchState1 = 0;
void setup() {
pinMode(ledPin1, OUTPUT);
pinMode(switchPin1, INPUT_PULLUP);
}
void loop() {
digitalWrite(ledPin1, switchState1);
if (digitalRead(switchPin1) == LOW) {
switchState1 =!switchState1; // !=toggel
}
}
Det lyder da utroligt at så simpelt et projekt skulle give så mange problemer.
Har du fulgt vejledningen:
The circuit:
LED attached from pin 13 to ground
pushbutton attached from pin 2 to +5V
10K resistor attached from pin 2 to ground
I stedet for knappen prøv med en ledning i pin 2 og en i 5V, og lad dem røre hinanden et kort øjeblik.
Hvis det ikke virker tror jeg efterhånden der er et eller andet helt galt, som jeg ikke kan gennemskue.