Hét vraag- en antwoordplatform van Nederland

Hoe kan ik er voor zorgen dat een LED blijft branden bij een Arduino aangestuurd met Visual Studio?

Ik heb software gemaakt in VS2013 waarmee ik uitgangen wil besturen van een arduino (uno). Telkens als ik op de knop in de software druk gaat de lamp heel eventjes en heel lichtjes branden.

Zit er een fout in onderstaande arduino code waardoor dit probleem zich voordoet?

_____________________________________________________________

int ledPin2 = 9; // the number of the LED pin
char inChar;

void setup() {
Serial.begin(9600); // set serial speed
pinMode(ledPin2, OUTPUT); // set LED as output
}

void serialEvent() {
while (Serial.available() > 0) {
// get the new byte:
inChar = (char)Serial.read();

switch(inChar){

case 'A':
digitalWrite(ledPin2, HIGH); //turn ON
break;

case 'B':
digitalWrite(ledPin2, LOW); //turn OFF
break;

//add more lights here
}
}
}

void loop(){
while (Serial.available() == 'B'); // do nothing if nothing sent
int val = Serial.read() - 'B'; // deduct ascii value of '0' to find numeric value of sent number

if (val == 'A') { // test for command 1 then turn on LED
Serial.println("LED ON");
digitalWrite(ledPin2, HIGH); // turn on LED
}


if (val == 'B') // test for command 0 then turn off LED

Serial.println("LED OFF");
digitalWrite(ledPin2, LOW); // turn off LED
}

Verwijderde gebruiker
9 jaar geleden
1.4K
Verwijderde gebruiker
9 jaar geleden
Is het enige wat je wil doen een lamp aanzetten als je op de knop drukt?
Verwijderde gebruiker
9 jaar geleden
Ja dat klopt, maar dan wel meerdere lampen. Als je gebruik maakt van een '0' en een '1' i.c.m. 'val' dan kun je maar één led aan en uitzetten. Vandaar dat ik werk met letters om meerdere leds te kunnen aansturen.

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Het beste antwoord

Volgens mij ontbreekt hier: if (val == ‘B’) // test for command 0 then turn off LED
een bracket {

Daardoor wordt het navolgende statement:
Serial.println("LED OFF");
altijd uitgevoerd.

Aaan het eind is er dan nog een } te veel.
(Lees meer...)
Verwijderde gebruiker
9 jaar geleden

Weet jij het beter..?

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

0 / 5000
Gekozen afbeelding