Abstand messen mit millis

Hallo,

ich bin dabei, mir mit meinem Arduino Uno einen Roboter zu bauen. Dafür habe ich auch schon zwei Ultraschallsensoren gekauft. Ein einfaches Programm aus dem Internet hat bestätigt, dass die Sensoren funktionieren. Das Problem ist nur, dass das Programm mit delays läuft und ich das mit den millis nicht hinbekomme, weil ich ja nicht nur messen will, sondern auch fahren möchte. Da bekomme ich dann immer 0cm angezeigt. Könnt ihr mir vielleicht helfen?
Das Programm mit dem millis ist im Anhang.

Danke schon mal für eure Hilfe.

Hier ist das einfache Programm mit den delays:

int trigger=6;
int echo=7;
long dauer=0;
long Entfernung=0;

pinMode (trigger, OUTPUT);
pinMode (echo, INPUT);

digitalWrite (trigger, LOW);
delay(5);
digitalWrite (trigger, HIGH);
delay(10);
digitalWrite (trigger, LOW);
dauer = pulseIn (echo, HIGH);
entfernung = (dauer/2) / 29.1;

ArToD:
Hallo,

ich bin dabei, mir mit meinem Arduino Uno einen Roboter zu bauen. Dafür habe ich auch schon zwei Ultraschallsensoren gekauft. Ein einfaches Programm aus dem Internet hat bestätigt, dass die Sensoren funktionieren. Das Problem ist nur, dass das Programm mit delays läuft und ich das mit den millis nicht hinbekomme, weil ich ja nicht nur messen will, sondern auch fahren möchte. Da bekomme ich dann immer 0cm angezeigt. Könnt ihr mir vielleicht helfen?
Das Programm mit dem millis ist im Anhang.

Hier ist das einfache Programm mit den delays:

int trigger=6;
int echo=7;
long dauer=0;
long Entfernung=0;

pinMode (trigger, OUTPUT);
pinMode (echo, INPUT);

digitalWrite (trigger, LOW);
delay(5);
digitalWrite (trigger, HIGH);
delay(10);
digitalWrite (trigger, LOW);
dauer = pulseIn (echo, HIGH);
entfernung = (dauer/2) / 29.1;

Dieser Code-Schnipsel ist überhaupt KEIN vollständiges Arduino-Programm, schon gar kein funktionierendes!

Ein Arduino-Programm (Sketch) muss immer eine setup-Funktion und eine loop-Funktion enthalten.

Und "im Anhang" hast Du eine downloadbare Bilddatei statt eines Programms gepostet.
Keine Ahnung, was das downloadbare Bild "mit millis" zu tun haben soll, ich habe mir das Bild nicht heruntergeladen. Ich gehe ins Arduino-Forum um über Arduino-Themen zu lesen, aber nicht, um mir Bilder zu downloaden.

Hallo ArToD,

ich habe vor einigen Wochen ein Video zum Thema Abstandsmessung mit Ultraschall gemacht (Video auf Youtube). Vielleicht hilft es dir weiter.

Ich möchte das ebenfalls in einen Roboter einbauen, bin aber noch nicht dazu gekommen. Vermutlich wird das erst nächsten Monat der Fall sein.

Gruss
René

@jurs: Bist du das tatsächlich oder ist dein Account gekapert?

@ElEspanol: Nö wieso, klingt doch glaubwürdig. Manchmal kommt jurs so rüber :wink:

Hat noch nicht mal über fehlende Code Tags gemeckert.


Aber der Puls im millisekunden-Bereich ist wohl Unsinn. Sollte wohl eher um einen 10µs Puls gehen. Das pulseIn liefert ja auch echo-Zeiten in µs Auflösung. ( ca 57 µs / 2cm hinundzurück)

Normalerweise kann sich ein Roboter schon solange auf die Ultraschall-Messung konzentrieren, ohne mit der Motor-Steuerung durcheinander zu kommen. Wenn nicht, helfen aber keine millis(), sondern man muss einen Hardware-Zähler dafür verwenden. ( Am besten mal die newPing Library durcharbeiten )