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.

Obrazek 1

Druhý prototyp vypadá lépe, už obsahuje všechny součástky.

Obrazek 2

Č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.

Obrazek 3

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í:

Obrazek 4

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.

Obrazek 5

Obrazek 6

Srovnání od prvního prototypu až po hotový výrobek.

Obrazek 7

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://arduino-shop.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html

http://arduino-shop.cz/arduino/1032-led-dioda-zelena-5mm-1434544279.html

http://arduino-shop.cz/arduino/919-arduino-tlacitko-1421009050.html

http://arduino-shop.cz/arduino/843-arduino-vyvojova-deska.html

FB gp tw

Další podobné články