1) problém je s tím tvým snímačem - hledal jsem dost dlouho, ale pravděpodobně žere (trvale) něco mezi 600mA a 1A - je požadovám 1A zdroj
Řešení -
1) měřit jednou za nějakou dobu - třeba 1x za 5min po dobu par sekund
2) napájet tu destičku jen při měření - pomocí tranzistoru jako to dělá astromik děkuji - zde spíná servo - předělat to na spínání té destičky - prostě vzít jen ten nápad s mosfetem (ale použil bych 1N6660 třeba)
3) arduino uspávat jen pokud použiješ nějaké menší než UNO a odpářeš z něj LED která svítí když arduino běží atd. - hledat Lowpower arduino
Taky máš kod (vyzkoušeno na UNO, PRO (5V verze), NANO (5V verze).
ZDE je knihovna LOWPOWER
Co to dělá:
smyčka FOR .... - každou smyčku to 8s spí (více nelze), pokud dáš i<10 bude to spát 80s
pak se to probudí, nahodí OUT 9 (můžeš jakýkoliv) na log.1 - tady se připojí ten MOSFET a tím se zapne napájení pro destičku
pak se 1s čeká až se destička vzpamatuje
pak proběhne tvoje měření
pak se destička odpojí od napájení
je nutno dodělat 2 podmínky
- že když není pošta, bude se arduino i destička uspávat a nebude signalizace přítomnosti pošty
- když to zjistí poštu - tak ve druhé smyčce se NEBUDE uspávat arduino, bude se signalizovat řítomnost pošty, ale OPĚT se bude vypínat napájení destičky na danou dobu a jen jednou za čas se zapne a změří jestli pošta nezmizela
Ta destička je totiž s těmi 4mi snímači největší žrout energie
Jinak bych nechal vše jak máš a nic po HW stránce nepředělával (solar atd.)
Kód: Vybrat vše
#include "LowPower.h"
void setup()
{
pinMode(9, OUTPUT);
}
void loop()
{
// sleep for 3 x XX seconds (dopln i<XX - násobky 8s spánky)
for(int i=0; i<1; i++) {
// ATmega328P, ATmega168
LowPower.idle(SLEEP_8S, ADC_OFF, TIMER2_OFF, TIMER1_OFF, TIMER0_OFF, SPI_OFF, USART0_OFF, TWI_OFF);
}
digitalWrite(9, HIGH); //sepneme napájení pro IR snímač
delay(1000); // počkáme až se zotaví - možno odladit na menší hodnotu
// ZDE umísti měření zda je pošta
digitalWrite(9, LOW); // vypneme napájení pro IR snímač - program skočí na začátek LOOP
}