Hulp met ons Profielwerkstuk
12 berichten
• Pagina 1 van 2 • 1, 2
- Riponsproject
- Berichten: 6
- Geregistreerd: 20 Aug 2015, 11:38
Hulp met ons Profielwerkstuk
Hallo,
ik en een vriend doen ons profielwerkstuk over zelfrijdende auto's maar zijn tegen een probeem aangelopen tijdens het programmeren. Wij hebben 2 Pingsensors aangesloten op onze Arduino Mega maar als wij onze code erop zetten werkt maar 1 van de 2 sensoren die wij hebben aangesloten. Kan iemand ons helpen hiermee? alvast bedankt
cpp code
ik en een vriend doen ons profielwerkstuk over zelfrijdende auto's maar zijn tegen een probeem aangelopen tijdens het programmeren. Wij hebben 2 Pingsensors aangesloten op onze Arduino Mega maar als wij onze code erop zetten werkt maar 1 van de 2 sensoren die wij hebben aangesloten. Kan iemand ons helpen hiermee? alvast bedankt
cpp code
// Ping sensor 1
int trigPinR = 13; // rechts
int echoPinR = 12; // rechts
//Ping sensor 2
int trigPinL = 11; // links
int echoPinL = 10; // links
//Motoren
int E1 = 4; // Motor Rechts
int M1 = 5; // Motor Rechts
int E2 = 7; // Motor Links
int M2 = 6; // Motor Links
void setup() {
Serial.begin (9600);
pinMode(trigPinR, OUTPUT);
pinMode(echoPinR, INPUT);
pinMode(trigPinL, OUTPUT);
pinMode(echoPinL, INPUT);
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
pinMode(E1, OUTPUT);
pinMode(E2, OUTPUT);
}
void loop() {
int value;
int valueL;
long durationR, distanceR;
long durationL, distanceL;
digitalWrite(trigPinR, LOW);
digitalWrite(trigPinL, LOW);
delayMicroseconds(2);
digitalWrite(trigPinR, HIGH);
digitalWrite(trigPinL, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinR, LOW);
digitalWrite(trigPinL, LOW);
durationR = pulseIn(echoPinR, HIGH);
durationL = pulseIn(echoPinL, HIGH);
distanceR = (durationR / 2) / 29.1;
distanceL = (durationL / 2) / 29.1;
if (distanceR >= 60 || distanceR <= 0)
{
for (value = 0 ; value <= 255; value += 5)
{
digitalWrite(E2, HIGH);
analogWrite(M2, value);
}
}
else
{
for (value = 0 ; value <= 255; value+=5)
{
digitalWrite(E2, LOW);
analogWrite(M2, value);
}
}
if (distanceL >= 60 || distanceL <= 0)
{
for (valueL = 0; valueL <= 255; valueL += 5)
{
digitalWrite(E1, HIGH);
analogWrite(M1, valueL);
}
}
else
{
for (valueL = 0 ; valueL <= 255; value+=5)
{
digitalWrite(E1, LOW);
analogWrite(M1, valueL);
}
}
delay(500);
}
Advertisement
Re: Hulp met ons Profielwerkstuk
pulseIn is een blocking code, ofwel de processor wacht tot er een puls binnenkomt, voordat het spul verder gaat, dus
cpp code
zal wel werken.
een betere oplossing is om Links en Rechts af te wisselen, je programma lijkt dan op een waggeleend, maar omdat je arduino zo snel is merk je dat niet.
het stukje hierboven in een functie zetten en dan dus bijv. durationL = puls(links) in je loop zetten.
ik hou van kleine stukken code, liefst op een bladzijde een stukje.
verder een typefouten controle doen ik zag value staan en dat moet ValueL zijn.
ook de snelheid zul je moeten herschrijven en niet doen met for loops
stel even de afstand is 20 cm voor links
de gewenste afstand is 15 cm, dat betekent dat de motor mag versnellen, dus een stapje erbij.
als de afstand 13 cm is dan motor vertragen dus -= doen.
extra opdracht is om de versnelling afhankelijk te maken van het verschil tussen gemeten en gewenst.
extra bedenken waar die pulseIn eigenlijk moet staan, danwel een tabel maken met afstanden want gewoon delen door 29.1 is niet genoeg.
cpp code
digitalWrite(trigPinR, LOW);
delayMicroseconds(2);
digitalWrite(trigPinR, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinR, LOW);
durationR = pulseIn(echoPinR, HIGH);
digitalWrite(trigPinL, LOW);
delayMicroseconds(2);
digitalWrite(trigPinL, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinL, LOW);
durationL = pulseIn(echoPinL, HIGH);
zal wel werken.
een betere oplossing is om Links en Rechts af te wisselen, je programma lijkt dan op een waggeleend, maar omdat je arduino zo snel is merk je dat niet.
het stukje hierboven in een functie zetten en dan dus bijv. durationL = puls(links) in je loop zetten.
ik hou van kleine stukken code, liefst op een bladzijde een stukje.
verder een typefouten controle doen ik zag value staan en dat moet ValueL zijn.
ook de snelheid zul je moeten herschrijven en niet doen met for loops
stel even de afstand is 20 cm voor links
de gewenste afstand is 15 cm, dat betekent dat de motor mag versnellen, dus een stapje erbij.
als de afstand 13 cm is dan motor vertragen dus -= doen.
extra opdracht is om de versnelling afhankelijk te maken van het verschil tussen gemeten en gewenst.
extra bedenken waar die pulseIn eigenlijk moet staan, danwel een tabel maken met afstanden want gewoon delen door 29.1 is niet genoeg.
paul deelen
shooter@home.nl
shooter@home.nl
- Riponsproject
- Berichten: 6
- Geregistreerd: 20 Aug 2015, 11:38
Re: Hulp met ons Profielwerkstuk
ook de snelheid zul je moeten herschrijven en niet doen met for loops
Wat kunnen wij als vervanging gebruiken voor de motor besturing? Wij hebben op internet gezocht maar kunnen niet vinden voor iets wat bij ons project zou kunnen.
een betere oplossing is om Links en Rechts af te wisselen, je programma lijkt dan op een waggeleend, maar omdat je arduino zo snel is merk je dat niet.
Hoe zouden wij dit moeten doen? Wij zijn niet ervaren met het gebruiken en coderen van een Arduino dus wij weten niet hoe wij dit zouden moeten doen. Dit is ons eerste project .
Re: Hulp met ons Profielwerkstuk
begin hier eens mee,
de kar zal wel flink springen, maar dit is een begin.
zoek eens op Rover dan vindt je wat je zoekt.
(ja ik heb een heel mooi uitgebreid programma, maar zoals je weet is het een schoolprojekt en zul je het zelf moeten uitzoeken.
en ja ik heb graag dat je de leraar over mij verteld.
cpp code
de kar zal wel flink springen, maar dit is een begin.
zoek eens op Rover dan vindt je wat je zoekt.
(ja ik heb een heel mooi uitgebreid programma, maar zoals je weet is het een schoolprojekt en zul je het zelf moeten uitzoeken.
en ja ik heb graag dat je de leraar over mij verteld.
cpp code
// Ping sensor 1
int trigPinR = 13; // rechts
int echoPinR = 12; // rechts
//Ping sensor 2
int trigPinL = 11; // links
int echoPinL = 10; // links
//Motoren
int E1 = 4; // Motor Rechts
int M1 = 5; // Motor Rechts
int E2 = 7; // Motor Links
int M2 = 6; // Motor Links
void setup() {
Serial.begin (9600);
pinMode(trigPinR, OUTPUT);
pinMode(echoPinR, INPUT);
pinMode(trigPinL, OUTPUT);
pinMode(echoPinL, INPUT);
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
pinMode(E1, OUTPUT);
pinMode(E2, OUTPUT);
}
void loop() {
int valueR=234;
int valueL=243;
long durationR, distanceR;
long durationL, distanceL;
digitalWrite(trigPinR, LOW);
delayMicroseconds(2);
digitalWrite(trigPinR, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinR, LOW);
durationR = pulseIn(echoPinR, HIGH);
digitalWrite(trigPinL, LOW);
delayMicroseconds(2);
digitalWrite(trigPinL, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinL, LOW);
durationL = pulseIn(echoPinL, HIGH);
distanceR = (durationR / 2) / 29.1;
distanceL = (durationL / 2) / 29.1;
if (distanceR >= 60 || distanceR <= 0)
{
digitalWrite(E2, HIGH);
analogWrite(M2, valueR);
}
else
{
digitalWrite(E2, LOW);
analogWrite(M2, valueR);
}
if (distanceL >= 60 || distanceL <= 0)
{
digitalWrite(E1, HIGH);
analogWrite(M1, valueL);
}
}
else
{
digitalWrite(E1, LOW);
analogWrite(M1, valueL);
}
delay(500);
}
paul deelen
shooter@home.nl
shooter@home.nl
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Hulp met ons Profielwerkstuk
shooter schreef:en ja ik heb graag dat je de leraar over mij verteld.
Die paul toch
- Riponsproject
- Berichten: 6
- Geregistreerd: 20 Aug 2015, 11:38
Re: Hulp met ons Profielwerkstuk
Hallo,
Wij hebben de code die u hebt gegeven geprobeerd, maar ook met deze code werkt dit niet. We hebben geprobeerd om de snelheid van High en Low van te voren gedefineerd te laten zijn met Value1 en Value2 cpp code
Kunt u ons snel helpen, want wij moeten vanavond deze auto voltooid hebben voor onze profielwerkstuk presentatie
Met voorbaat dank
Wij hebben de code die u hebt gegeven geprobeerd, maar ook met deze code werkt dit niet. We hebben geprobeerd om de snelheid van High en Low van te voren gedefineerd te laten zijn met Value1 en Value2 cpp code
// Ping sensor 1
int trigPinR = 13; // rechts
int echoPinR = 12; // rechts
//Ping sensor 2
int trigPinL = 11; // links
int echoPinL = 10; // links
//Motoren
int E1 = 4; // Motor Rechts
int M1 = 5; // Motor Rechts
int E2 = 7; // Motor Links
int M2 = 6; // Motor Links
void setup() {
Serial.begin (9600);
pinMode(trigPinR, OUTPUT);
pinMode(echoPinR, INPUT);
pinMode(trigPinL, OUTPUT);
pinMode(echoPinL, INPUT);
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
pinMode(E1, OUTPUT);
pinMode(E2, OUTPUT);
}
void loop() {
int valueX=255;
int valueY=-255;
long durationR, distanceR;
long durationL, distanceL;
digitalWrite(trigPinR, LOW);
delayMicroseconds(2);
digitalWrite(trigPinR, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinR, LOW);
durationR = pulseIn(echoPinR, HIGH);
digitalWrite(trigPinL, LOW);
delayMicroseconds(2);
digitalWrite(trigPinL, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinL, LOW);
durationL = pulseIn(echoPinL, HIGH);
distanceR = (durationR / 2) / 29.1;
distanceL = (durationL / 2) / 29.1;
if (distanceR >= 30 || distanceR <= 0)
{
digitalWrite(E2, HIGH);
analogWrite(M2, valueX);
}
else
{
digitalWrite(E2, LOW);
analogWrite(M2, valueY);
}
if (distanceL >= 30 || distanceL <= 0)
{
digitalWrite(E1, HIGH);
analogWrite(M1, valueX);
}
else
{
digitalWrite(E1, LOW);
analogWrite(M1, valueY);
}
delay(500);
}
Kunt u ons snel helpen, want wij moeten vanavond deze auto voltooid hebben voor onze profielwerkstuk presentatie
Met voorbaat dank
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Hulp met ons Profielwerkstuk
Als je een getal neemt als long en deze deelt door een float, komt er nog steeds een long uit met onverwachte afkappingen.
En wat werkt er niet?
En wat werkt er niet?
- Riponsproject
- Berichten: 6
- Geregistreerd: 20 Aug 2015, 11:38
Re: Hulp met ons Profielwerkstuk
bedankt voor de reactie, maar omdat we tijd te kort komen en vanavond moeten presenteren hebben we besloten om met 1 sensor verder te gaan.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Hulp met ons Profielwerkstuk
Welke sensoren gebruiken jullie eigenlijk?
Re: Hulp met ons Profielwerkstuk
succes,
maar ik denk dat jullie werkstuk is afgekeurd,
van 24 nov. tot 8 dec. helemaal niets gedaan.
laat leraar maar even mailen, dan krijg je misschien nog een week erbij.
maar ik denk dat jullie werkstuk is afgekeurd,
van 24 nov. tot 8 dec. helemaal niets gedaan.
laat leraar maar even mailen, dan krijg je misschien nog een week erbij.
paul deelen
shooter@home.nl
shooter@home.nl
12 berichten
• Pagina 1 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 45 gasten