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”.

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.

W sklepach krajowych na 2017 r. Jego cena wynosi około 4-5 dolarów. W nowoczesnych modelach Atmega328 jest jej sercem.
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.

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.
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
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.

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.

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.

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

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.

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ą.
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.

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.
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ń.

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.

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 electro-pl.tomathouse.com
: