Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller per Ultraschall aus Schlafmodus wecken


von Stefan K. (walterwhite308)


Lesenswert?

Liebes Forum,

ich komm einfach mal gleich zur Sache:

Und zwar möchte ich einen Mikrocontroller per Ultraschall (durch einen 
Interrupt) aus dem Schlafmodus wecken.
Dabei soll der Sender 10 cm vom Mikrocontroller und dem darauf 
befindenden Ultraschallempfänger entfernt sein.

Den Mikrocontroller, den ich verwende, ist der Adafruit Feather nRF52 
Bluefruit (Arduino), der integrierte Chip ist der nRF52832 von Nordic 
Semiconductor. Dieser soll im Power_Mode_Off verweilen, und erst durch 
einen externen Interrupt mit vorher definiertem Interrupt-Pin aufwachen. 
Das ganze soll durch einen Ultraschallimpuls aus rund 10 cm Entfernung 
geschehen, den der Sender empfängt und der dann den Interrupt-Pin 
"aktiviert" (über HIGH/LOW/RISING/FALLING).

So sieht der Code für den PowerOff Modus und den Interrupt in Arduino 
dann aus:
1
void setup() {
2
 pinMode(INTERRUPT_PIN, INPUT);
3
  
4
 attachInterrupt(digitalPinToInterrupt(INTERRUPT_PIN), intHandler, RISING);
5
 nRF5x_lowPower.enableWakeupByInterrupt(INTERRUPT_PIN, RISING);
6
}
7
8
void loop() {
9
 [...]
10
 nRF5x_lowPower.powerMode(POWER_MODE_OFF);
11
}

Zuerst möchte ich das ganze in der Luft testen, später soll es dann 
irgendwann unter Wasser betrachtet werden.

Aber für den Anfang reicht es zeigen zu können, dass der Mikrocontroller 
aus 10 cm Entfernung per Ultraschall (beliebiger Frequenz) aufgeweckt 
werden kann.

Kann da jemand vielleicht Ultraschallsender und -empfänger empfehlen?

Wenn ich beispielsweise diese US-Sender und -empfänger mit je zwei 
Anschlüssen habe:
https://www.conrad.de/de/p/murata-ma40s4s-ultraschall-sender-1-st-reichweite-max-5-m-frequenz-max-40-khz-x-h-9-9-mm-x-7-1-mm-506195.html
https://www.conrad.de/de/p/murata-ma40s4r-ultraschall-empfaenger-1-st-reichweite-max-5-m-frequenz-max-40-khz-x-h-9-9-mm-x-7-1-mm-506193.html

Wie müsste die Schaltung da aussehen, also wie muss ich die verbauen, 
damit ich eine Zustandsänderung des Interrupt-Pins registrieren kann?

Ich habe leider weder mit Mikrocontrollern generell noch mit 
Ultraschallsensoren wahnsinnig viel Erfahrung, ich habe bisher 
lediglichmit dem klassischen HC-SR04 Ultraschallmodul zur 
Abstandsmessung gearbeitet und ein paar Tutorials a la LED zum Blinken 
bringen mit Arduino gemacht
Deswegen wollte ich die Schwarmintelligenz hier um Hilfe bitten :)

Vielen lieben Danks schon mal für eure Hilfe!

LG





Links:

Microcontroller:
https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide/introduction

Low Power Modi des Chips:
https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.nrf52832.ps.v1.1%2Fpower.html&cp=2_1_0_17_1&anchor=unique_1707892264

von MaWin (Gast)


Lesenswert?

Stefan K. schrieb:
> Das ganze soll durch einen Ultraschallimpuls aus rund 10 cm Entfernung
> geschehen, den der Sender empfängt und der dann den Interrupt-Pin
> "aktiviert" (über HIGH/LOW/RISING/FALLING

Das wäre kein Problem, wenn denn dein ZS-Empfänger ein solches Signal 
zuverlässig bei Empfang des Impulses liefern kann und keine Fehlalarme 
produziert.

Stefan K. schrieb:
> Kann da jemand vielleicht Ultraschallsender und -empfänger empfehlen

Genau darin liegt das Problem. Die üblichen 'Shields' und 
Parkremplersensoren taugen dafür nicht. Eventuell hilft ein NE567, den 
man die 40kHz erkennen lässt. Unter Wasser funktioniert der MA40R aber 
nicht.

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.