Neustes Update^^
hab das Wochenende mit verbracht bissle an einem Sketch zu arbeiten - bin noch ned ganz zu frieden aber für anfängerische Möglichkeiten
recht einfach gehalten der Sketch.
Habe jetzt experimentiert mit einem Arduino Mega + Motor Shield von Arduino und zwei Infrarotsensoren ( Sharp GP2Y0A21YK0F )
Ich muss dann nur wieder schauen wie ich den Code von Motor zu Servo umschreibe, bzw vllt geht es auch als Motor geschrieben.
Wegen meinem Fahrtenregler, bin der Meinung der reagiert besser wenn man ihn als Servo anspricht, weil er bei jedem einschalten die 0 Stellung
abfragt. Deswegen wird als Servo besser sein!
Hier hab ich euch mal zwei Bilder dazu:


Hier mal mein Code - aber ned auf mich einhacken was alles falsch und richtig ist -
ist einfach gehalten und so programmiert wie ich damit klar komm.
Ist aber Noch ned ganz fertig :-/
Code:
int sensor_Rechts = A3; // Sharp IR Sensor an Pin A1
int sensor_Links = A4; // Sharp IR Sensor an Pin A2
int pwma = 3; // PWM Pin für MOTOR Rechts
int pwmb = 11; // PWM Pin für MOTOR Links
int motora = 12; // Direction Control für Motor Rechts
int motorb = 13; // Direction Control für Motor Links
int sensorRechts;
int sensorLinks;
void setup()
{
pinMode(sensor_Rechts,INPUT);
pinMode(sensor_Links,INPUT);
pinMode(pwma,OUTPUT);
pinMode(pwmb,OUTPUT);
pinMode(motora,OUTPUT);
pinMode(motorb,OUTPUT);
digitalWrite(pwma,HIGH); //This allows the motors to run at full speeds
digitalWrite(pwmb,HIGH); //This allows the motors to run at full speeds
}
void loop()
{
vorward();
sensorRechts = digitalRead(sensor_Rechts);
if(sensorRechts==HIGH) // Wenn Hindernis erkannt wird
{
right();
}
// ---------
sensorLinks = digitalRead(sensor_Links);
if(sensorLinks==HIGH) // Wenn Hindernis erkannt wird
{
right();
}
}
// pwmb motor rechts / pwma motor links
// motora LOW = Vorwärts / motora HIGH = Rückwärts
void vorward()
{
digitalWrite(motora, LOW);
digitalWrite(motorb, LOW);
analogWrite(pwma, 220);
analogWrite(pwmb, 220);
}
void backward()
{
digitalWrite(motora, HIGH);
digitalWrite(motorb, HIGH);
analogWrite(pwma, 220);
analogWrite(pwmb, 220);
}
void right()
{
digitalWrite(motora, LOW);
digitalWrite(motorb, LOW);
analogWrite(pwma, 160);
analogWrite(pwmb, 0);
}
void left()
{
digitalWrite(motora, LOW);
digitalWrite(motorb, LOW);
analogWrite(pwma, 0);
analogWrite(pwmb, 160);
}
Bekomm es noch ned ganz hin das wenn der Sharp - LOW- sendet also - ein Hindernis erkennt, das er dann zuerst
3 Sekunden lang Rückwärts fährt und dann Rechts fährt und anschließend wieder Vorwärts fährt.
Hab mich jetzt mal entschlossen, mein großen Roboter auf entweder 4 Ultraschall Sensoren oder 4 Infrarotsensoren auszustatten
und einfach wenn er ein Hindernis erkennt, zurücksetzt, sich nach rechts dreht ( also bisschen mehr wie 90 Grad muss ich noch
schauen dann wie viel Sekunden das sind und dann im Sketch eintragen ) und dann wieder Vorwärts weiter fährt!
Lesezeichen