Un sistema rapido per mettere in sleep mode una MKR1010 e risvegliarla tramite un interrupt sul pin 8 (che puo' essere simulato connettendo il pin 8 al GND)
-----------------------------------------------------------------
#include "ArduinoLowPower.h"
// Pin per wakeup
const int pin = 8;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(pin, INPUT_PULLUP);
LowPower.attachInterruptWakeup(pin, funzione, CHANGE);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
delay(500);
LowPower.sleep();
}
void funzione {
// qui il codice da eseguire durante l'interrupt
}
Visualizzazione post con etichetta MKR1010. Mostra tutti i post
Visualizzazione post con etichetta MKR1010. Mostra tutti i post
mercoledì 20 marzo 2019
martedì 19 marzo 2019
Arduino MKR1010 ed allarme ricorsivo con RTCZero e risparmio energetico
Aggiornamento: questo post e' molto simile al precedente
Lo scopo di questo script e' generare ogni 10 secondi un allarme che risvegli dall standby la MKR1010 per effettuare una operazione e poi la riaddormenti in staandy
Una volta in Sleep Mode in consumo e' inferiore a 10 mA ovvero e' sotto la soglia di misura del mio strumento
Con questa configurazione il consumo e' di circa 14 mA
Attenzione : quando viene lanciato il programma il processore va in standby e viene disabilitata la porta USB. Per effettuare un nuovo upload si deve premere il tasto di reset per due volte in modo veloce
--------------------------------------------------------------------------
#include <RTCZero.h>
/* Create an rtc object */
RTCZero rtc;
/* Change these values to set the current initial time */
const byte seconds = 0;
const byte minutes = 00;
const byte hours = 17;
/* Change these values to set the current initial date */
const byte day = 17;
const byte month = 11;
const byte year = 15;
void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
rtc.begin();
rtc.setTime(hours, minutes, seconds);
rtc.setDate(day, month, year);
rtc.setAlarmTime(17, 00, 10);
// Abilita l'allarme quando i secondi sono uguali alla soglia
rtc.enableAlarm(rtc.MATCH_SS);
rtc.attachInterrupt(alarmMatch);
rtc.standbyMode();
}
void loop()
{
rtc.standbyMode(); // Sleep until next alarm match
}
void alarmMatch()
{
// INVERTE LO STATO DEL LED
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
// Setta il nuovo allarme 10 secondi nel futuro
rtc.setAlarmSeconds((rtc.getSeconds() + 10) % 60);
}
Lo scopo di questo script e' generare ogni 10 secondi un allarme che risvegli dall standby la MKR1010 per effettuare una operazione e poi la riaddormenti in staandy
Una volta in Sleep Mode in consumo e' inferiore a 10 mA ovvero e' sotto la soglia di misura del mio strumento
Con questa configurazione il consumo e' di circa 14 mA
Attenzione : quando viene lanciato il programma il processore va in standby e viene disabilitata la porta USB. Per effettuare un nuovo upload si deve premere il tasto di reset per due volte in modo veloce
--------------------------------------------------------------------------
#include <RTCZero.h>
/* Create an rtc object */
RTCZero rtc;
/* Change these values to set the current initial time */
const byte seconds = 0;
const byte minutes = 00;
const byte hours = 17;
/* Change these values to set the current initial date */
const byte day = 17;
const byte month = 11;
const byte year = 15;
void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
rtc.begin();
rtc.setTime(hours, minutes, seconds);
rtc.setDate(day, month, year);
rtc.setAlarmTime(17, 00, 10);
// Abilita l'allarme quando i secondi sono uguali alla soglia
rtc.enableAlarm(rtc.MATCH_SS);
rtc.attachInterrupt(alarmMatch);
rtc.standbyMode();
}
void loop()
{
rtc.standbyMode(); // Sleep until next alarm match
}
void alarmMatch()
{
// INVERTE LO STATO DEL LED
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
// Setta il nuovo allarme 10 secondi nel futuro
rtc.setAlarmSeconds((rtc.getSeconds() + 10) % 60);
}
Iscriviti a:
Post (Atom)
Debugger integrato ESP32S3
Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede nell'ID USB della porta Jtag. Nel modulo...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...