- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 7 von 7

Thema: HC-SR04 mit AtMega328

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied Avatar von avr_racer
    Registriert seit
    01.04.2014
    Ort
    MecklenburgVorpommern
    Beiträge
    174

    HC-SR04 mit AtMega328

    In diesem Artikel gehts mal um das Ultraschallmodul HC-SR04.
    Daten siehe Anlagenblatt
    hc-sr04_ultrasonic_module_user_guidejohn.pdf

    Informatives zum Schall:

    https://de.wikipedia.org/wiki/Schallgeschwindigkeit

    331,5m/s bei 0°C, bei zunehmender Temperatur wird der Schall um 0,6m/s pro °C schneller.
    Gleichung 1: 331,5m/s + 0,6 * 19°C = 342,9m/s bei 20°C


    Informatives zum Programm:

    Die Zeitbasis wird mit Timer 0 generiert im CTC-Modus 2 und mit OCR0B auf Pin D5 getoggelt. Hier ist ganz wichtig das OCR0A und OCR0B
    den gleichen Wert haben da OCR0A die Auflösung in diesem Mode bestimmt. OCR0B ist hier schon in der Hardware mit PD5 im AVR selbst gekoppelt so das hier
    der Timer 1 als einfacher Counter mit externer Taktung genutzt werden kann.
    Auflösung 1bit enstpricht 1µs.

    Der Triggerpin muss für mind. 10µs als Highpegel anliegen und wieder auf low gesetzt. Solange der Echopin low ist, wird in der Schleife gewartet bis der Burst vom Modul gesendet worden ist. Danach setzt das Modul sein Echopin auf HIGH und löst den ext. Interrupt 1, steigend Flanke, aus. Dadurch wird der Timer 0 freigegeben und beginnt den OCR0B=PD5=T1 zu toggeln so das mit jeder µs T1 incrementiert wird.
    Wird das Echo vom Modul empfangen geht der Echopin von High auf Low und die Schleife im Programm wird unterbrochen, beide Timer gestoppt.

    Hinweis: Timer1 ist begrenzt durch das OCR1A auf 30000µs als maximal Zeit (Hin/Rückweg). Wird dieser Wert erreicht werden beide Timer gestoppt und der Wert nimmt den selben Programmablauf als wenn ein Echo empfangen wurde.

    Da das Echo Hin und Rückweg zurücklegt, kann hier schon eine Teilung durch 2 (30000µs/2 = 15000µs) erfolgen um die Zeit in µs des einfachen Weges zu ermitteln.
    Danach erfolgt die erste Ausgabe, als Zeitwert, an den PC des einfachen Weges.

    Im nächsten Schritt kann mit der einfachen Gleichung, der Weg(s) = Geschwindigkeit(v) * Zeit(t) berechnet werden. Hab hier einen festen Wert genommen von 343m/s was ca. einer Temperatur um die 19°C entspricht.
    Hinweis: es wird ganzzahlig gerechnet indem Fall in dm/s und maximaler Zeitwert:
    Beispiel: 3430dm/s * 15001µs = 51453430µm = 5145,3430mm = 5,1453430m

    Nun wird der eigentliche Wert in mm als Ausgabe an den PC gesendet.
    Klicke auf die Grafik für eine größere Ansicht

Name:	Ausgabe PC.jpg
Hits:	10
Größe:	76,8 KB
ID:	33579

    Die Schallgeschwindigkeit kann zusätzlich mit einem Temperatursensor ergänzt und mit der obigen Gleichung 1 berechnet werden was dann den Festwert, T1_max , ersetzen könnte und so eine Kompensation ermöglicht.
    Kompensation noch nicht enthalten.

    Foglende Routinen
    .include "h:\etronik\Software3\sonstiges\origin\mathe.a sm"
    .include "h:\etronik\Software3\sonstiges\origin\hex_dez_wan dlung.asm"

    sind hier bereitgestellt
    https://www.roboternetz.de/community...328-Bibliothek
    https://www.roboternetz.de/community...a16-Bibliothek
    https://www.roboternetz.de/community...313-Bibliothek
    Angehängte Dateien Angehängte Dateien
    Geändert von avr_racer (22.08.2018 um 11:57 Uhr)

Ähnliche Themen

  1. Verkaufe Arduino Nano V3.0 mit Atmega328
    Von razer6 im Forum Kaufen, Verkaufen, Tauschen, Suchen
    Antworten: 0
    Letzter Beitrag: 08.05.2017, 16:25
  2. ATMega328 Massefläche des MLF-Gehäuses
    Von rapo im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 07.02.2016, 22:17
  3. Bascom Atmega328 Chip ID : FFFFF
    Von Projekt 2252 im Forum Bascom / C / ASM / Sketch / Codesammlung / Programmschnipsel
    Antworten: 1
    Letzter Beitrag: 30.07.2014, 19:26
  4. Syncfehler mit Arduino Nano ATmega328
    Von Sokapex im Forum Arduino -Plattform
    Antworten: 4
    Letzter Beitrag: 26.05.2013, 13:32
  5. SainSmart uno r3-atmega328
    Von Droggelbecher im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 18
    Letzter Beitrag: 04.01.2013, 12:57

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress