nieuw en een vraag

Hallo allemaal,

Ik zal me eerst even voorstellen. Ik ben Wim en sinds kort bezig met arduino. Hiervoor nooit ervaring gehad met C o.i.d. dus een compleet leek. Begonnen met wat voorbeelden en nu zelf aan de slag.

Ik ben bezig met een dimmer te maken voor mijn aquarium en ben bezig een programma ervoor te schijven. Zie hieronder. Alleen heb ik een kleine vraag en moet een beetje op weg worden geholpen.

dit is de code die ik nu heb:

int ledPin = 11;
int buttonPin = 8;

void setup()
{

pinMode(11, OUTPUT);
pinMode(8, INPUT);

}

void loop() {

if (digitalRead(buttonPin)==HIGH)
for (int i=0; i<255; i++){
analogWrite(ledPin, i); // set the LED on
delay(20);

// Led stays on until buttonPin=low
}
else
{

if (digitalRead(buttonPin)==LOW)
for (int i=255; i >= 0; i--){
analogWrite(ledPin, i); // set the LED off
delay(20);

// Led stays off until buttonPin=high
}
}
}

Nu moet onder de analogWrite nog een lijn komen die de status van de ledPin aan of uit houdt totdat buttonPin veranderd. Nu krijg ik dit op geen mogelijkheid voor elkaar en volgens mij is dit toch niet zo heel moeilijk. Wellicht gaat dit niet met de if else maar zover zit ik helaas nog niet in de materie.

Ik hoop dat jullie mij een beetje opweg kunnen helpen naar de oplossing.

Alvast bedankt!

groetjes,
Wim

Dag Wim
Welkom op het forum.
Het is altijd handig om je code in de code tags te zetten. Alsook een omschrijving van wat je wilt doen.
Effe door de code lopend zie ik volgende zaken

pinMode(11, OUTPUT); 
  pinMode(8, INPUT);

ik zou schrijven

pinMode(ledPin , OUTPUT); 
  pinMode(buttonPin , INPUT);
for (int i=0; i<255; i++){
  analogWrite(ledPin, i);   // set the LED on
       delay(20);
      // Led stays on until buttonPin=low
}

Hier zet je 255 keer de led steeds helderder aan met een delay van 20. Dat is dus 255*20 milli seconden delay. Of een led die op 5 seconden langzaam aan gaat
de comment "// Led stays on until buttonPin=low" slaat nergens op.
Hetzelfde herhaal je dan verder weer. Waarschijnlijk wil je de led dan uitzetten.

Het gebruik van { in je code is verwarrend maar hoe ik het begrijp komt het neer op:

if (digitalRead(buttonPin)==HIGH)
{
....
}
else
{
  if (digitalRead(buttonPin)==LOW) 
  {
  }
}

de 2de if is overbodig omdat je al in de else constructie zit.

volhouden, voorbeeld programma's lezen die met de arduino geleverd worden en je komt er :slight_smile:

Met groeten uit België
Jantje