Kan iemand ons helpen met ons profielwerkstuk? Wij hebben een Arduino Mega 2560 waarop wij 4 motoren hebben aangesloten via een motor board, dit motor board kan maar 2 motoren aan dus hebben wij het de linker en rechter 2 motoren samengevoegd. Hier ging het nog goed maar hij hebben 2 sensoren aangesloten op de arduino om het voertuig zelfrijdend te maken, maar dit werkt niet. Wij zijn hier al meerdere maanden mee bezig(dit is ons eerste Arduino project dus wij wisten niet hoe dit werkte), maar onE code werkt niet zoals wij het willen. Zou iemand zo aardig kunnen zijn om onze code voor ons aan te passen? Wij hebben namelijk tot vanavond om deze auto werkend te hebben. Met voorbaat dank.
// 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=243;
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 >= 30 || distanceR <= 0)
{
digitalWrite(E2, HIGH);
analogWrite(M2, valueR);
}
else
{
digitalWrite(E2, LOW);
analogWrite(M2, valueR);
}
if (distanceL >= 30 || distanceL <= 0)
{
digitalWrite(E1, HIGH);
analogWrite(M1, valueL);
}
else
{
digitalWrite(E1, LOW);
analogWrite(M1, valueL);
}
delay(500);
}