WalterWhite308
22.01.2020, 00:16
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 (https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide/introduction) (Arduino), der integrierte Chip ist der nRF52832 (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 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:
void setup() {
pinMode(INTERRUPT_PIN, INPUT);
attachInterrupt(digitalPinToInterrupt(INTERRUPT_PI N), intHandler, RISING);
nRF5x_lowPower.enableWakeupByInterrupt(INTERRUPT_P IN, RISING);
}
void loop() {
[...]
nRF5x_lowPower.powerMode(POWER_MODE_OFF);
}
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:
...
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 Walt
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 (https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide/introduction) (Arduino), der integrierte Chip ist der nRF52832 (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 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:
void setup() {
pinMode(INTERRUPT_PIN, INPUT);
attachInterrupt(digitalPinToInterrupt(INTERRUPT_PI N), intHandler, RISING);
nRF5x_lowPower.enableWakeupByInterrupt(INTERRUPT_P IN, RISING);
}
void loop() {
[...]
nRF5x_lowPower.powerMode(POWER_MODE_OFF);
}
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:
...
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 Walt