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