mám Arduino nano, ke kterému je připojený 433 MHz vysílač (podle https://navody.arduino-shop.cz/navody-k ... silac.html) a tlačítko mezi D2 a zemí, které vyvolává přerušení při náběžné hraně.
Program je lehkou modifikací toho v návodu, pouze s tím rozdílem, že stisk tlačítka probudí Arduino ze spánku, odešle čas a pak zase usne. V průběhu odesílání svítí dioda na pinu 13.
Kód: Vybrat vše
#include <RCSwitch.h>
#include "avr/sleep.h"
// vytvoření objektu vysílače z knihovny
RCSwitch vysilac = RCSwitch();
volatile unsigned long interruptTime = 0;
unsigned long cas0=0;
//#define ledPin 4
#define interruptPin 2
#define pwrPin 3
#define buildInLed 13
// the setup function runs once when you press reset or power the board
void setup() {
Serial.begin(9600);
pinMode(interruptPin, INPUT_PULLUP);
// zahájení vysílání na pinu D10
vysilac.enableTransmit(10);
// možnost změnit protokol na č.2
// vysilac.setProtocol(2);
// volba počtu opakování zaslání zprávy
// vysilac.setRepeatTransmit(5);
pinMode(pwrPin, OUTPUT);
pinMode(buildInLed, OUTPUT);
Serial.println(F("Start"));
}
void vysilej() {
digitalWrite(buildInLed, HIGH);
digitalWrite(pwrPin, HIGH);
vysilac.enableTransmit(10);
unsigned long cas = millis() / 1000;
// poslání aktuálního času s délkou 32 bitů
Serial.print(millis());
Serial.println(F(": Posilam"));
vysilac.send(cas, 32);
delay(500);
digitalWrite(pwrPin, LOW);
digitalWrite(buildInLed, LOW);
}
void goToSleep() {
Serial.println(F("Jdu spat"));
Serial.flush();
sleep_enable();
attachInterrupt(digitalPinToInterrupt(interruptPin), zmena, RISING);
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_cpu();
Serial.println(F("Vstavam"));
Serial.flush();
}
void loop() {
goToSleep();
vysilej();
}
void zmena() {
}
Testuji to tak, že vytáhnu USB konektor, zapojím baterii do adaptéru nebo naopak baterii odpojím a zasunu konektor případně připojím přes krokodýly ten zdroj. Žádné dodatečné přepojování, takže by ostatní zapojení mělo zůstat stejné.
Nemáte typ, co bych měl ještě vyzkoušet? Je možné, že ta baterie dodává nedostatečný proud (ale špičkových 0,02A není nic moc)?
Díky
Pb
Ještě dodatek. Všimnul jsem si, že při zapojení přes zdroj trvale svítí dioda napájení, při stisku tlačítka krátkodobě blikne Receiving Data Indikator LED a pak se správně rozsvítí ta interní. Ovšem při napájení z baterky svítí napájení, blikne ta "příjmová dioda" a pak už nic.