Even voorstellen en een vraagje.

Alles wat niet past in bovenstaande onderwerpen
Berichten: 8
Geregistreerd: 03 Feb 2017, 12:43

Even voorstellen en een vraagje.

Berichtdoor Jaap » 03 Feb 2017, 16:45

Beste Forum leden,

Mijn naam is Jaap en sinds enkele dagen begonnen met deze fantastische hobby.
Tevens ben ik in het bezit van een zeer uitgebreid starterskit met heel veel onderdelen.
En een Andruino UNO en een Andruino NANO.
Omdat ik een volledige leek ben op dit gebied hoop en denk ik ook heel veel te kunnen
leren op dit Forum en dus hier mijn eerste vraagje, waarschijnlijk is het heel simpel
voor jullie maar ik als leek kom hier niet uit? :oops:
Wie kan mij helpen hiermee?
Bij voorbaat dank!

Het gaat om het onderstaande projectje:

Verkeerslicht.jpg
Verkeerslicht Arduino Nano
Verkeerslicht.jpg (185.53 KiB) 12286 keer bekeken


Onderstaand de code Verkeerslicht:
Code: Alles selecteren
/*
  Simuleert met leds twee paar verkeerslichten op een kruising.

  Code geschreven op 5 juli 2016 door Koen Vervloesem en Martijn Overman voor Reshift Digital https://reshift.nl/

  Deze software mag worden verspreid onder de bepalingen van de GNU General Public License https://www.gnu.org/
*/

const int groen1 = 2;
const int geel1 = 3;
const int rood1 = 4;
const int groen2 = 5;
const int geel2 = 6;
const int rood2 = 7;
const int lang = 10000; // Wachttijd rood en groen
const int kort = 2000; // Wachttijd geel

void setup() {
  for (int pinNumber = 2; pinNumber <= 7; pinNumber++) {
    pinMode(pinNumber, OUTPUT);
  }
}

void loop() {

  digitalWrite(rood2, HIGH);
  digitalWrite(rood1, LOW);
  digitalWrite(groen1, HIGH);
  delay(lang);

  digitalWrite(groen1, LOW);
  digitalWrite(geel1, HIGH);
  delay(kort);

  digitalWrite(geel1, LOW);
  digitalWrite(rood1, HIGH);
  digitalWrite(rood2, LOW);
  digitalWrite(groen2, HIGH);
  delay(lang);

  digitalWrite(groen2, LOW);
  digitalWrite(geel2, HIGH);
  delay(kort);

  digitalWrite(geel2, LOW);

}


Dit werkt perfect.

Nu de opdracht wat voor mij als leek niet wil lukken?
-Wijzig de code zodat geel ook brandt voordat het licht groen wordt, zoals in Duitsland.
Hoe kan ik dit voor elkaar krijgen? Bij voorbaat dank!
Groeten Jaap.

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Even voorstellen en een vraagje.

Berichtdoor Koepel » 03 Feb 2017, 17:18

Dat kan ik zo ook niet vertellen. Er zullen twee stukken bij komen met een korte delay, denk ik.
Neem een stuk papier met op de x-as de tijd. Teken hoe de stoplichten gaan. Vertaal dat naar een sketch.

Dit is een leuk puzzeltje voor de zondagmiddag, maar met de Arduino of met programmeren heeft het weinig te maken.

De code laat niet duidelijk zien wat er gebeurt. Dus het eerste wat ik zou doen is een functie maken voor een stoplicht. Die functie kan alleen maar drie dingen doen: of rode led aan, of groene led aan, of gele led aan.
Op die manier kun je in de code lezen hoe de lichten gaan.

Nu ik er over nadenk is het toch wel leerzaam 8-) Je leert om iets uit de echte wereld te vertalen naar programmacode. Dat is het belangrijkste onderdeel van programmeren. Maar je hoeft je niet te houden aan de beperkingen van die sketch. Je kunt gerust zelf iets bedenken.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Even voorstellen en een vraagje.

Berichtdoor shooter » 03 Feb 2017, 21:21

in de loop staan steeds stukjes met situaties
het eerste is dus groen1 en rood2 zijn aan.
het tweede stukje wordt geel1 aan en groen1 uit, ofwel 1 is geel.
als je daar bijvoorbeeld bijzet geel2,HIGH dan gaat dus de gele lamp in richting 2 (die rood2 is ook nog aan) aan.

dat ook doen voor de geel1 (en nee ik vertel niet waar, is een leuke voor de zondagmiddag.
opdracht 1: zorg dat alle richtingen 2 seconden rood zijn voordat een richting groen krijgt. (dat zijn dus 2 situaties erbij (met een delay van 2000 milliseconden)
opdracht 2: bekijk waarom koen die geel2 op zo een vreemde plek heeft staan, en verbeter dat.
opdracht 3: als je nog twee ledjes hebt, maak dan een voetgangerslicht erbij (ja natuurlijk met een drukknop)
denk aan de weerstanden zoals ook bij de andere leds.

zet in jouw programma wat commentaar over de situaties.
en als je dan nog verder wilt maak hetzelfde met switch case en gebruik blink without delay als tijdschakelaar.
dat heeft te maken met opdracht3 want door de delay zie je de drukknop niet goed.

als bovenstaande werkt, dan krijg je het volgende stuk hoor.
(dat gaat over functies en calls)
paul deelen
shooter@home.nl

Berichten: 8
Geregistreerd: 03 Feb 2017, 12:43

Re: Even voorstellen en een vraagje.

Berichtdoor Jaap » 03 Feb 2017, 21:33

Koepel,
Zoals ik in mijn vraag al aangaf ben ik een echte beginner zonder enige ervaring
aangaande programmeren o.i.d.
Dit is echt een starters project en was al blij met het resultaat.

Waarom heeft dit weinig te maken met Arduino of met programmeren????
Ik werk toch met een Arduino Nano en software van Arduino programmeer omgeving 1.8.1.
Dit is mijn eerste project en na uploaden van deze code naar de Arduino functioneren de
zes ledjes zoals het behoort, zoals verkeerslichten werken.

Een beschrijving van de schets zoals uit de code te lezen is en hoe de leds daadwerkelijk gaan.
Rode led 2 aan, rode led 1 uit, groene led 1 aan
Na 10 seconden wachten.
Groene led 1 uit en gele led 1 aan.
Na 2 seconde wachten.
Gele led 1 uit en rode led 1 aan en rode led 2 uit en groene led 2 aan.
Na 10 seconde wachten.
Groene led 2 uit en gele led 2 aan.
Na 2 seconden wachten.
Gele led 2 uit en gebeurt volgens de loop de hele procedure opnieuw.


De code is zo gekopieerd uit Arduino 1.8.1 helaas is de tekst geheel in zwart weer gegeven.
En ik als leek kan stap voor stap zien wat er per stap gebeurt..en dat functioneert zo als bedoeld.
Simpel voor de ervaren mensen alhier maar voor mij als leek toch al een leuk stukje programmeren.
Hoe ben jij begonnen Koepel?

Maar goed nog geen antwoord op mijn vraag gehad dus wie weet??

Gr. Jaap.

Berichten: 8
Geregistreerd: 03 Feb 2017, 12:43

Re: Even voorstellen en een vraagje.

Berichtdoor Jaap » 03 Feb 2017, 21:35

Hallo Shooter,

Bedankt voor de reactie en ik ga ermee aan de slag.

Met vriendelijke groet,

Jaap.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Even voorstellen en een vraagje.

Berichtdoor Koepel » 03 Feb 2017, 23:55

Wanneer ik jouw beschrijving omzet naar een tekening, dan begrijp ik het ;)
Ik zie het graag voor me, dus zo'n tekening is voor mij heel veel duidelijker, maar misschien vind jij het nergens op slaan :o
Kies wat bij je past, en wat je zelf het gemakkelijkste vind.

Ik ben ooit begonnen met Basic op een hobby computer. Later ben ik met Arduino begonnen, alleen maar omdat er veel mensen zijn die hulp bieden, en dat was ook zo :D
Bijlagen
Stoplicht.png
Stoplicht.png (12.21 KiB) 12257 keer bekeken

Berichten: 8
Geregistreerd: 03 Feb 2017, 12:43

Re: Even voorstellen en een vraagje.

Berichtdoor Jaap » 04 Feb 2017, 15:15

Beste Koepel,

Bedankt voor je reactie en inderdaad met zo'n kleuren tekening
wordt het wel overzichtelijker. :P

Jaren geleden ben ik wel eens met een Commodore 64 van mijn broer
aan het rommelen geweest, uren lang een code overtikken uit een
maandblad en dan afwachten of het werkt en als je geluk had
dan kreeg je een draaiend kubusje op het beeldscherm.
Er was ook een radio programma dat kon je opnemen op een datarecorder
een cassettebandje en uploaden naar de CMD 64 dit werkte ook niet altijd.
Dit is al heel lang geleden en ik weet niet in wat voor programmeer taal dit was. :?:

Maar de Arduino is veel leuker en veel leerzamer.
Vandaag het boek Arduino voor Dummies ontvangen..er staat veel (achtergrond)
informatie in vooral voor beginners en ik ga dit eens lekker doorwerken.
Als ik vragen heb zie je ze vanzelf verschijnen op dit interessante Forum. :?

Groeten, Jaap.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Even voorstellen en een vraagje.

Berichtdoor shooter » 04 Feb 2017, 20:16

ja een schetsje is handig, zeker als er dadelijk een tram bijkomt.

de taal van de radioprogrammas was basicode, en bijna elke computer kon dat doen, de baudrate was 100 Hz, tegenwoordig is 100 MHz al heel gewoon.en dat voor 10 euro.
maar ach we gaan met de tijd mee.

en jaap lukt het al een beetje met je duitse versie?
paul deelen
shooter@home.nl

Berichten: 8
Geregistreerd: 03 Feb 2017, 12:43

Re: Even voorstellen en een vraagje.

Berichtdoor Jaap » 06 Feb 2017, 01:32

Mijne heren, Shooter en Koepel.

De eerste 2 opdrachten verkeerslicht Duitse versie is gelukt.
Ik heb het via onderstaande schets opgelost.
Stap voor stap bekeken en de vorige code/schets even aan de kant gegooid.
Opdracht 2: Ik heb de onderste regel digitalWrite(geel2, LOW); }
met enkele aanpassingen naar de eerste stap overgezet zo reageert deze ook op de delay want, voegde ik een delay toe onder de onderste regel
dan had ik een onderbreking van enkele seconden tussen eind en begin van de loop.
Ik hoop dat dit de juiste is? Het werkt i.i.g. wel... :lol:
Gaarne jullie reacties..
Op naar de volgende opdracht.
Groetjes Jaap.

const int groen1 = 2;
const int geel1 = 3;
const int rood1 = 4;
const int groen2 = 5;
const int geel2 = 6;
const int rood2 = 7;
const int lang = 10000; // Wachttijd rood en groen
const int kort = 5000; // wachttijd geel

void setup() {
for (int pinNumber = 2; pinNumber <= 7; pinNumber++) {
pinMode(pinNumber, OUTPUT);
}
}
void loop() {

digitalWrite(geel1, LOW); // groen1 en rood2 lang aan en (geel1 en geel2 uit)
digitalWrite(geel2, LOW);
digitalWrite(rood2, HIGH);
digitalWrite(groen1, HIGH);
delay(lang);

digitalWrite(rood2, LOW); // geel1 en geel2 kort aan en (rood2 en groen1 uit)
digitalWrite(groen1, LOW);
digitalWrite(geel1, HIGH);
digitalWrite(geel2, HIGH);
delay(kort);


digitalWrite(geel1, LOW); // rood1 en groen2 lang aan en (geel1 en geel2 uit)
digitalWrite(geel2, LOW);
digitalWrite(rood1, HIGH);
digitalWrite(groen2, HIGH);
delay(lang);

digitalWrite(rood1, LOW); // geel1 en geel2 kort aan en (rood1 en groen2 uit)
digitalWrite(groen2, LOW);
digitalWrite(geel1, HIGH);
digitalWrite(geel2, HIGH);
delay(kort);


}

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Even voorstellen en een vraagje.

Berichtdoor Koepel » 06 Feb 2017, 06:24

Ziet er goed uit. Ze zijn beide tegelijkertijd geel, dus er waren geen twee extra stappen nodig. En je hebt commentaar toegevoegd, dat is heel goed :D

Volgende

Terug naar Theekransje

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 10 gasten