ZEBRA Network Board v.2

Płytka ZEBRA Network Board v.2. jest rozbudowaną wersją względem ZEBRA Network Board v.1 i została zaprojektowana aby ułatwić przygotowania wielu różnorodnych projektów, również tych pracujących w sieci komputerowej z użyciem okablowania lub za pomocą WiFi. Umożliwia ona jednoczesną pracę(oraz współpracę) dwóch modułów procesorowych: Arduino Nano oraz Wemos D1 Mini. Wyposażona została również w moduł pomiaru prądu płynącego przez tranzystory mocy i moduł MP# DFPlayer Mini.

Płytka oferuje możliwość zainstalowania poniższego wyposażenia:

  • moduł Arduino Nano
  • moduł Wemos D1 Mini wraz z jedną dodatkową nakładką
  • Ethernet Shield ENC28J60 dla Arduino Nano
  • moduł zegara czasu rzeczywistego DS3231
  • stabilizator napięcia 5V lub moduł przetwornicy LM2596
  • moduł komunikacyjny np. Bluetooth HC-06 lub inny kompatybilny
  • moduł odtwarzacza mp3 DFplayer Mini
  • tranzystory mosfet-N dla 6 kanałów wyjściowych
  • przekaźnik
  • potencjometry wieloobrotowe dla 2 wejść analogowych lub rezystory

Płyta jest wyposażona w pola lutownicze z rozstawem 5,08mm co umożliwia montaż bezpośredni okablowania lub przylutowanie złącz śrubowych ARK albo złącz wsuwanych. Dostępne są 2 porty analogowe Arduino Nano, port magistrali i2C wraz z liniami zasilającymi, 2 porty danych np dla 1wire wraz zasilaniem, portu UART. Z modułu mp3 wyprowadzone są zarówno port do podłączenia głośnika jak również osobno sygnały lewego i prawego kanału(gold piny).

Płyta dysponuje poniższymi portami:

  • port przekaźnika z wyprowadzonymi sygnałami COM, NC, NO
  • wyjścia L1..L6 z doprowadzonymi drenami od N-mosfetów
  • UART TTL z sygnałami GND, Tx, Rx
  • i2C(IIC) z sygnałami VCC(+5V), GND, SCL, SDA
  • DAT1 – cyfrowe we/wy z obsługą INT0 i opcją transoptora i zasilaniem
  • DAT2 – cyfrowe we/wy z opcja transoptora i zasilaniem
  • ANL1 i ANL2, z potencjometrami na wejściu lub stałym dzielnikiem
  • SPK1 i SPK2 złącze audio dla głośnika
  • AUDIO z sygnałami GND, Left i Right z mp3

Tu możesz kupić.

Bloki funkcjonalne

Poniżej przedstawiony jest opis bloków funkcjonalnych oraz połączeń pomiędzy nimi wraz z powiązanymi z nimi komponentami. Ułatwi to ustalenie, których elementów potrzebujemy.

Kanały wyjściowe L1 … L6

Kanały od L1 do L4 można sterować z obu mikrokontrolerów. Kanały L5 i L6 wyłącznie z Arduino. Wyboru dokonuje się montując właściwy rezystor. Dla danego wyjścia montujemy albo rezystor z kolumny Arduino Rezystor albo z kolumny Wemos Rezystor. Do pracy wymagane jest zamontowanie zwory z drutu pomiędzy polami (A+) oraz (A-). Poniższa tabelka prezentuje relację pomiędzy wyjściem z mikrokontrolera oraz rezystorami i wyjściem L.

WyjścieMosfetArduino PinArduino RezystorWemos PinWemos RezystorInne elementy
L1Q13R41D1R51R61
L2Q25R42D2R52R62
L3Q36R43D3R53R63
L4Q49R44D4R54R64
L5Q510(SS)R45R65
L6Q611(MOSI)R46R66

Poniżej przedstawiony jest schemat połączeń pomiędzy mikrokontrolerami Arduino i Wemos a blokiem tranzystorów sterujących wyjściami L1 … L6.

Schemat połączeń do mosfetów

Uwaga, używanie kanałów L5 i L6 powoduje, że nie będzie możliwości używania portu SPI do transmisji danych np. z kartą sieciową dostępną jako moduł dla Arduino Nano.

Karta sieciowa dla Arduino NANO – ENC28J60

Możliwe modyfikacje sterowania mosfetami

W miarę potrzeb można modyfikować wartość rezystorów R6n, których zadaniem jest rozładowanie bramki jeśli używamy tranzystorów typu N-mosfet. Rezystory R4n i R5n mają za zadanie dostarczyć prąd z mikrokontrolera do bramki aby ją naładować(stan wysoki na wyjściu) lub rozładować(stan niski na wyjściu). Może istnieć potrzeba zmniejszenia wartości rezystora np. do 47R aby uzyskać właściwą charakterystykę pracy tranzystora gdyż zastosowano tutaj uproszczony układ sterowania co wymusza zastosowania mosfetów przygotowanych do pracy ze sterowaniem bramką na poziomie poniżej 5V. Stosując bipolarne tranzystory NPN wartości tych rezystorów będzie należało zwiększyć do wartości powyżej 500R.

Zacisk wyjściowy Ln bez tranzystora

  • nie montujemy tranzystora Qn
  • za pomocą rezystora 0R lub zwory z drutu zwieramy GATE i DREN Qn
  • nie montujemy rezystora R6n
  • właściwy rezystor R4n lub R5n

Dodatkowe linie komunikacji Arduino -> Wemos

Jeśli nie używamy któregoś z wyjść L1 – L4 a potrzebujemy posiadać dodatkowe linie komunikacji binarnej od Arduino w stronę Wemos to możemy wykonać poniższą modyfikację dla danej linii Ln:

  • nie instalujemy tranzystora Qn
  • rezystor R6n zmieniamy na wartość 2k
  • rezystor R4n zmieniamy na wartość 1k
  • rezystor R5n zmieniamy na 0R

Powyższa modyfikacja pozwoli na przesyłanie danych binarnych z Arduino do Wemos po liniach i na linie odpowiedzialne za sterowanie daną linią Ln.

Układ pomiaru prądu

Płytka została wyposażona w układ pomiaru prądu płynącego przez L1…L6, z którego sygnał analogowy jest podany do Arduino na wejście A3. Do pomiaru służy zwora wlutowana pomiędzy punkty (A+) i (A-). Jej rezystancję(grubość drutu) należy dobrać zależnie od wielkości prądu jaki planujemy pobrać. Przy pełnym obciążeniu, na zworze powinno dać się zmierzyć napięcie o wartości około 0,10V. Napięcie to bowiem jest używane do pomiaru w układzie wzmacniacza zrealizowanego na U5 LM358. Schemat obwodu przedstawiono na rysunku poniżej.

Schemat obwodu pomiaru prądu na płytce ZEBRA Network Board v.2

Regulacja i kalibracja obwodu pomiarowego

Aby uzyskać możliwie dokładny pomiar należy zastosować zworę, na której odłoży się napięcie odpowiednio duże ale jednocześnie na tyle niewielkie, że nie wpłynie negatywnie na działanie zasilanych układów. Sugerowana wartość spadku napięcia na zworze czyli napięcia mierzonego pomiędzy punktami A+ i A- powinno wynosić około 0,10V – 0,20V.

Po obciążeniu wyjść pełną mocą należy zmierzyć napięcie na zworze a następnie zmierzyć napięcie na wyjściu układu czyli w punkcie połączenia elementów R4,R3,C1. Zmierzone napięcie powinno znajdować się w okolicy 4,90V. Musi być niższe niż 5V.

Można również dokonać dodatkowej kalibracji dokonując odczytu z Arduino i regulując rezystorami R5 i R6 wzmocnienie układu tak aby przy maksymalnym obciążeniu odczyt wynosił 1000. Maksymalny odczyt w Arduino wynosi 1023. Pozwoli to na łatwe skalowanie odczytanego wyniku.

Przekaźnik

Przekaźnik może być sterowany z jednego z dwóch procesorów. Poniższy schemat przedstawia informację o tym, które elementy odpowiadają za wybór punktu sterowania przekaźnika.

Schemat bloku sterowania przekaźnikiem

Zasilacz

Schemat bloku zasilacza przedstawia poniższy rysunek. Zaciski głównego zasilania zostały oznaczone jako GND i +24V i znajduje się przy bloku wyjść. Płytka umożliwia zamontowania wybranego typu układu zasilania. Przy układzie pobierającym mało energii i niewielkim wymaganym obniżeniu napięcia, można zastosować liniowy stabilizator 78T05, W przeciwnym wypadku należy stosować układ z przetwornicą. Można tam również wlutować inny własny zasilacz posadowiony na płycie. Dioda D11 służy zabezpieczeniu obwodów zasilacza przed sytuacją gdy na obwodach wyjściowych zasilacza będzie wyższe napięcie niż na wejściu. Bezpiecznik F1 to polimerowy element, którego parametry powinny odpowiadać wymaganiom układu. W wielu przypadkach wystarczy E150.

Schemat bloku zasilacza

Blok linii cyfrowych

Płytka została wyposażona w dwie linie cyfrowe, które mogą być używane w dwóch wersjach:

  • wejście zabezpieczone transoptorem – wówczas należy zamontować transoptor dla danej linii cyfrowej
  • linia dwukierunkowa bez zabezpieczenia – wówczas dla danej linii nie montujemy transoptora i zwieramy pola o numerach 1,2,4. Na płytce zostało umieszczone oznaczenie pól, które należy zewrzeć.

Linia zabezpieczona transoptorem

Wejście zostało zaprojektowane jako SOURCE czyli reaguje na zwarcie do masy. Transoptor bez wysterowania nie zwiera wejścia Arduino do masy pozostawiając je bez potencjału – należy zatem stosować podciąganie wejścia do napięcia zasilania za pomocą wbudowanych w układ rezystorów za pomocą polecenia pinMode z parametrem INPUT_PULLUP.

Linia dwukierunkowa bez zabezpieczenia

Wejście w trybie dwukierunkowym czyli bez transoptora będzie podłączone bezpośrednio do portu mikrokontrolera. W takiej sytuacji aby nie obciążać portu procesora podciąganiem do napięcia zasilania można przylutować właściwy dla danej linii rezystor R15 lub R16. W takiej sytuacji można użyć konfiguracji portu za pomocą polecenia pinMode z parametrem INPUT.

Obsługa przerwań dla linii DAT1

Linia DAT1 jest podłączona do Arduino na wejście numer 2, które obsługuje przerwanie sprzętowe INT0. Dzięki temu mamy możliwość reagowania na zdarzenia niezależnie od aktualnie wykonywanych czynności przez nasz program. O obsłudze przerwań w Arduino przeczytać można na tej stronie oraz w artykule pod tym adresem(w przygotowaniu).

Schemat bloku linii cyfrowych

Przerwanie INT1 – zaawansowana modyfikacja

Jeśli nie potrzebujemy generować sygnału PWM na wyjściu L1 a chcemy używać przerwania INT1 to istnieje możliwość dokonania modyfikacji sieci połączeń.

Linia czerwona na poniższym rysunku pokazuje połączenie, które należy wykonać przewodem typu kynar lub podobnym. Zapewni nam ono możliwość odbierania sygnałów z DAT2 na wejściu 3, które obsługuje przerwanie INT1. Warto wówczas dać rezystor R16.

Linia zielona to połączenie, które możemy wykonać za pomocą kynaru i rezystora smd 100R lub rezystora przewlekanego 100R. To połączenie zapewni nam podłączenie tranzystora Q1 obsługującego wyjście L1 do wyjścia 4 w Arduino. Jeżeli stosujemy dwa mikrokontrolery to możemy za pomocą rezystora R51 uzyskać sterowanie z Wemos.

Modyfikacja do obsługi INT1 na Arduino

Blok wejść analogowych

Schemat bloku wejść analogowych

Płytka została wyposażona w dwa wejścia analogowe dołączone do Arduino do wejść A6 i A7. Każde wejście ma możliwość użycia dzielnika napięcia w postaci potencjometru wieloobrotowego lub poprzez wlutowanie rezystorów o wymaganych wartościach. W uzasadnionych sytuacjach można użyć stałego dzielnika napięcia a na rezystor w gałęzi prowadzącej do masy można na wierzch przylutować kondensator SMD co spowoduje, że powstanie nam prosty filtr usuwający informacje o wyższych częstotliwościach. Więcej informacji o działaniu prostych filtrów znajdziesz w tym artykule(w budowie).

Blok odtwarzacza MP3

Komunikacja z odtwarzaczem MP3 została zaplanowana w połączeniu w układem Wemos. Poniższy rysunek prezentuje układ połączeń pomiędzy modułem MP3 i Wemos. Jeśli nie stosujemy Wemos a potrzebujemy sterować układem z Arduino poprzez UART wówczas, należy wykonać poniższe połączenia i zamontować wskazane elementy:

  • zwora Wemos D5 -> Wemos Rx
  • zwora Wemos D6 _> Wemos Tx
  • rezystory R11 i R93 zmieniamy wartość na 0R
  • nie montujemy rezystorów R12 i R92

Jeżeli potrzebujemy również sygnału BUSY informującego o tym, że układ odtwarza dźwięk wówczas, należy dokonać poniższych modyfikacji, które spowodują, że sygnał BUSY pojawi się na Arduino na wejściu 13(SCK):

  • zwora Wemos A0 -> Wemos D0
  • rezystor R18 zmieniamy wartość na 0R
  • nie montujemy rezystora R19

Powyższa modyfikacja uniemożliwi używanie portu SPI gdyż zajmujemy wejście odpowiedzialne za generowanie sygnału SCK dla SPI.

Schemat bloku odtwarzacza MP3

Komunikacja wewnętrzna WEMOS ARDUINO

Mikrokontrolery Wemos i Arduino Nano zostały spięte szeregową magistralą komunikacyjną. Znajduje się w niej prosty układ dopasowujący napięcie z Arduino do Wemos. W drugą stronę nie jest on wymagany choć mógłby być tam układ podwyższający napięcie.

Poniższy schemat prezentuje układ połączeń pomiędzy mikrokontrolerami oraz pomiędzy portami dostępnymi na płytce.

Zegar czasu rzeczywistego DS3231

Na płytce zostało zaplanowane miejsce na wpięcie małego modułu zegara czasu rzeczywistego zbudowanego w oparciu o układ DS3231, który pracuje bardziej stabilnie od popularnego DS1307 oraz ma wbudowany pomiar temperatury. Pasujący moduł to wersja dla Raspberry Pi.

Moduł zegara czasu rzeczywistego DS3231 w wersji dla Raspberry Pi.

Na poniższym zdjęciu widać dwa porty szyny i2C. Trzeci znajduje się obok portu głośników i jest przeznaczony do montażu gniazda. Poniższe dwa złącza opisane jako U4 DS3231 oraz i2C RTC to alternatywne lokalizacje na moduł RTC. Gdy używamy modułu ENC28J60 wówczas U4 będzie niedostępny fizycznie i nalezy moduł RTC wpiąć w złącze i2C RTC. Można również podłączyć tam inne układy z szyną i2C, przykładowo czujnik BME280, który oferuje pomiar temperatury, wilgotności oraz ciśnienia atmosferycznego – należy zwrócić uwagę na układ wyprowadzeń podłączanego modułu.

Zbliżenie na dwa porty szyny i2C

Diody LED – informacja optyczna

Płytka została wyposażona w kilka diod LED, których można swobodnie używać do wskazywania stanu urządzenia. Niektóre posiadają opisy sugerujące wskazywany typ informacji, inne zaś mają bardziej uniwersalny charakter. Poniżej znajduje się schemat prezentujący miejsca podłączenia.

Biblioteki, przykłady, schematy, rysunki

Zobacz na nasz Google Drive.