Jeb, da schließe ich Momentan meinen Akku dran an(mit 2 Krokoklemmen)...ist nen alter Bohrmaschinenakku, sie an sich kaputt und dann dachte ich mir benutz ich den doch weiter die sind aber schwer/groß--> und nen Platz für die habe ich auch noch nicht gefunden.
Gute Idee, die Motorplatine hochkant zustellen. Bin ich noch nicht selbst drauf gekommen. Werde ich gleich umsetzen
Ja vorne sollen noch US-Sensoren hin, sowie nach hinten(und noch so was mir einfällt, wie das LCD...), aber wenn ich den US-Sensor gerade vor die Wand halte kommen zig verschiedene Messungen raus. Habe ich mim Beispiel Sketch versucht das der mir die Entfernung aufm Seriell Monitor ausgibt. Aber die weichen so stark ab, das der Bot gar nicht erst losfahren wollte habe sogar längere Wartezeiten zwischen Messungen gesetzt hat nix gebracht....
das ist der Code:
Code:
int TriggerPin = 12; // Digital 12 -> hc-sr04 Trigger
int EchoPin = 10; // Digital 13 -> hc-sr04 Echo
// hc-sr04 Vcc -> 5V, GNG -> GND
void setup()
{
Serial.begin(9600);
}
void loop()
{
// establish variables for duration of the ping,
// and the distance result in inches and centimeters:
long duration, cm;
// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
pinMode(TriggerPin, OUTPUT);
digitalWrite(TriggerPin, LOW);
delayMicroseconds(2);
digitalWrite(TriggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(TriggerPin, LOW);
// The same pin is used to read the signal from the PING))): a HIGH
// pulse whose duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(EchoPin, INPUT);
duration = pulseIn(EchoPin, HIGH);
// convert the time into a distance
cm = microsecondsToCentimeters(duration);
if (cm <= 500)
{
Serial.print(cm);
Serial.println("cm");
delay(100);
}
else Serial.println("Ungueltige Messung ! Entfernung groesser als 5 Meter !!!");
delay(100);
}
long microsecondsToCentimeters(long microseconds)
{
// The speed of sound is 340 m/s or 29 microseconds per centimeter.
// The ping travels out and back, so to find the distance of the
// object we take half of the distance travelled.
return microseconds / 29 / 2;
}
den hatte ich dann so umgeändert, dass ich da eine If reingepackt habe, die den Motor auf 0 PWM setzen soll wenn das Hindernis 20 cm vor ihm ist, else dann mit PWM von30 fahren...der ist dann ruckelig gefahren, weil es so große Abweichungen gab...und irgendwann ganz stehen geblieben, dabei war die Wand noch nen Meter entfernt.
Morgen setze ich mich mal nochmal hin und versuche es nochmal
Heute ist zu schönes Wetter um vorm Schreibtisch/PC zuhängen und zu Programmieren aber hochkant werde ich die Platine heute noch stellen
Lesezeichen