mehrere HC-SR04 Ultraschallsensoren an einem INT

Gast #3786414
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ß
#3786426
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
(Firma: Vescomp) #3786458
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...
#3786459
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
Gast #3786524
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.
Gast #3787034
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
(Firma: Vescomp) #3787129
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 ?).
(Firma: Vescomp) #3787241
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren