Potřeboval jsem ovládat osvětlení kolem rodinného domu z min. čtyř míst. Standardně by to šlo udělat pomocí křížových spínačů, ale po zvážení ceny spínačů a několika desítek metrů min. tří žilového kabelu CYKY jsem se rozhodl vymyslet vlastní řešení pomocí čipu Attiny13. Můj první prototyp vypadal asi takto (obr. níže), udělal jsem chybu v pájení a proto jsou LED dioda a rezistor skrouceny.
Druhý prototyp vypadá lépe, už obsahuje všechny součástky.
Čip Attiny13 jsem si vybral kvůli malé ceně(cca 30 Kč) a malému odběru proudu(mA). Celkový odběr při sepnutém relé je cca 54 mA a při vypnutém relé je odběr cca 4mA. K napájení jsem použil nepoužívanou 5V nabíječku na mobil. Čip Attiny13 jsem naprogramoval přes Arduino UNO přes SPI (piny 13,12,11 a 10). Pro programování jsem si vyrobil malý Arduino shield.
Programování Attiny13:
1 – Stáhněte si soubor s čipem ATtiny13 a dejte ho do složky hardware
(odkaz na stránku s návodem: http://elabz.com/arduino-shrunk-how-to-use-attiny13-with-arduino-ide/, soubory ATtiny13 ATtiny13_files )
2 – Nahrajte do Arduino program ArduinoISP
3 – Nahrajte do čipu program (nezapomeňte ve složce Nástroje změnit desku na čip Attiny 13 a nastavte programátor z AVR ISP na Arduino as ISP)
Zapojení je možné i na Arduinu (např. PRO MINI), ale z důvodu nízké spotřeby jsem raději zvolil Attiny13.
//vytvoření variabilní hodnoty
int led=LOW;
//základní nastavení programu
void setup()
{
//nastavení pinu 3 jako vstup
pinMode(3, INPUT);
//nastavení pinu 4 jako výstup
pinMode(4, OUTPUT);
}
//opakovaní programu
void loop()
{
//funkce "když"
//když je pin 3 zapnutý a hodnota led je "LOW" nebo 0 tak:
if(digitalRead(3)==HIGH && led==LOW)
{
//zapne pin 4
digitalWrite(4, HIGH);
//zmení hodnotu led z "LOW" na "HIGH"
led=HIGH;
while(digitalRead(3)==HIGH)
{
delay(10);
}
}
//funkce "když"
//když je pin 3 zapnutý a hodnota led je "HIGH" nebo 1 tak:
if(digitalRead(3)==HIGH && led==HIGH)
{
//vypne pin 4
digitalWrite(4, LOW);
//zmení hodnotu led z "HIGH" na "LOW"
led=LOW;
while(digitalRead(3)==HIGH)
{
delay(10);
}
}
}
Schéma zapojení:
Celé jsem to nainstaloval do krabičky na DIN lištu. Takhle vypadá hotové zařízení, přidal jsem ještě tlačítko pro ovládání přímo z krabičky.
Srovnání od prvního prototypu až po hotový výrobek.
Zařízení mám v provozu asi tak měsíc. Zatím mám připojeny 3 tlačítka (paralelně), ale plánuji dodělat další dvě. Spolehlivě by mělo fungovat i na delší vzdálenost, úbytek je např. 1,2V na 500m dvojlinkou 0.15 mm2, takže by to mělo fungovat. Testoval jsem 3,3V přes tlačítko a pak do čipu a fungovalo to, takže úbytek na kabelech při 5V napájení může být až 1,7V. Úbytek max. 1,7V aby se alespoň 3,3V vrátilo do čipu. Záleží na průřezu kabelu a jeho délce.
Seznam použitých komponent:
http://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html
http://dratek.cz/arduino/1032-led-dioda-zelena-5mm-1434544279.html
http://dratek.cz/arduino/919-arduino-tlacitko-1421009050.html
http://dratek.cz/arduino/843-arduino-vyvojova-deska.html