Go Down

Topic: hulp bij een led programma (Read 847 times) previous topic - next topic

Ludo0228

ik wil een led programma maken voor mn lego attractie en ik begin het coderen al een beetje te begrijpen! maar ik heb een vraag! ik zou graag 2 "programma's" willen hebben als code maar ik wil dat ze allebei spelen. alleen kom ik er echt niet uit!

deze 2 codes had ik al gemaakt en ik zou ze graag in 1 code willen hebben en dat ze allebei afspelen. de ene is een strobo en de ander een looplicht en ik heb ze al geprobeerd op een breadboord en ze doen het allebei! ik heb voor de strobo 2 witte led lampjes en voor het looplicht 3 gekleurde "normale" ledjes en ze hebben allebei een schakelaar.

Heel erg bedankt alvast voor de hulp! (mn verhaal was misschien een beetje langdradig dus sorry daarvoor. ik hoop dat je begrijpt wat ik bedoel!)

code no.1

void setup() {
  pinMode(10, OUTPUT);   
}


void loop() {
  digitalWrite(10, HIGH);   
  delay(60);                     
  digitalWrite(10, LOW);   
  delay(60);                     




en dit is code no.2



void setup() {
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);   
  delay(5000);                       
  digitalWrite(13, LOW);   
  delay(100);                       
  digitalWrite(12, HIGH);
  delay(5000);
  digitalWrite(12, LOW);
  delay(100);
  digitalWrite(11, HIGH);
  delay(5000);
  digitalWrite(11, LOW);
  delay(100);
  digitalWrite(12, HIGH);
  delay(5000);
  digitalWrite(12, LOW);
  delay(100);
}
 

mvg , Ludo

MAS3

Hoi Ludo0228, welkom !

Het is super simpel om die codes samen te voegen.
Maar dan zal het niet meer werken zoals de beide sketches ieder nu wel werken.
En dat komt omdat je de hele tijd zit te wachten.
Met delay(5000) zeg je tegen de processor in je Arduino dat ie 5 seconden lang niets moet doen dan ademhalen en een hartslag hebben.
Eigenlijk zeg je tegen dat ding: "Doe tachtig miljoen keer niets", want na tachtig miljoen keer niets doen zijn er 5 seconden verstreken.
Da's nogal zonde van de tijd, vind je niet ook ?

Daarom is er ook een slimmere manier bedacht om te wachten tot de juiste hoeveelheid tijd verstreken is terwijl er ook iets anders gedaan kan worden.
En dat heb je nodig.
Dit is een ding dat iedere programmeur een keer tegen het lijf gaat lopen, en jij bent daar nu aangekomen.

Omdat dat zo vaak voorkomt, heb ik daarover een korte opmerking onder aan elk van mijn berichten gezet, maar ook een apart berichtje (klik !) gemaakt die men hier heeft vastgezet boven aan het Nederlandstalige gedeelte van het forum.
Dus ik stel voor dat je dat eens leest en er mee aan de slag gaat.
Verwacht nu niet dat je 10 minuten nadat je dat gelezen hebt jouw probleem kan oplossen, maar je kunt er een waardevolle les uit leren.
Voor mij geldt bij dat soort dingen dat ik er het meeste van leer door eens te gaan spelen met genoemde voorbeelden voordat ik het zou gaan gebruiken in een eigen sketch.

Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

shooter

beste ludo, mase heeft helemaal gelijk hoor, die delay gaat dus niet werken, doe eerst een alles wat in setup staat bij elkaar, daarna alles wat in de loop staat ook bij elkaar.
en dan komt nu de truck die je moet gaan toepassen met die millis().
dat is een onafhankelijke teller die elke milliseconde er een bijkrijgt. Omdat je dus kunt nagaan hoelang iets duurt kun je een soort volorde maken. kijk inderdaad maar een bij blink without delay voorbeeld.
als de tijd voorbij is moet je iets gaan doen (en de tijd aanpassen)
paul deelen
shooter@home.nl
making controls with codesys PLC and arduino

Go Up