feed-image Odebírat tento obsah čtečkou
Nabídka
csenderusktr

Arduino (ATTINY 1634) servoventil

Seznam článků

Servoventil pro zalévací systém řízený procesorem ATTINY 1634 napájený z 5 AA baterií (celkem 6V). Zařízení je postavené z SMD součástek jako finální produkt za co nejméně peněz. Schéma zapojení obsahuje pouze nejnutněší součástky a procesor, který není zbytečně velký (rozměrově a programově). Deska obsahuje DIP spínač pro nastavení režimů. Programovací konektor ICSP 2x5 pinů, LED signalizující vybité baterie, konektor pro připojení serva MG996R, startovací tlačítko, konektor pro sériovou linku (možnost komunikace s procesorem). Program pro procesor je napsán v prostředí Arduino IDE.
Cena celého zařízení vychází bez serva na cca 225 Kč.

Smyslem zařízení je na bateriový provoz ovládat servomotorem zavlažování skleníku ze sudu (vlastně zavlažování čehokoliv...)

Veškerý zdroj ke konstrukci je dostupný na githubu: https://github.com/martinpihrt/Servoventil/



Po připojení napájení (5ks nabíjecí baterie AA 1,2V - celkem tedy 6-7V) čeká zařízení na stisk tlačítka. V tomto režimu neodebírá žádný proud z baterií (oba MOSFET tranzistory jsou udržovány uzavřené přes rezistory z kladného pólu). Časovač RTC ještě nebyl nastaven a má vloženu záložní baterii. Po stisknutí tlačítka na minimálně 1 sec se uzemní řídící vstup (gate) MOSFET tranzistoru, ten se otevře a přivede napájecí napětí 6V na stabilizátor 3,3V. Za stabilizátorem je připojen procesor ATTINY 1634, který provede toto:

  • sepne pomocný tranzistor, který podrží sepnutý (gate) u MOSFETu i po uvolnění tlačítka.
  • změří napětí baterie (na AD vstupu procesoru je napětí z baterií 0-6V sníženo rezistorovým děličem na rozsah 0-3,3V). Napětí baterie se pohybuje (naprázdno) plně nabitého článku 1,4 V až napětí vybitého článku 1,0 V. Napětí pod 5V lze považovat za vybitý stav. Na AD vstupu naměříme hodnotu napětí (po zmenšení děličem) 2,6V. Pokud je baterie vybitá bliká LED dioda. RTC běží pouze z baterie a když je čas alarmu tak RTC přes svůj vnitřní tranzistor (otevřený kolektor) uzemní MOSFET napájení, který sepne napájení pro stabilizátor a CPU.
  • přečte nastavené DIP spínače, sepne na určitý čas servo (napájení serva přes MOSFET a generuje signál pro odpovýdající směr a rychlost serva na určitou dobu).
  • nastaví čas (alarm) do RTC pro příští probuzení zařízení.

  • pozice 1 ON -
  • pozice 1 OFF -
  • pozice 2 ON -
  • pozice 2 OFF -
  • pozice 3 ON -
  • pozice 3 OFF -
  • pozice 4 ON -
  • pozice 4 OFF -

 


Deska byla vyrobena u https://www.allpcb.com/.

  • Pohled na desku TOP

  • Pohled na desku BOT

 

  • První čím začneme je osazení SMD součástek z horní strany (TOP) a následně spodní (BOTTOM) strany. Po osazení SMD součástek zapájíme z horní strany THT (drátové) součástky - DIP spínače, držák baterie, napájecí konektor, řadové lišty. Před připojením napájení (baterie, nebo ICSP konektor) je potřeba desku pečlivě zkontrolovat na případné zkraty, nebo otočení součástek. Značení SMD rezistorů je následující: příklad text na rezistoru 1014 znamená 101 + 4 nuly tedy 101 0000 Ohmů, nebo 202 znamená 20 + 2 nuly tedy 20 00 Ohmů (2k). Před připojením baterií (5ks AA) připojíme (pokud máme) napájecí zdroj s proudovou pojistkou, kterou nastavíme na 100 mA při 6V. Servo ani ICSP programátor není zatím k desce připojen. Obvod nemá v tuto chvíli ze zdroje odebírat žádný proud. Stiskneme a držíme tlačítko SW1 zmačknuté. Multimetrem (voltmetrem) změříme napětí na procesoru, RTC nebo stabilizátoru 3,3V. Napětí musí být cca 3,3V (při 6V na zdroji). Proud ze zdroje bude stále nepatrný (pár mA) - pouze se napájí procesor. Pokud se neobjevil problém (zkrat, velký podezřelý odběr proudu ze zdroje atd...) můžeme odpojit zdroj a zkusit připojit ICSP programátor. Nastavíme Arduino IDE na správný procesor a ICSP programátor. V tuto chvíli by již měl jít do procesoru nahrávat kód. Pokud připojíme na UART (sériovou linku) převodník, můžeme sledovat ladící výpisy co se aktuálně v procesoru odehrává. Protože je RTC obvod DS3231 jako samostatná součástka velmi drahý (okolo 200,-), tak ho odpájíme z China desky (ta se dá pořídit za 30,-).
  • Pohled na osazenou desku TOP

  • Pohled na osazenou desku BOT

  • Připojení ICSP programátoru a USB-UART převodníku

  • Deska RTC s DS3231 (před vypájením a po vypájení)


Spustíme nainstalované Arduino v našem počítači a otevřeme záložku "Soubor -> vlastnosti" a do správce dalších desek URL přidáme tento odkaz http://drazzy.com/package_drazzy.com_index.json ze stránek GitHub drazzy. Následně potvrdíme tlačítkem "OK". Otevřeme v Arduinu záložku "Nástroje -> Vývojová deska -> Manažér desek" v otevřeném seznamu si vybereme "ATTinyCore by Spencle Konde" a přidáme do Arduina tlačítkem "instalace". V nastavení Arduino IDE je po těchto krocích možné využívat i jiné procesory než které jsou ve výchozí instalaci Arduina.

 


Připojíme do konektoru ICSP desky servoventilu náš programátor (pokud ho nemáme zakoupený, můžeme si ho vyrobit dle tohoto návodu). Při připojení programátoru nepoužíváme napájení z baterií (baterie odpojíme)!


  • 1.0.0 výchozí verze programu
  • 0.0.0 výchozí verze programu - test všech periferií

  • 1.0 15.1.2019 výchozí verze desky

Creative Commons Attribution Share Alike 4.0 cc-by-sa-4.0

Na projektu se podílejí: HW Martin Pihrt - www.pihrt.com FW Martin Holcr - www.farmlab.cz


 18.2.2019

  • HW je otestován a plně funkční: pro test použit FW:0.0.0. Článek NiMh má 1,2 V. Napětí (naprázdno) plně nabitého článku je 1,4 V. Napětí vybitého článku je 1,0 V. Máme 5 článků -> napětí se bude pohybovat od 5V do 7V. Pod 5V je vybito LED blikne 2x krátce. Běží program - LED bliká rychle.

Výpis ze seriové linky (2 minuty probouzení)
FW:0.0.0,18.2.2019,11:13:33
RTC init...OK
DIP1-4 init...OK
DIP1=0 DIP2=1 DIP3=0 DIP4=1
Baterie=5.86V
Servo init...OK
RTC nastavuji interval...OK
Baterie=5.78V
Baterie=5.85V
Vypinam!

 Ukázka FW:0.0.0

Attachments:
Download this file (ATTINY1634-DTE.pdf)Katalogový list[ATTINY1634]598 kB6 Downloads2019-05-14 19:56
Download this file (DMP2100U-DTE.pdf)Katalogový list[DMP2100U-DTE]193 kB5 Downloads2019-05-14 19:57
Download this file (ds3231.zip)Knihovna pro Arduino[DS3231]11 kB4 Downloads2019-05-14 19:58
Download this file (DS3231SN.pdf)Katalogový list[DS3231SN]292 kB6 Downloads2019-05-14 19:56
Download this file (Eagle 1.0.zip)Data pro výrobu[Eagle HW1.0]918 kB4 Downloads2019-05-14 19:55
Download this file (FDV303N.pdf)Katalogový list[FDV303N]65 kB7 Downloads2019-05-14 19:57
Download this file (MG996R_Tower-Pro.pdf)Katalogový list[MG996R]91 kB4 Downloads2019-05-14 19:56
Download this file (pinout attiny1634.jpg)Pinout[attiny1634]1219 kB4 Downloads2019-05-14 19:58
Download this file (servoventil_0.0.0.zip)Program pro procesor (arduino, hex)[test verze FW:0.0.0]19 kB4 Downloads2019-05-14 20:00
Download this file (SoftwareServo.zip)Knihovna pro Arduino[SoftwareServo]6 kB4 Downloads2019-05-14 19:58
Download this file (TAJ tantal.pdf)Katalogový list[TAJ tantal]87 kB6 Downloads2019-05-14 19:56

Nemáte oprávnění pro vkládání komentářů.