Arduino dla początkujących – co musisz wiedzieć? – Część 1.

Mam teraz do czynienia z człowiekiem, dla którego Arduino i programowanie to kompletne nowości, więc pomyślałem, że wiedzę, jaką mu przekazuję, mógłbym też przekazać szerszej publiczności.

Najpierw trochę o samym Arduino (dla uproszczenia wszystko w tym poście będzie odnosić się do Arduino UNO, najpopularniejszego modelu, który prawdopodobnie wpadnie wam w ręce). Jest to mikrokontroler, a nie tak jak można by pomyśleć komputer. Zresztą, kto w dzisiejszych czasach chciałby komputer z 8-bitową architekturą oraz taktowaniem procesora 16 Mhz, dyskiem 32 KB, RAM-em o pojemności 2 KB oraz małą pamięcią dodatkową o wielkości 1 KB? Kto chciałby na nim codziennie pracować, niech podniesie rękę. Nikt? Idziemy dalej.

Arduino można bardzo łatwo zniszczyć, jest na to tak dużo sposobów, że prawdopodobieństwo, że początkujący popełni chociaż jeden z nich jest dość spore. Po pierwsze, piny Arduino są przystosowane do pracy przy napięciu od 0 do 5 voltów. Gdybyś (przypadkiem?) podpiął do któregokolwiek powiedzmy, 5,5 V, skończy się to śmiercią tego pina na zawsze. Owszem, jest tam zabezpieczenie w postaci diody, która zaczyna przewodzić, gdy robi się niebezpiecznie, ale jest ona przystosowana do kompensowania krótkich skoków. Permanentne przyłączenie takiego napięcia zniszczy ją, a razem z nią mikrokontroler (zniszczyłoby czip kontrolujący połączenie USB, ale w Arduino UNO to sam mikrokontroler go emuluje).

Kolejna sprawa, zasilanie. Jeżeli podpinając zasilanie do DC Jacka zmienisz przypadkowo jego polaryzację to możesz być pewny, że już po twoim mikrokontrolerze (padnie też regulator napięcia 5 V, ale kto będzie na to zwracać uwagę w takiej sytuacji?). Być może naczytałeś się w internecie, że można zasilać Arduino przez pin 5 V, a nawet podłączyć do niego 3,3 V, by całe Arduino pracowało na logice 3,3 V. Owszem, jest to bardzo wygodne, ale brak tam jakichkolwiek zabezpieczeń. Pomyliłeś piny, i zamiast podłączyć 12 V do Vin podłączasz je do 5 V. Oczywiście mikrokontroler jest w takim przypadku spalony. Jeżeli twoje cudeńko jest też podłączone do komputera, to istnieje duża szansa na to, że porty USB też nie są już sprawne. To samo dzieje się z pinem 3,3 V, ale tu nie jest aż tak źle. Z niego nie można zasilać Arduino, ale wszystkie urządzenia podpięte pod 3,3 V są już spalone. Więcej, gdy dasz tam ponad 9 V, regulator napięcia 3,3 V też będzie sfajczony, razem z twoim portem USB.

Podpinanie pinu Vin do GND czy też podpinanie urządzeń do Vin, kiedy Arduino jest zasilane z pina 5 V także skończy się źle. W pierwszym przypadku ścieżki na twoim Arduino efektownie spalą/stopią się, razem z diodą blokującą. W drugim zaś spali się regulator napięcia 5 V.

Nigdy też nie łącz pina z OUTPUT ustawionym na HIGH z masą (GND), w ten sposób popłynie tam około 200 mA, które z pewnością zniszczy twój mikrokontroler. To samo stanie się, gdy złączysz 2 piny, jeden w stanie HIGH, drugi LOW ze sobą. Trzeba też pamiętać o tym, by nie przekraczać limitu natężenia na wszystkich pinach (dla jednego to 40 mA, dla wszystkich 200 mA) na przykład podłączając do nich 10 ledów po 20 mA każdy, to także zniszczy mikrokontroler.

To chyba wszystko z poważniejszych niebezpieczeństw 🙂 Zdecydowałem się, że ten wpis podzielę na co najmniej 2 części, bo byłby bardzo długi i czytanie go nie byłoby przyjemne. W kolejnej części – wszystko związane z programowaniem na Arduino!

  • Robinson

    Tak się zastanawiam, zanim spalę swoją pierwszą płytkę, jako ktoś kto miał arduino w łapie przez dosłownie godzinę i jest w tym zielony a ma już kilka pomysłów na wykorzystanie, czy jeżeli ustawię sobie na pinie 10 na przykład HIGH, a na pinie 7 LOW i pomiędzy te 2 piny wsadzę LEDa z opornikiem tak, żeby + diody był w pinie 10 to
    a)dioda będzie się świeciła
    b)dioda nie będzie świeciła
    c)ATMega się zaświeci (ogniem) a później zgaśnie na wieki?
    Może pytanie dla kogoś doświadczonego głupie, ale dla mnie odpowiedź nie jest oczywista 🙂

    • Hej! Odpowiadając na twoje pytanie, dioda będzie się świeciła – tylko jaki sens ma to rozwiązanie? Wystarczy wykorzystać do tego jeden pin, do którego podłączysz anodę diody – do masy podłączasz katodę i wszystko śmiga (gdy na pinie będziesz miał stan HIGH dioda się zaświeci, w przeciwnym przypadku zgaśnie). Pamiętać trzeba tylko o dobrze dobranych rezystorach 🙂

  • Robinson

    Dzięki za odpowiedź! No właśnie w tym wydaniu nie ma sensu, ale po głowie chodzi mi większy projekt gdzie chciałbym sterować dużą ilością diod ułożonych w siatkę tak, żeby 10 pinami sterować 25 LEDami ( po 5 katod do każdego z jednych 5 pinów i po 5 anod do każdego z drugich 5 pinów, mam nadzieję, że rozumiesz o co mi chodzi) i dzięki temu mogę zaoszczędzić aż 15 pinów 🙂

    • Cieszę się, że mogłem pomóc! Przepraszam za te opóźnienie w odpisywaniu – nie dostaję powiadomień o komantarzach w postach opublikowanych ponad tydzień temu.