Hallo zusammen, ich bin gerade dabei einen Distanzsensor auf Ultraschallbasis zu bauen und stehe vor einen Problem. Ich würde gerne mit dem timer0 vom (ATmega-16) 10 Takte lang 40kHz senden um dann danach das Echo auswerten zu können. Leider habe ich keine Ahnung wie ich das machen könnte. Die 40kHz habe ich bereits TCCR0 = (0<<FOC0) | (0<<WGM00) | (0<<COM01) | (1<<COM00) | (1<<WGM01) | (0<<CS02) | (0<<CS01) | (1<<CS00); // CTC Modus TCNT0 = 0 wenn Compare Match | OCR0 = 100 (COM00)Compar Match| Prescale 0 OCR0 = 100; Hoffe das mir wer weiterhelfen kann. MFG Soda
Ich kenne bisher nur fertige Sender auf Ultraschallbasis und die erzeugen sich das US-Signal selbst ähnlich einem Piezo mit integrierter Elektronik zur normalen Tonerzeugung. Vom µC aus werden die lediglich AN/AUS geschaltet, so dass sie das US-Signal aussenden oder nicht. Fortschrittlichere Sensormodule zur US-Distanzmessung werden sogar nur AN geschaltet, senden ihren US-Puls, warten aufs Echo und liefern dann das Laufzeitergebnis an den µC. Auf dem Modul ist dann ein Sender und ein Empfänger vorhanden. In deinem Projekt baust du den US-Sensor komplett selbst? Sender und Empfänger? Und du musst beim Sender auch noch den Träger für die US-Erzeugung per µC machen? Wenn ja würde ich die 40 kHz dauerhaft vom Timer erzeugen lassen (Timer im CTC Modus oder als PWM) und den Ausgabepin von einer zweiten Zeitschleife AN/AUS schalten lassen. Also quasi die Modulation eines 40 kHZ Trägers mit einem Rechtecksignal mittels einer VerUNDung per Software. Wird manchmal bei IR-Dioden an µC als IR-FB-Sender genauso gemacht.
Ja genau der Sensor wird von mir selbst gebaut (ist ein kleines Projekt von mir um mich in die Materie einzuarbeiten). Das Programm läuft jetzt danke für die Hilfe. Ich starte den timer kurz vorm auslesen und beende den Timer am Ende des Programms. Die Distanz wird dann mittels der Zeit ausgerechnet die das Echo beötigt um vom reflektierenden Gegenstand zurück zu kommen * Weg den der Schall in einer ms zurrück legt. Gruß Soda
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.