Forum: Mikrocontroller und Digitale Elektronik mehrere HC-SR04 Ultraschallsensoren an einem INT


von deumel (Gast)


Lesenswert?

#Hello World,

der Sonar Sensor benötigt neben VCC und GND ein Startimpuls(10us High)
am TriggerPin. dafür kann sogut wie jeder PortPin  z.B. eines Atmegas 
benutzt werden. Danach startet die Messung und der Sensor legt für ein 
paar ms den EchoPin auf High,-die länge des High Signals ergibt den 
Abstandswert.

Jetz möcht ich gerne mehrere dieser HC-SR04 Sensoren nutzen aber das 
echo muss auf einen (INT) eingang und ich habe nur noch 2 (INT) frei.

Ist es vlt. möglich die Echoausgänge mehrerer HC-SR04 zusammen an einem 
INT anzulegen? - mit Dioden irgendwie?

Danke und Gruß

von Karol B. (johnpatcher)


Lesenswert?

deumel schrieb:
> aber das
> echo muss auf einen (INT) eingang und ich habe nur noch 2 (INT) frei.

Von welchem Controller sprechen wir hier? Bei den AVRs gibt es 
eigentlich für jeden Pin einen "Pin change interrupt". Der ist zwar 
nicht ganz so bequem auszuwerten wie ein "echter" Hardware-Interrupt, 
sollte aber für ein solches vorhaben auch noch ausreichen. PICs bieten 
eine ähnliche Funktionalität, wobei es dort etwas anders genannt wird.

Ansonsten gäbe es noch die Möglichkeit den Sensoren jeweils einen 
kleinen ATtiny zu spendieren und alles per SPI / I2C zu verbinden.

Ich sehe keine Möglichkeit, dass sich mehrere Module eine 
Interruptleitung teilen, zumindest nicht ohne externe Beschaltung und 
zusätzlichen Pins für einen Multiplexer oder ähnliches.

Mit freundlichen Grüßen,
Karol Babioch

von deumel (Gast)


Lesenswert?

ein atmega128 auf 5V.

mist, paar dioden wärn ja auch viel zu einfach gewesen -.-

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

deumel schrieb:
> der Sonar Sensor benötigt neben VCC und GND ein Startimpuls(10us High)
> am TriggerPin. dafür kann sogut wie jeder PortPin  z.B. eines Atmegas
> benutzt werden. Danach startet die Messung und der Sensor legt für ein
> paar ms den EchoPin auf High,-die länge des High Signals ergibt den
> Abstandswert.

 Wenn du den Sensor starten musst, warum dann überhaupt den EchoPin auf
 Interrupt legen ?
 Eben sehe ich, es ist Mega128. Also, wenn dir da Pins ausgegangen
 sind...

von Karol B. (johnpatcher)


Lesenswert?

deumel schrieb:
> ein atmega128 auf 5V.

Der bietet die sog. Pin Change Interrupts leider noch nicht. Insofern 
bleibt hier nur die Option den einzelnen Sensoren eigene Mikrocontroller 
zu spendieren.

Alternativ könnte man über Polling nachdenken. Wie genau können die 
Module denn (zeitlich) auflösen? Du könntest ja in einer Timer ISR in 
dieser Größenordnung (bzw. 2x wegen Nyquist-Shannon) die Pins abfragen.

Mit freundlichen Grüßen,
Karol Babioch

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

deumel schrieb:
> Jetz möcht ich gerne mehrere dieser HC-SR04 Sensoren nutzen aber das
> echo muss auf einen (INT) eingang und ich habe nur noch 2 (INT) frei.

 Nicht unbedingt. Mit ANA_COMP kriegst du noch einen zusätzlichen
 INT-Eingang. Und wenn du es mit Timer1 verbindest, macht der das
 sogar ganz alleine...

: Bearbeitet durch User
von deumel (Gast)


Lesenswert?

also ich möchte nur sehr langsame bewegungen einer großen fläche messen 
deshalb soviele sensoren. da wär polling schon ok.

ich dachte mir so in meinem leichtsinn bei 5V abzüglich 0,7V an der 
diode kommen doch immernoch 4,3V am Atmega an. echt schade das es so 
nicht geht.
1
/*
2
A1 ---> trigger sensor1
3
A2 ---> trigger sensor2
4
A3 ---> trigger sensor3
5
6
                   D1
7
              +---|<|--- echo sensor1
8
              |    D2
9
PE5(INT5)<----+---|<|--- echo sensor2
10
              |    D3
11
              +---|<|--- echo sensor3
12
*/

auch wenn ich mir andere antworten erhofft hatte, vielen dank bis hier.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

deumel schrieb:
 > diode kommen doch immernoch 4,3V am Atmega an. echt schade das es so
 > nicht geht.

 Warum sollte das nicht gehen ?
 Pull-Down Widerstand nach der Diode und ab gehts. Beim MEGA auf
 fallende Flanke triggern.
 Aber mit Analog Comparator hast du doch 3 INT-Leitungen.

von deumel (Gast)


Lesenswert?

Pull-Up Widerstände- echt jetz? muss ich die Echo-Ausgänge der HC-SR04 
überhaupt gegeneinander schützen?

Habe so eine Schaltung bisher noch nie gesehen daher frag ich lieber 
nochmal nach :)

gruß deumel

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

deumel schrieb:
> Pull-Up Widerstände- echt jetz?

 Pull-Down, nicht Pull-Up, also Widerstände gehen nach Masse, nicht nach
 Plus. Pull-Up hast du ja beim AVR schon - nur nicht einschalten. Da du
 nicht weisst, was das für Ausgänge sind, ist Pull-Down sicherer.

> muss ich die Echo-Ausgänge der HC-SR04 überhaupt gegeneinander schützen?

 Ich glaube ja. Auf jeden Fall ist es besser.

> Habe so eine Schaltung bisher noch nie gesehen daher frag ich lieber
> nochmal nach :)

 Bei Matrix-Tastaturen hat man es so ähnlich gemacht (macht es immer
 noch ?).

: Bearbeitet durch User
von deumel (Gast)


Lesenswert?

klar, pull down meinte ich lol

werds mal ausprobieren, wäre toll wenns klappt.

dank dir

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

deumel schrieb:
> werds mal ausprobieren, wäre toll wenns klappt.

 Nur so als Anregung:
 INT beim MEGA auf aufsteigende Flanke setzen, Trigger aussenden,
 INT abwarten. In der ISR Zähler starten, INT auf fallende Flanke
 umdrehen und raus. Beim nächsten eintritt Zähler stoppen.
 So brauchst du nicht zu pollen und auch deswegen ist Pull-Down besser.

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
Noch kein Account? Hier anmelden.