Kategorie: Polecane artykuły » Praktyczna elektronika
Liczba wyświetleń: 67360
Komentarze do artykułu: 7

Podłączanie i programowanie Arduino dla początkujących

 

Czy badanie mikrokontrolerów wydaje się skomplikowane i niezrozumiałe? Przed pojawieniem się Arudino nie było to naprawdę łatwe i wymagało określonego zestawu programistów i innego sprzętu.


Co to jest Arduino?

To rodzaj elektronicznego konstruktora. Pierwotnym celem projektu jest umożliwienie ludziom łatwego uczenia się programowania urządzeń elektronicznych, przy jednoczesnym poświęceniu minimalnej ilości czasu na część elektroniczną.

Montaż najbardziej skomplikowanych obwodów i podłączenie płyt można przeprowadzić bez lutownicy i za pomocą zworek z odłączanymi połączeniami „ojciec” i „matka”. W ten sposób można podłączyć zarówno dodatki, jak i karty rozszerzeń, które w leksykonie arduinistów są po prostu nazywane „tarczami”.

Co to jest Arduino?

Jaka jest pierwsza tablica Arduino dla nowicjusza?

Podstawowa i najpopularniejsza plansza jest brana pod uwagę Arduino uno. Opłata ta przypomina kartę kredytową. Dość duży. Większość dostępnych w sprzedaży tarcz jest dla niej idealna. Na płycie znajdują się gniazda do podłączania urządzeń zewnętrznych.

Arduino uno

W sklepach krajowych na 2017 r. Jego cena wynosi około 4-5 dolarów. W nowoczesnych modelach Atmega328 jest jej sercem.

Arduino uno

Obraz płyty Arduino i dekodowanie funkcji każdego pinu, pinout Arduino UNO

Mikrokontroler na tej płycie to długi układ w pakiecie DIP28, co oznacza, że ​​ma 28 nóg.

Kolejna najpopularniejsza deska kosztuje prawie dwa razy taniej niż poprzednia - 2-3 dolary. To jest plansza Arduino nano. Rzeczywiste płyty są zbudowane przez tę samą Atmega328, są funkcjonalnie podobne do UNO, istnieją różnice w rozmiarach i pasujące rozwiązanie z USB, więcej na ten temat później. Inną różnicą jest to, że wtyk w postaci igieł jest przewidziany do podłączenia urządzeń do płytki drukowanej.

Arduino nano

Liczba pinów (nóg) tej płyty jest taka sama, ale można zauważyć, że mikrokontroler jest wykonany w bardziej kompaktowym pakiecie TQFP32, w obudowie dodano ADC6 i ADC7, pozostałe dwa „dodatkowe” nogi duplikują szynę zasilającą. Jego wymiary są dość kompaktowe - mniej więcej wielkości kciuka twojej dłoni.

Aruino nano pinout 

Trzecią najpopularniejszą deską jest Arduino Pro Mini, nie ma portu USB do podłączenia do komputera, powiem ci, jak się komunikować nieco później.

Porównanie Arduino Nano vs Pro Mini

Porównanie Arduino Nano vs Pro Mini

Jest to najmniejsza płyta główna ze wszystkich rozważanych, w przeciwnym razie jest podobna do poprzednich dwóch, a Atmega328 nadal jest jej sercem. Nie będziemy rozważać innych tablic, ponieważ jest to artykuł dla początkujących, a porównanie tablic jest tematem osobnego artykułu.

Pinout Arduino Pro Mini, w górnej części schemat połączeń USB-UART, styk „GRN” - jest podłączony do obwodu resetowania mikrokontrolera, może być nazywany inaczej, o czym należy się później dowiedzieć.

Podsumowanie:

Jeśli UNO nadaje się do prototypowania, to Nano i Pro Mini są wygodne w końcowych wersjach projektu, ponieważ zajmują mało miejsca.

Arduino dla początkujących

Jak podłączyć Arduino do komputera?

Arduino Uno i Nano łączą się z komputerem przez USB. Jednocześnie nie ma obsługi sprzętowej portu USB, tutaj zastosowano rozwiązanie obwodu konwersji poziomu, zwykle nazywane USB-Serial lub USB-UART (rs-232). W tym samym czasie do mikrokontrolera flashowana jest specjalna bootloader Arduino, który umożliwia flashowanie w tych autobusach.

W Arduino Uno ligatura ta jest zaimplementowana w mikrokontrolerze z obsługą USB - ATmega16U2 (AT16U2). Okazuje się, że dodatkowy mikrokontroler na płycie jest potrzebny do flashowania głównego mikrokontrolera.

W Arduino Nano jest to realizowane przez układ FT232R lub jego analogowy CH340. To nie jest mikrokontroler - to konwerter poziomów, co ułatwia montaż Arduino Nano od zera własnymi rękami.

Zazwyczaj sterowniki są instalowane automatycznie po podłączeniu karty Arduino. Kiedy jednak kupiłem chińską kopię Arduino Nano, urządzenie zostało rozpoznane, ale nie działało, na konwerterze przykleiła się okrągła naklejka z danymi o dacie premiery, nie wiem, czy zrobiono to celowo, ale po oderwaniu zobaczyłem oznaczenie CH340.

Wcześniej tego nie spotkałem i myślałem, że wszystkie konwertery USB-UART zostały zmontowane na FT232, musiałem pobrać sterowniki, bardzo łatwo je znaleźć na żądanie „sterownika Arduino ch340”. Po prostej instalacji - zadziałało!

Przez ten sam port USB mikrokontroler może być również zasilany, tj. jeśli podłączysz go do adaptera z telefonu komórkowego, twój system będzie działał.


Co powinienem zrobić, jeśli moja płyta nie ma USB?

Arduino Pro Mini jest mniejszy. Osiągnięto to przez usunięcie złącza USB oprogramowania układowego i tego samego konwertera USB-UART. Dlatego należy go zakupić osobno. Najprostszy konwerter na CH340 (najtańszy), CPL2102 i FT232R, na sprzedaż kosztuje od 1 USD.

Kupując, zwróć uwagę na napięcie, do jakiego przeznaczony jest ten adapter. Pro mini jest dostępny w wersjach 3.3 i 5 V, zworka często znajduje się na przetwornicach w celu przełączania napięcia zasilania.

Arduino Pro Mini

Podczas flashowania Pro Mini, tuż przed jego uruchomieniem, musisz kliknąć RESET, jednak w konwerterach z DTR nie musisz tego robić, schemat połączeń na poniższym rysunku.

Schemat połączeń dla oprogramowania układowego

Dołączają do nich specjalne terminale „Mama-Mama” (kobieta-kobieta).

Połączenie Arduino

Właściwie wszystkie połączenia można wykonać za pomocą takich zacisków (Dupont), są one po obu stronach z gniazdami i wtyczkami, z jednej strony gniazda, a z drugiej wtyczki.

Wtyczka

Jak pisać programy dla Arduino?

Aby pracować ze szkicami (nazwa oprogramowania układowego jest w języku arduino), istnieje specjalne zintegrowane środowisko do tworzenia Arduino IDE, możesz pobrać go bezpłatnie z oficjalnej strony internetowej lub z dowolnego zasobu tematycznego, zwykle nie ma problemów z instalacją.

Program dla Arduino

Tak wygląda interfejs programu. Możesz pisać programy w uproszczonym języku C AVR specjalnie opracowanym dla arduino, w rzeczywistości jest to zestaw bibliotek o nazwie Wiring, a także w czystym C AVR. Korzystanie z niego ułatwia kod i przyspiesza jego pracę.

W górnej części okna znajduje się znane menu, w którym można otworzyć plik, ustawienia, wybrać planszę, z którą pracujesz (Uno, Nano i wiele, wiele innych), a także otwierać projekty z gotowymi przykładami kodu. Poniżej znajduje się zestaw przycisków do pracy z oprogramowaniem układowym, które zobaczysz na poniższym rysunku.

Interfejs programu

W dolnej części okna znajduje się obszar do wyświetlania informacji o projekcie, statusie kodu, oprogramowania układowego i obecności błędów.


Podstawy programowania Arduino IDE

Na początku kodu musisz zadeklarować zmienne i podłączyć dodatkowe biblioteki, jeśli istnieją, jest to wykonywane w następujący sposób:

#include biblioteka.h; // połącz bibliotekę z nazwą „Biblioteka.h”

# zdefiniować peremennaya 1234; // Zadeklaruj zmienną o wartości 1234

Polecenie Zdefiniuj pozwala kompilatorowi wybrać typ zmiennej, ale można ustawić ją ręcznie, na przykład liczbę całkowitą int lub liczbę zmiennoprzecinkową.

int led = 13; // utworzył zmienną „led” i przypisał jej wartość „13”

Program może określić stan styku jako 1 lub 0. 1 jest jednostką logiczną, jeśli styk 13 ma wartość 1, wówczas napięcie na jego fizycznej nodze będzie równe napięciu zasilania mikrokontrolera (dla arduino UNO i Nano - 5 V)

Sygnał cyfrowy jest rejestrowany za pomocą polecenia digitalWrite (pin, wartość), na przykład:

digitalWrite (led, wysoki); // zapisz urządzenie w pinie 13 (ogłosiliśmy to powyżej) log. Jednostki

Jak można zrozumieć, dostęp do portów odbywa się poprzez numerację na planszy, odpowiednią liczbę. Oto przykład podobny do poprzedniego kodu:

digitalWrite (13, wysoka); // ustaw pin 13 na jeden

Często poszukiwana funkcja opóźnienia czasowego jest wywoływana przez polecenie delay (), którego wartość jest ustawiana w milisekundach, mikrosekundy są uzyskiwane za pomocą

delayMicroseconds () Opóźnienie (1000); // mikrokontroler poczeka 1000 ms (1 sekunda)

Ustawienia portów dla wejścia i wyjścia są ustawiane w funkcji void setup {} za pomocą polecenia:

void setup () {

pinMode (NOMERPORTA, WYJŚCIE / WEJŚCIE); // argumenty - nazwa zmiennej lub numer portu, wejście lub wyjście do wyboru

}

Pętla pustki {}


Zrozumienie pierwszego programu Blink

Jako rodzaj „Witaj, świecie” dla mikrokontrolerów dostępny jest program migający LED, przeanalizujmy jego kod:

Na początku poleceniem pinMode powiedzieliśmy mikrokontrolerowi, aby przypisał port z diodą LED do wyjścia.Zauważyłeś już, że kod nie deklaruje zmiennej „LED_BUILTIN”, faktem jest, że w fabryce Uno, Nano i innych płytach wbudowana dioda LED jest podłączona do pinu 13 i jest przylutowana do płytki. Może być używany przez Ciebie do wskazania w twoich projektach lub do najprostszej kontroli programów flashujących.

Następnie ustawiamy moc wyjściową, do której dioda LED jest przylutowana do jedności (5 V), następny wiersz sprawia, że ​​MK czeka 1 sekundę, a następnie ustawia pin LED_BUILTIN na zero, czeka sekundę, a program powtarza się w kółko, więc gdy LED_BUILTIN wynosi 1 - dioda LED ( i każde inne obciążenie podłączone do portu) jest włączone, gdy w 0 jest wyłączone.

Czy wszystko działa i wszystko jest jasne? Więc idź dalej!



Odczytujemy wartość z portu analogowego i używamy odczytanych danych

Mikrokontroler Atmega328 AVR ma wbudowany 10-bitowy przetwornik analogowo-cyfrowy. 10-bitowy przetwornik ADC umożliwia odczyt wartości napięcia od 0 do 5 woltów, w krokach co 1/1024 całego zakresu amplitudy sygnału (5 V).

Aby było to jaśniejsze, rozważ sytuację, załóżmy, że wartość napięcia na wejściu analogowym wynosi 2,5 V, wówczas mikrokontroler odczyta wartość z pinu „512”, jeśli napięcie wynosi 0–0, a ​​jeśli 5 V - (1023). 1023 - ponieważ liczba zaczyna się od 0, tj. 0, 1, 2, 3 itd. do 1023 - łącznie 1024 wartości.

Oto jak to wygląda w kodzie na przykładzie standardowego szkicu „analogInput”

int sensorPin = A0;

int ledPin = 13;

int sensorValue = 0;

void setup () {

pinMode (ledPin, OUTPUT);

}

void loop () {

sensorValue = analogRead (sensorPin);

digitalWrite (ledPin, HIGH);

opóźnienie (sensorValue);

digitalWrite (ledPin, LOW);

opóźnienie (sensorValue);

}

Schemat podłączenia potencjometru do Arduino, analogicznie, wyjście centralne można podłączyć do dowolnego wejścia analogowego

Schemat podłączenia potencjometru do Arduino, analogicznie, wyjście centralne można podłączyć do dowolnego wejścia analogowego.

Deklaruj zmienne:

  • Ledpin - niezależnie przypisz pin z wbudowaną diodą LED do wyjścia i nadaj indywidualną nazwę;

  • sensorPin - wejście analogowe ustawiane zgodnie z oznaczeniami na płycie: A0, A1, A2 itp .;

  • sensorValue - zmienna do przechowywania wartości odczytu liczby całkowitej i dalszej pracy z nią.

Kod działa w następujący sposób: sensorValue zapisz wartość analogową odczytaną za pomocą czujnikaPin (polecenie analogRead). - tutaj kończy się praca z sygnałem analogowym, wtedy wszystko jest jak w poprzednim przykładzie.

Piszemy jednostkę w ledPin, dioda LED włącza się i czeka na czas równy wartości czujnikaValue, tj. od 0 do 1023 milisekund. Wyłącz diodę LED i zaczekaj jeszcze raz, po czym kod się powtarza.

Zatem pozycją potencjometru ustawiamy częstotliwość migania diody LED.


Funkcja mapy dla Arudino

Nie wszystkie funkcje siłowników (nie znam żadnej) obsługują argument „1023” jako argument, na przykład serwo jest ograniczone kątem obrotu, to znaczy o pół obrotu (180 stopni) (pół obrotu) silnika serwo, maksymalnym argumentem funkcji jest „180”

Teraz o składni: map (tłumaczymy wartość to minimalne wejście, maksymalne wejście, minimalne wyjście, maksymalne wyjście).

W kodzie wygląda to tak:

(mapa (analogRead (pot), 0, 1023, 0, 180));

Odczytujemy wartość z potencjometru (analogRead (pot)) od 0 do 1023, a na wyjściu otrzymujemy liczby od 0 do 180

Wartości mapy wartości:

  • 0=0;

  • 1023=180;

W praktyce stosujemy to do pracy z tym samym serwo kodem, spójrz na kod z Arduino IDE, jeśli dokładnie przeczytasz poprzednie sekcje, to nie wymaga wyjaśnienia.

I schemat połączeń.

Schemat połączeń

Wnioski Arduino jest bardzo wygodnym narzędziem do nauki pracy z mikrokontrolerami. A jeśli użyjesz czystego AVR C lub, jak to się czasem nazywa „Pure C”, znacznie zmniejszysz wagę kodu i zmieścisz więcej w pamięci mikrokontrolera, w wyniku czego otrzymasz doskonałą fabryczną płytę debugującą z oprogramowaniem USB.

Arduino dla początkujących

Opinia autora:

Lubię arduino. Szkoda, że ​​wielu doświadczonych programistów mikrokontrolerów krytykuje to nierozsądnie, że jest zbyt uproszczone. Zasadniczo tylko język jest uproszczony, ale nikt nie zmusza Cię do korzystania z niego, a ponadto możesz sflashować mikrokontroler przez złącze ICSP i wpisać żądany kod bez żadnych programów ładujących, których nie potrzebujesz.

Dla tych, którzy chcą bawić się elektroniką, jako zaawansowany konstruktor jest idealny, ale dla doświadczonych programistów przydatna będzie również płyta niewymagająca montażu!

Więcej informacji o Arduino i funkcjach jego wykorzystania w różnych schematach można znaleźć w e-booku -Arduino dla manekinów. Ilustrowany praktyczny przewodnik.

Zobacz także na e.imadeself.com:

  • Metody odczytu i zarządzania portami we / wy Arduino
  • Którą płytę Arduino wybrać
  • Rodzaje i rozmieszczenie mikrokontrolerów AVR
  • Pilot mikrokontrolera: pilot na podczerwień, Arduino, ESP8266, 433 ...
  • Podłączanie czujników analogowych do Arduino, czytanie czujników

  •  
     
    Komentarze:

    # 1 napisał: Electromag | [cytat]

     
     

    Jaką literaturę dotyczącą studiowania kodu programowania polecasz?

     
    Komentarze:

    # 2 napisał: Andrey | [cytat]

     
     

    ElectromagUlli Sommer. Programowanie płytki mikrokontrolera Arduino / Freeduino, autor: Jeremy Bloom. Studiujemy Arduino. Narzędzia i techniki magii technicznej, John Boxell. Studiujemy Arduino. 65 projektów zrób to sam. Książki o Arduino na temat ozonu: e.imadeself.com/arduino_books.php

     
    Komentarze:

    # 3 napisał: Victor | [cytat]

     
     

    Bardzo ciekawy i ekscytujący materiał, dzięki!

     
    Komentarze:

    # 4 napisał: Ural | [cytat]

     
     

    Dzięki za informację, funkcja „mapy” była bardzo przydatna, zastanawiałem się, jak się poruszać, dopiero zaczynam uczyć się zabawek na Arduino.

     
    Komentarze:

    # 5 napisał: Dima | [cytat]

     
     

    Coś, czego nie znalazłem dla osłon arduino do udostępniania na mil-std-1553b, chociaż dla magistrali Comp - hałdy, bardzo popularny interfejs. Poke, gdzie można wyszukiwać-kupować.

    p.s. data artykułu nie jest wyświetlana - może ona ma 10 lat i nie powinna już pisać komentarzy?

     
    Komentarze:

    # 6 napisał: Eremino | [cytat]

     
     

    Jak zrobić repeater sygnału wejściowego na Arduino dla 4 lub dowolnej liczby wyjść.

    Podobnie zrobić z 4 kanałami wejściowymi do 16 kanałów wyjściowych. W takim przypadku należy przełączyć wejście na dowolne 4 wyjścia jednocześnie na każdym kanale wejściowym.

     
    Komentarze:

    # 7 napisał: Oleg | [cytat]

     
     

    Chłopaki, powiedz mi, gdzie nauczyłeś się programować? Przejrzałem wiele informacji i nikt nie napisał jasno. Tutaj wszystkie informacje nie są dla początkujących, naprawdę wiele nie jest jasne, niedopowiedzenia. Napisano wiele słów, o których nie ma słowa, na przykład autor pisze, na początku musisz zadeklarować bibliotekę i wpisać #include biblioteka.h; // ale o tym słowie nic nie napisał #włącz, dlaczego można to wszystko zrozumieć. Już mi brakuje cierpliwości, nikt nie potrafi normalnie wytłumaczyć i wyjaśnić, więc co by się tu stało, trzeba to napisać. Cóż, oczywiście jest zero, ale staram się czytać, nie widzę nic niezrozumiale, co niewiele wyjaśnia niepotrzebne. I mogę powiedzieć, że nie jestem głupim głupcem, mogę naprawić prawie każdą elektronikę, to znaczy, jestem przyjaciółmi z moją głową, ale nie rozumiem tego, ponieważ piszą ci, którzy wiedzą, ale zapomnieli o niuansach, gdy sami się w nie zagłębili.