
Witam wszystkich serdecznie
Dziś chciałbym Wam przedstawić bardzo przydatną (jak dla mnie) przystawkę do nauki programowania.
Na początek trochę historii (oczywiście historia elektroniki).
Ja już ponad ćwierć wieku bawię się elektroniką - często robiłem coś tylko dla tego aby zdobyć doświadczenie, nie rzadko przy takich eksperymentach szarpało po kieszeni w skutek nieprzemyślanego podłączenia czy to podzespołu czy jakiegoś modułu elektronicznego. W dzisiejszych czasach koszty modułów (zwłaszcza tych chińskich) są niewielkie i tak aż bardzo nie odczujemy kiedy coś uszkodzimy, ale za to jak się nieumyślnie przy naprawie uszkodzi płytę główną np. przy telewizorze no to już jest nieciekawie.
Ale wracając do tematu. Pamiętacie te czasy jak elektronika wchodziła do domów, wszystko tak naprawdę zaczęło się już dawno temu. Aby można było bawić się elektroniką musiał być znany prąd elektryczny. I tak na początek były proste instalacje elektryczne - głównie oświetlenie, a z czasem pojawiły się układy elektroniczne, głównie na lampach (choć dla mnie układy elektroniczne na lampach powinny nazywać się układami elektrycznymi chociażby dlatego że stare schematy np gramofonu Bambino były podpisane właśnie "Schemat elektryczny gramofonu Bambino" no i nawet w Wikipedii po wpisaniu lampa elektronowa możemy przeczytać że jest to element elektroniczny - ale pomińmy tę kwestię), pojawiły się proste układy lampowe, po czym wynaleziono tranzystor półprzewodniki to była rewolucja - brak wysokich napięć anodowych pozwoliło na budowanie układów zasilanych niskim napięciem - tzw przenośnych - bateryjnych. Elektronika kwitła bardzo dobrze - układy tranzystorowe. Kolejnym krokiem było pojawienie się układu scalonego - na początek UL1111 jak dobrze pamiętam 5 tranzystorów ale układ scalony - era układów scalonych - coraz więcej różnych specjalistycznych układów scalonych, każdy z nich realizował określone funkcje, zegary, liczniki, wzmacniacze, rejestry itp. Aż do momentu kiedy to pojawił się programowalny układ scalony - zwany procesorem i znów stosowanie klasycznych układów w projektach stało się przestarzałe i drogie - dlaczego - weźmy np zegar cyfrowy LED - jeśli chciałbyś go zbudować ze zwykłych układów cyfrowych musiałbyś użyć ich co najmniej dziewięciu (o ile dobrze pamiętam), przy konstruowaniu z użyciem specjalistycznego układu np LM8560 można było zbudować taki zegar stosując tylko jeden taki układ, ale z chwilą kiedy to procesory wkroczyły na dobre do projektów stało się jasne że taki zegar można zrobić na procesorze tanio szybko będzie on pobierał bardzo mało prądu i będzie można za pomocą programowania mikroprocesora zmieniać jego funkcje. Wszystkie te korzyści sprawiły że teraz bardzo dużo osób zajmujących się elektroniką programuje lub chce nauczyć się programowania mikroprocesorów. Co niektórzy funkcję migacza LED wolą zrobić na 8-pinowym procesorze niż na tranzystorach bo prościej łatwiej można zmienić np częstotliwość migania, bez ingerencji lutownicą w układ elektroniczny.
Kończąc ten troszkę za długi już wstęp chciałbym powiedzieć że tak naprawdę początkiem elektroniki stała się elektryka, a początkiem informatyki stała się elektronika. W dzisiejszych czasach tak naprawdę elektronika stanowi bazę elektryczną dla układu, a funkcjonalność wcale nie zależy tylko od połączeń elektrycznych układu lecz również od twórczości programisty. Weźmy na przykład ten wcześniejszy zegar, możemy go zrobić na procesorze i będzie nam wskazywał godzinę ale również po zmianie programu będziemy mogli np. korzystać z tego samego układu elektronicznego jako stoper, wystarczy że zmienimy tylko oprogramowanie. Czyż to nie piękne, ale zaraz czy aby na pewno w dzisiejszych czasach nie musimy nic lutować ??
I tak i nie - zależy - mamy na dzień dzisiejszy platformy Arduino (w moim przypadku UNO i dalej będę się odnosił do właśnie tej wersji), które to po podłączeniu do komputera przez kabel USB możemy programować dowolnie lub uczyć się na nim programować, do tego wystarczy jeszcze kilka kabelków płytka stykowa oraz kilka elementów elektronicznych i to wszystko.
Ja postanowiłem iść trochę na skróty i stworzyć coś ala nakładkę na moje Arduino UNO - jest to taki układ do nauki programowania - zawiera podstawowe elementy podłączone na stałe pod piny procesora - przy pisaniu programu trzeba tylko pamiętać gdzie co mamy podłączone i wszystko działa.
Moim zdaniem taka płytka jest bardzo przydatna ponieważ na płytce stykowej nie zawsze coś dobrze styka zdarza się że przewód się wypnie lub najprościej w świecie popełnimy błąd przy podłączeniu.
Tu macie wszystko połączone - połączenia są pewne bo lutowane można skupić się na programowaniu, wadą takiego połączenia jest oczywiście brak możliwości zmiany pinów i konfiguracji na płytce ale za to można przetestować wszystkie proste układu we/wy czy to cyfrowe za pomocą switchy czy analogowe za pomocą potencjometru na wejściu i PWM na wyjściu
Wyprowadzenia pinów Arduino UNO i połączone pod nie elementy
• S1 – Pin Arduino – 12 – przycisk do masy.
• S2 – Pin Arduino – 8 – przycisk do masy.
• S3 – Pin Arduino – 7 – przycisk do masy.
• S4 – Pin Arduino – 2 – przycisk do masy (obsługa przerwań).
• KONTAKTRON – Pin Arduino – 0 – kontaktron do masy.
• LED-RGB-WK – Piny Arduino – 6,5,3 – przez rezystory R5 (100ohm), R6 (100ohm) i R7 (150ohm) – wspólna katoda do masy (6-pin – niebieska, 5-pin – zielona, 3-pin – czerwona).
• LED1 – Pin Arduino – 13 – dioda niebieska katodą do masy przez rezystor 150ohm.
• LED2 – Pin Arduino – 11 – dioda zielona katodą do masy przez rezystor 120ohm.
• LED3 – Pin Arduino – 10 – dioda żółta katodą do masy przez rezystor 180ohm.
• LED4 – Pin Arduino – 9 – dioda czerwona katodą do masy przez rezystor 180ohm.
• BUZZER – Pin Arduino – A1 – buzzer aktywny podłączony do masy.
• DC1, DC2, DC3 – Pin Arduino – 4 – diody cyfrowe ze sterownikiem zasilanie napięciem 5V.
• P1 – Pin Arduino – A5 – potencjometr podłączony jako dzielnik napięcia dla pinu analogowego.
• DS1, DS2 – Pin Arduino – A4 – cyfrowe czujniki temperatury DALLAS DS18B20 podłączone przez rezystor R9 (4.7k) do szyny zasilania 5V.
• TERM – Pin Arduino – A3 – termistor podłączony razem z rezystorem R10 (20k) jako dzielnik napięcia dla pinu analogowego stanowiący prosty czujnik temperatury.
• FOTO – Pin Arduino – A2 – fotorezystor podłączony razem z rezstorem R11 (20k) jako dzielnik napięcia dla pinu analogowego stanowiący prosty czujnik oświetlenia.
• IR – Pin Arduino – A0 – odbiornik podczerwieni aby można było sterować z pilota,
odbiornik podłączony przez rezystor R8 (220).
W miarę mojej nauki programowania tworzę kolejne płytki typu nakładki umożliwiające ćwiczenia programowania. Kolejne płytki będą umożliwiały m.in multipleksowanie wyświetlacza czterosegmentowego LED, i kolejna sterowanie silników dla wykonania prostego robota - czyli kilka czujników + sterowniki silników, kolejna płytka będzie ze sterownikami silników przeznaczona do tego aby zrobić z naszego Arduino drona ale to wszystko w planach na razie mam projekty płytek ale jeszcze nie zmontowane. Płytkę z wyświetlaczem LCD oraz klawiaturą parametryczną kupiłem w formie takiej właśnie nakładki i postanowiłem zrobić kolejne tak aby od podstaw nauczyć się programowania, czyli zacząć od popularnego migania diodą.

Przy połączeniu tego z modułem DS1302 mamy fajny zegar RTC




Przy połączeniu tego z modułem radia TEA5757 mamy prosty radioodbiornik FM z wyświetlaczem LCD


W podobny sposób można za pomocą odpowiedniego czujnika np. oświetlenia, czy temperatury stworzyć podobny układ który będzie informował nas o ilości oświetlenia w pomieszczeniu czy o panującej temperaturze - ojej czy właśnie zrobiliśmy prosty termometr - właśnie tak.
W przypadku mojej płytki też jest możliwe zrobienie np wyłącznika zmierzchowego czy termostatu za pomocą termistora i fotorezystora umieszczonego na płytce razem z rezystorami tworzą dzielniki napięcia i to napięcie trafia do procesora do przetwornika analogowo-cyfrowego i za pomocą odpowiedniego programu napisanego na Arduino można zadeklarować że powyżej lub poniżej określonej wartości będzie procesor wystawiał stan wysoki na wyjściu - w naszym przypadku będzie zapalać diodę, można też dodać opcję płynnej zmiany tej granicy za pomocą potencjometru lub całość włączać i wyłączać pilotem. Przy projektowaniu układu z użyciem programu co właśnie napisaliśmy i sprawdziliśmy że działa, w finalnym układzie projektujemy procesor ATMEGA8 lub 328 taki jak w Arduino zasilanie na stabilizatorze kwarc 16Mhz oraz układ wykonawczy czyli zamiast diody LED podłączamy przez rezystor na bazę tranzystora który ty załącza przekaźnik. W taki sposób można właśnie zacząć projektować proste układy z wykorzystaniem mikroprocesora.
Pomysłów aby wykorzystać ten układ jest bardzo dużo i pozostawiam Wam ten układ do ćwiczeń i jednocześnie życzę sukcesów w nauce.
Jak czas pozwoli będę sukcesywnie publikował kolejne nakładki (myślę że w tym temacie aby nie zakładać kolejnych)
Załączam również dokumentację oraz termotransfer dla tych którzy będą sobie chcieli zrobić taki układ - szczerze polecam dla początkujących.
Sam choć zajmuję się już ćwierć wieku elektroniką zmuszony byłem nauczyć się (w sumie to cały czas się uczę jak czas pozwoli) programowania i płytka bardzo mi się przydaje zwłaszcza przy małym synku (1.5 roku) przy stykówce i luźnych elementach bał bym się tego wyciągać bo mógłby połknąć element i nieszczęście gotowe. A tak wszystko w jednej całości zasilane tylko z USB więc kablem podpinam do USB i wszystko działa - pozostaje jeszcze uruchomić środowisko IDE Arduino i można zacząć pisać programy.
W razie pytań służę pomocą. Czekam na komentarze, jest to mój dwudziesty drugi opublikowany projekt - proszę o wyrozumiałość, czytałem regulamin i myślę, że wszystko zrobiłem zgodnie z nim.
Cool? Ranking DIY