Pages: [1]   Go Down
Author Topic: nieuw en een vraag  (Read 1262 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Forum Moderator
Belgium
Offline Offline
Edison Member
*****
Karma: 68
Posts: 1926
Arduino rocks; but with my plugin it can fly rocking the world ;-)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Code:
pinMode(11, OUTPUT);
  pinMode(8, INPUT);
ik zou schrijven
Code:
pinMode(ledPin , OUTPUT);
  pinMode(buttonPin , INPUT);

Code:
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:
Code:
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 :-)

Met groeten uit België
Jantje
Logged

Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Pages: [1]   Go Up
Jump to: