Buongiorno a tutti;
Ho un arduino nano (master) che tramite un modulo HC-12 e 4 pulsanti invia comandi ai dispositivi slave (sensori finestre) e funziona correttamente.
L'hardware dello slave è questo:
Modulo 4056 per la carica della batteria
ATTiny84 1MHz (ATTiny-Core)
Buzzer pilotato da un transistor bc547 e diodo di protezione
Contatto reed
Modulo HC-12 (FU2, B1200)
Connettore SPI per gli aggiornamenti
Con la versione base del codice tutto funziona e lo slave alimentato con una batteria 18650 3.7V 2200 mA ha un consumo energetico di 2.5 mA
voglio ridurre il consumo e aggiungo al codice il deep sleep e il consumo si riduce a 0.5 mA (fantastico) eseguo i test e noto che riceve e invia i dati tramite HC-12 correttamente, come fa a funzionare se è in deep sleep? e perché il resto del codice nel loop() non funziona più?.
Ho provato ad inserire un'interrupt che si attiva al cambio di stato del contatto reed ma purtroppo va in conflitto con la SoftwareSerial, ho provato neoSWSerial, AltSoftSerial ma per le mie limitate conoscenze non sono riuscito a farle funzionare.
prima di scrivere qui ho passato 2 giorni a dialogare con l'AI di Copilot e Gemini ma non c'è stato niente da fare quindi ho deciso di chiedere a voi.
il codice che allego è la versione con deep sleep ma senza interrupt, chiedo a voi un grande aiuto.
Amedeo Di Vito hc12_slave.ino (4.3 KB)