Also hier man Quellcode:
Die nötigen Konstanten:
Code:
// Konstanten
#define TRIGGER_IMPULS PORTB.3
#define ECHO_PIN PIND.6
Diese Funktio ist zunächst mal für den Triggerimpuls:
Code:
// Funktion um Triggerimpuls zu erzeugen
void trigger(){
unsigned int i;
TRIGGER_IMPULS = 1;
for(i = 0;i<1000;i++);
TRIGGER_IMPULS = 0;
}
Diese Funktion dient dann zum eigentlich Messen des Abstandes:
Code:
// Funktion zum messen der Distanz zwischen Roboter und Gegenstand
unsigned int distanzmessen(){
unsigned int entfernung;
entfernung = 0;
trigger();
while(ECHO_PIN == 0);
while(ECHO_PIN == 1){
entfernung++;
}
return entfernung;
}
Und zum Schluss noch eine Funktion mit dem man dass ganze Auswertet und dementsprechende Dinge ausführt wie anhalten und fahren:
Code:
// Funktion zum anhalten wenn ein Gegenstand im Weg ist
void vorgegenstandhalten(){
unsigned int l, entfernung2;
entfernung2 = distanzmessen();
for(l = 0;l<0xffff;l++);
if(entfernung2 <= 2000){
Motorstop();
}else if(entfernung2 > 2000){
Motorvor();
}
}
Vielleicht hilf es ja noch jemandem weiter
Danke nochmal an euch alle!!!!!
Lesezeichen