Niskoprądowe PLC Industruino
Od pewnego czasu, z bardzo dobrymi rezultatami, stosujemy w swoich projektach układy oparte na procesorach firmy Atmel. Procesory te zamknięte są w zgrabnej obudowie na szynę DIN oraz spełniające napięciowe standardy przemysłowe 24VDC lub też standardy napięciowe 5V. Produkty o których mowa to sterowniki oparte na bazie systemu Arduino, które noszą nazwę Industruino.
Ostatnio część naszych projektów wymaga stosowania zasilania bateryjnego, co w przypadku standardowych sterowników PLC nie jest takie łatwe. Po pierwsze Poziom zasilania 24VDC lub 12VDC (tutaj już łatwiej) a po drugie pobór prądu jest dosyć duży. Nie posiadamy dużej kontroli nad samym procesorem oraz elementami które są wokół niego zamontowane.
Znowu z pomocą przychodzi nam Industruino. Może kilka słów na temat samego projektu. Bez zbędnych szczegółów układ o określonych godzinach i po odliczeniu odpowiednich impulsów powinien zamykać lub otwierać napędzaną silnikiem servo zapadkę. Ok czyli nie powinno być to trudne, ale mamy tutaj dwie trudności. Pierwsza to silnik servo cały czas pobiera trochę mocy przez co rozładowuje nam baterię. Po drugie zegar RTC, który w standardzie Industruino występuje jedynie w przypadku płytek ARM.
Standardowy model Industruino odpada, gdyż ma sporo elementów elektroniki dostosowujących poziomy napięć do tematów przemysłowych musimy więc zastosować model PROTO czyli model przeznaczony do nietypowych rozwiązań. Pierwsze pomiary wykazują dosyć spore zużycie prądu w trybie jałowym bo około 40mA. Co możemy zrobić? Po pierwsze w projekcie nie będzie używany wyświetlacz LCD a wszystkie nastawy będą wykonywane przez port USB. Zdejmujemy więc wyświetlacz LCD. Teraz pomiary zużycia są już dużo fajniejsze 35mA. To nam jednak nie do końca wystarcza musimy więc pokusić się o spowolnienie pracy samego procesora z 16MHz (standard dla Arduino Leonardo) na 2MHz. Tym samym zyskaliśmy dużo niższe zużycie prądu na poziomie 16mA. Procesy nie są szybkie więc spokojnie 2MHz nam wystarczą.
Mamy 16mA, ale czy możemy zejść niżej? Wszystko co dzieje się w naszym projekcie jest okresowe, co znaczy, że możemy również okresami usypiać nasz procesor. W trybie uśpienia cały sterownik ciągnie jedynie ok. 4mA. Do sprawdzenia godziny używamy cyklicznego wybudzania co 8 sekund.
Pozostają nam jedynie dwa dodatkowe problemy skąd wziąć czas rzeczywisty RTC i jak odłączać silnik servo po przemieszczeniu zapadki.
Najpierw silnik servo. Aby odłączać silnik servo po przemieszczeniu zapadki użyjemy na jednym z wyjść mikrokontrolera standardowego tranzystora PN2222A, który przed przemieszczeniem będzie nam podłączał i odłączał silnik od zasilania. Dzięki temu pobór naszego silnika będzie występował jedynie w momentach przemieszczania + ok. 1 sekundę.
Druga część to zegar RTC. Na płytce Industruino Proto mamy wyprowadzone wszystkie połączenia naszego procesora. Do naszego projektu wykorzystaliśmy gotową płytkę z zegarem RTC i wlutowaliśmy ją właśnie w te wyprowadzone na płytkę proto pola.
Teraz pomiary do testów wykorzystaliśmy prosty zasilacz 5V serii DR firmy Mean Well: