Lego trein motor
36 berichten
• Pagina 3 van 4 • 1, 2, 3, 4
Re: Lego trein motor
mijn stukje nog een keer lezen, staat iets in van een delay om te zorgen dat de trein voorbij de sensor is.
en zo kom je dan toch dadelijk aan een werkend programma leuk he.
de oplossing is gewoon een mooi begin, en zeker niet klasse (let toch eens op je nederlands nico)
en zo kom je dan toch dadelijk aan een werkend programma leuk he.
de oplossing is gewoon een mooi begin, en zeker niet klasse (let toch eens op je nederlands nico)
paul deelen
shooter@home.nl
shooter@home.nl
Advertisement
Re: Lego trein motor
Ik weet het nog niet helemaal zeker, maar volgens mij is het gelukt. Ik had vanavond niet veel tijd, maar ik moest er gewoon mee doorgaan.
Het vervelende is dat ik nog niet eens precies weet wat ik nu eigenlijk gedaan heb. Ik heb gewoon zitten proberen (eerste delay op 1000 omdat hij anders gaat stotteren) en verder zitten schuiven met de andere delay. Beetje roekeloos, dat geef ik toe.
Ik ga morgen even met de hele trein en een perron testen of het echt werkt.
Dit is de code:
cpp code
Het vervelende is dat ik nog niet eens precies weet wat ik nu eigenlijk gedaan heb. Ik heb gewoon zitten proberen (eerste delay op 1000 omdat hij anders gaat stotteren) en verder zitten schuiven met de andere delay. Beetje roekeloos, dat geef ik toe.
Ik ga morgen even met de hele trein en een perron testen of het echt werkt.
Dit is de code:
cpp code
int LDR = A0;
int LDRValue = 0;
int IN1 = 8;
int IN2 = 9;
int ENA = 10;
int lightSensitivity = 500;
void setup() {
Serial.begin(9600);
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
}
void loop() {
LDRValue = analogRead(LDR);
Serial.println(LDRValue);
delay(1000);
LDRValue = analogRead(LDR);
if(LDRValue > lightSensitivity){
digitalWrite(IN2,LOW);
delay(5000);
}
if(LDRValue > lightSensitivity){
digitalWrite(IN2,HIGH);
}
}
}
Re: Lego trein motor
nee dit gaat niet werken zo.
als de sensor trein ziet dan LOW dat heb je goed.
dan de delay ook goed (5 seconden wachten aan perron)
dan uitgang HIGH maken ongeacht of de sensor een trein ziet of niet.
zodra de trein weg is kun je weer herbeginnen.
als de sensor trein ziet dan LOW dat heb je goed.
dan de delay ook goed (5 seconden wachten aan perron)
dan uitgang HIGH maken ongeacht of de sensor een trein ziet of niet.
zodra de trein weg is kun je weer herbeginnen.
paul deelen
shooter@home.nl
shooter@home.nl
Re: Lego trein motor
Ik was toevallig net bezig met een filmpje om te laten zien dat ik inderdaad net iets te vroeg heb gejuicht:
https://www.youtube.com/watch?v=KwwZmLBoYZM&feature=youtu.be
Helaas...
Hij stopt niet direct als hij moet stoppen en als hij gaat rijden dan stopt hij weer als hij binnen de seconde nog steeds de trein ziet.
https://www.youtube.com/watch?v=KwwZmLBoYZM&feature=youtu.be
Helaas...
Hij stopt niet direct als hij moet stoppen en als hij gaat rijden dan stopt hij weer als hij binnen de seconde nog steeds de trein ziet.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Lego trein motor
Waarom zet je nu die delay er niet gewoon achter die we eerder hebben voorgesteld?
Re: Lego trein motor
de loop moet eigenlijk heel snel zijn.
dus die delay van 100 eruit halen.
dan stopt de trein zodra de sensor uitgaat.
dan de stoptijd van de trein
dan trein aanzetten
dan wachten tot trein weg is (kun je zien als sensor weer aangaat (doe dat met een while , (nieuwe opdracht)
dan ga je weer naar het begin toe
(nee ik ga geen programma geven dan is de uitdaging er van af
dus die delay van 100 eruit halen.
dan stopt de trein zodra de sensor uitgaat.
dan de stoptijd van de trein
dan trein aanzetten
dan wachten tot trein weg is (kun je zien als sensor weer aangaat (doe dat met een while , (nieuwe opdracht)
dan ga je weer naar het begin toe
(nee ik ga geen programma geven dan is de uitdaging er van af
paul deelen
shooter@home.nl
shooter@home.nl
Re: Lego trein motor
Ik verwacht helemaal niet dat jullie mijn code gaan schrijven hoor. Ik wil het zelf kunnen en waardeer jullie hulp.
Ik ben inmiddels weer iets verder gekomen. Hij stopt nu 1 keer en gaat weer netjes rijden. Maar ik weet niet hoe je weer terug moet naar het begin, zodat hij ook het tweede, derde enz... rondje stopt bij het perron.
cpp code
Ik ben inmiddels weer iets verder gekomen. Hij stopt nu 1 keer en gaat weer netjes rijden. Maar ik weet niet hoe je weer terug moet naar het begin, zodat hij ook het tweede, derde enz... rondje stopt bij het perron.
cpp code
int LDR = A0;
int LDRValue = 0;
int IN1 = 8;
int IN2 = 9;
int ENA = 10;
int lightSensitivity = 500;
void setup() {
Serial.begin(9600);
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
}
void loop() {
LDRValue = analogRead(LDR);
Serial.println(LDRValue);
// delay(1000);
LDRValue = analogRead(LDR);
if(LDRValue > lightSensitivity){
digitalWrite(IN2,LOW);
delay(5000);
while(LDRValue > lightSensitivity){
digitalWrite(IN2,HIGH);
}
}
}
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Lego trein motor
Het is toch een loop()... Draait eeuwig...
Re: Lego trein motor
probeer het maar het zal werken zoals je het geschreven hebt.
wel even die Serial.println // in commentaar zetten want er wordt nu 1 miljoen keer/ seconde de ldrvalue geschreven en zo snel kun je toch niet kijken, en de serial loopt dan vol.
opdracht: zorg dat die print 1 /seconde gebeurt (zie blink without delay)
zoals nico zegt: de setup wordt maar 1 keer gedaan, en een processor is niet te stoppen, dus als je programma aan het eind van de loop is dan begint deze weer aan het begin van loop().
wel even die Serial.println // in commentaar zetten want er wordt nu 1 miljoen keer/ seconde de ldrvalue geschreven en zo snel kun je toch niet kijken, en de serial loopt dan vol.
opdracht: zorg dat die print 1 /seconde gebeurt (zie blink without delay)
zoals nico zegt: de setup wordt maar 1 keer gedaan, en een processor is niet te stoppen, dus als je programma aan het eind van de loop is dan begint deze weer aan het begin van loop().
paul deelen
shooter@home.nl
shooter@home.nl
Re: Lego trein motor
Het is toch zo dat met bovenstaande code de trein slechts 1 keer stopt. Zie filmje:
https://youtu.be/aEouPiO56Do
Als ik de Serial.PrintIn als comment zet dan veranderd er aan de werking volgens mij niets, alleen zie ik geen waarder meer in de serial monitor.
Ik heb al eea zitten proberen met de "blink without relay" en ben daar inmiddels zover dat de trein stopt maar de 5 seconde pauze starten pas als ik hem met de hand voorbij de sensor heb geduwd.
https://youtu.be/aEouPiO56Do
Als ik de Serial.PrintIn als comment zet dan veranderd er aan de werking volgens mij niets, alleen zie ik geen waarder meer in de serial monitor.
Ik heb al eea zitten proberen met de "blink without relay" en ben daar inmiddels zover dat de trein stopt maar de 5 seconde pauze starten pas als ik hem met de hand voorbij de sensor heb geduwd.
36 berichten
• Pagina 3 van 4 • 1, 2, 3, 4
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 12 gasten