Menu English Ukrainian Rosyjski Strona główna

Bezpłatna biblioteka techniczna dla hobbystów i profesjonalistów Bezpłatna biblioteka techniczna


ENCYKLOPEDIA RADIOELEKTRONIKI I INŻYNIERII ELEKTRYCZNEJ
Darmowa biblioteka / Schematy urządzeń radioelektronicznych i elektrycznych

Arduino. Operacje wejścia-wyjścia analogowego, praca z dźwiękiem. Encyklopedia elektroniki radiowej i elektrotechniki

Bezpłatna biblioteka techniczna

Encyklopedia radioelektroniki i elektrotechniki / Projektant radioamatorów

Komentarze do artykułu Komentarze do artykułu

Chociaż cyfrowe operacje I/O pozwalają rozwiązywać szeroki zakres zadań, to jednak obecność zintegrowanego przetwornika analogowo-cyfrowego (ADC) w mikrokontrolerze płytki Arduino oraz możliwość wyprowadzania sygnałów analogowych z wykorzystaniem szerokości impulsu modulację (PWM) zapewniają pracę z czujnikami analogowymi oraz wszelkiego rodzaju elementami wykonawczymi, oddziałującymi na obiekt proporcjonalnie do sygnału sterującego.

Ściśle mówiąc, w trybie wyjściowym wszystkie linie portu Arduino mogą przesyłać tylko sygnały dyskretne, które mają tylko dwa stany. Ale mikrokontroler jest w stanie bardzo szybko zmieniać te stany, generując prostokątne impulsy. Jeśli zastosujesz te impulsy do dowolnego urządzenia, które ma właściwości bezwładnościowe, to będzie się zachowywać tak, jakby przyłożone do niego napięcie było stałe, równe średniej wartości impulsu i zmieniało się płynnie, a nie przeskakiwało między wysokimi i niskimi poziomami logicznymi.

W trybie PWM port generuje sygnał impulsowy o stałej częstotliwości i zmiennym współczynniku wypełnienia (jest to stosunek okresu powtarzania impulsów do czasu ich trwania). Często zamiast cyklu pracy działają z jego odwrotnością - cyklem pracy, który można zmienić od 0 (brak impulsów) do 100% (impulsy następują, łączą się, bez przerw). Dlatego, chociaż napięcie wyjściowe jest w danym momencie wysokie lub niskie, jego średnia wartość jest proporcjonalna do cyklu pracy. Jeśli podłączysz zwykły multimetr do tego wyjścia, pokaże on tę wartość (oczywiście, jeśli częstotliwość pulsowania jest wystarczająco wysoka).

W Arduino UNO wyjścia D3, D5, D6, D9, D10 i D11 mogą pracować w trybie PWM. Zwykle na płytce są one oznaczone znakami „~” lub skrótami „PWM”. Należy zauważyć, że płytki Arduino innych modyfikacji mogą mieć mniej lub więcej takich wyjść.

W najprostszym przypadku PWM można wykorzystać do sterowania jasnością diody LED. To urządzenie jest praktycznie bezwładnościowe, ale ludzki wzrok ma na tyle bezwładności, że sekwencja szybkich błysków diody LED jest postrzegana jako ciągłe świecenie o jasności zależnej od współczynnika wypełnienia.

Wyjścia cyfrowe obsługujące PWM są domyślnie skonfigurowane do korzystania z tego trybu, więc nie trzeba wywoływać funkcji pinMode(), aby działały w tym trybie. Aby ustawić cykl pracy sygnału PWM, istnieje standardowa funkcja analogWrite(N, M), gdzie N to numer pinu, M to liczba proporcjonalna do wymaganego cyklu pracy. Musi mieścić się w zakresie od 0 do 255, gdzie 0 oznacza zerowy cykl pracy (stała niska moc wyjściowa), a 255 oznacza 100% cykl pracy (stała wysoka moc wyjściowa). Schematy czasowe napięcia wyjściowego dla niektórych wartości M i odpowiednio cyklu pracy Kz pokazano na ryc. 1.

Arduino. Operacje analogowych wejść/wyjść, operacje audio
Ryż. 1. Wykresy czasowe napięcia wyjściowego

Rozważmy na przykład tabelę podaną w tabeli. 1 program, który stopniowo zwiększa jasność diody podłączonej do wyjścia cyfrowego D9, a następnie stopniowo ją zmniejsza. Opiera się na przykładowym przykładzie 3.AnalogFading dostarczonym z Arduino IDE. Wyliczenie wartości współczynnika wypełnienia impulsu realizowane jest tutaj za pomocą operatorów pętli for rozważanych już w [1].

1 stołowy.

Arduino. Operacje analogowych wejść/wyjść, operacje audio

Do odbioru sygnałów analogowych z urządzeń zewnętrznych Arduino wykorzystuje wejścia A0-A5, które domyślnie ustawione są na żądany stan, więc nie jest wymagana dodatkowa inicjalizacja. Przetwornik ADC wbudowany w Arduino UNO generuje 10-bitowe kody binarne i konwertuje napięcie wejściowe w zakresie od 0 do +5 V na liczbę całkowitą od 0 do 1023 (210-1).

Do odczytania wyniku konwersji służy funkcja analogRead(N), gdzie N to numer wejścia analogowego.

Do wejść analogowych Arduino można podłączyć różnorodne czujniki, których napięcie wyjściowe jest proporcjonalne do mierzonej wartości (rezystory zmienne, termistory, fotorezystory itp.). Należy jednak pamiętać, że na wejście analogowe można podać tylko od 0 do +5 V. Jeżeli napięcie wyjściowe czujnika leży w innym przedziale lub ma ujemną polaryzację, sygnał należy najpierw umieścić w określonym przedziale . Wejście analogowe jest odpytywane z częstotliwością mniejszą niż 10 kHz [2], co może nie być wystarczające do analizy niektórych szybko zmieniających się sygnałów.

Obecność wejść analogowych pozwala zamienić Arduino w prosty woltomierz cyfrowy, który mierzy stałe napięcie od 0 do +5 V i przesyła wynik pomiaru do komputera. W tym celu wystarczy pobrać do Arduino program pokazany w tabeli 2. XNUMX.

Tabela 2

Arduino. Operacje analogowych wejść/wyjść, operacje audio

Należy pamiętać, że stałymi w programie są napięcie odniesienia ADC Uref (w miliwoltach) oraz współczynnik konwersji kodu wyjściowego ADC na napięcie Ku. Wartość współczynnika oblicza się dzieląc podane napięcie odniesienia przez 1023. Współczynnik jest zwykle ułamkiem, więc stała Ki jest typu float (liczba zmiennoprzecinkowa). Stała Uref ma ten sam typ do prawidłowego obliczenia współczynnika. Ponieważ po prawej stronie formuły znajdują się tylko stałe, to nie mikrokontroler oblicza współczynnik podczas wykonywania programu, ale sam kompilator na etapie jego translacji.

Wszystko to pozwala zwiększyć dokładność woltomierza poprzez zmierzenie multimetrem dokładnej wartości napięcia odniesienia na pin Uref płytki Arduino i wpisanie jej do programu poprzez przypisanie stałej Uref. Inne sposoby poprawy dokładności konwersji analogowo-cyfrowej można znaleźć w [3, 4].

Gdy program jest uruchomiony, na płytce miga dioda TX, sygnalizując przesyłanie informacji przez port szeregowy. Dioda LED RX jest wyłączona, ponieważ komputer nie wysyła niczego w odpowiedzi. Wbudowany terminal Arduino IDE wyświetla odebrane informacje (rys. 2) - wyniki pomiaru napięcia baterii galwanicznej 3332.

Arduino. Operacje analogowych wejść/wyjść, operacje audio
Ryż. 2. Okno programu

Arduino może dawać nie tylko sygnały świetlne, ale także dźwiękowe. W tym celu do jednego z jego wyjść należy podłączyć emiter dźwięku piezoelektrycznego, np. ZP-1 (rys. 3).

Arduino. Operacje analogowych wejść/wyjść, operacje audio
Ryż. 3. Podłączanie emitera dźwięku piezo

Do pracy z dźwiękiem przewidziano specjalny ton funkcyjny (N, F, T), gdzie N to numer pinu, na którym będą generowane prostokątne impulsy; F - częstotliwość dźwięku, Hz; T - czas trwania dźwięku, ms. Ostatni parametr jest opcjonalny. W przypadku jego braku dźwięk będzie ciągły. Aby go wyłączyć, dostępna jest funkcja noTone(N).

Oczywiście piezoceramicznego emitera dźwięku trudno nazwać wysokiej jakości urządzeniem odtwarzającym, a sygnał generowany przez mikrokontroler ma kształt prostokąta, niemniej jednak korzystanie z tych funkcji pozwala na odtwarzanie prostych melodii. Przykład podano w tabeli. 3. To jest nieco zmodyfikowany przykład 02. Cyfrowy program oneMelody dołączony do Arduino IDE. Ponieważ ręczne ustawianie częstotliwości każdej nuty melodii jest niewygodne, plik pitches.h jest dołączany do programu w jego nagłówku za pomocą dyrektywy #include. Operacja ta jest równoznaczna z włączeniem do programu pełnego tekstu tego pliku. W tym przypadku zawiera listę nazw nut, które można odtwarzać, oraz ich częstotliwości.

Tabela 3

Arduino. Operacje analogowych wejść/wyjść, operacje audio

Emiter dźwięku musi być podłączony do wyjścia D8.

Dla programu melodia jest ciągiem stałych tego samego typu (wartości częstotliwości), które są wygodnie łączone w tablicę - ponumerowaną listę podobnych elementów. Deklarując tablicę, musisz albo wyliczyć wszystkie jej elementy, albo podać ich całkowitą liczbę. Należy zauważyć, że numeracja elementów tablicy zawsze zaczyna się od zera.

W tym przykładzie użyto dwóch tablic: int melody[] zawiera nazwy nut melodii, int note Durations[] - czas ich trwania w milisekundach. Aby uzyskać dostęp do elementu tablicy, należy podać jego nazwę z numerem kolejnym ujętym w nawiasy kwadratowe. Aby móc łatwo zmienić liczbę nut w melodii, jest ona obliczana za pomocą funkcji sizeof(V), które zwracają liczbę bajtów zajmowanych przez jej argument (zmienną lub ich tablicę) w pamięci mikrokontrolera. W tym przypadku tablica melodii ma długość 16 bajtów, a jej elementy int mają długość dwóch bajtów. W związku z tym zmienna Note przyjmuje wartość 8 i tyle razy powtórzy się ciało pętli for, odtwarzając nuty jedna po drugiej.

Jeśli dodasz kilka nut do tablicy melody[], wartość nuty odpowiednio się zmieni. Pamiętaj tylko, aby wypełnić tablicę noteDurations[] czasem trwania tych nut.

Ponieważ melodia jest odtwarzana raz, wszystkie niezbędne do tego operacje są umieszczane w funkcji setup().

Aby ponownie wykonać, należy zresetować mikrokontroler, naciskając przycisk RESET na płytce Arduino.

Omówione w artykule programy dla Arduino można pobrać z ftp://ftp.radio.ru/pub/2016/09/aninout.zip.

literatura

  1. Lekomcew D. Arduino. Cyfrowe operacje wejścia/wyjścia. - Radio, 2016, nr 8, s. 51-54.
  2. Pomiary analogowe z Arduino. - URL: robotosha.ru/arduino/analog-measurements-arduino.html.
  3. Odniesienie do języka Arduino. Analogowe wejścia/wyjścia — analogReference(). - Adres URL: arduino.cc/en/Reference/AnalogReference.
  4. funkcja analogReference(). - Adres URL: arduino.ru/Reference/AnalogReference.

Autor: D. Lekomtsev

Zobacz inne artykuły Sekcja Projektant radioamatorów.

Czytaj i pisz przydatne komentarze do tego artykułu.

<< Wstecz

Najnowsze wiadomości o nauce i technologii, nowa elektronika:

Nowy sposób kontrolowania i manipulowania sygnałami optycznymi 05.05.2024

Współczesny świat nauki i technologii rozwija się dynamicznie i każdego dnia pojawiają się nowe metody i technologie, które otwierają przed nami nowe perspektywy w różnych dziedzinach. Jedną z takich innowacji jest opracowanie przez niemieckich naukowców nowego sposobu sterowania sygnałami optycznymi, co może doprowadzić do znacznego postępu w dziedzinie fotoniki. Niedawne badania pozwoliły niemieckim naukowcom stworzyć przestrajalną płytkę falową wewnątrz falowodu ze stopionej krzemionki. Metoda ta, bazująca na zastosowaniu warstwy ciekłokrystalicznej, pozwala na efektywną zmianę polaryzacji światła przechodzącego przez falowód. Ten przełom technologiczny otwiera nowe perspektywy rozwoju kompaktowych i wydajnych urządzeń fotonicznych zdolnych do przetwarzania dużych ilości danych. Elektrooptyczna kontrola polaryzacji zapewniona dzięki nowej metodzie może stanowić podstawę dla nowej klasy zintegrowanych urządzeń fotonicznych. Otwiera to ogromne możliwości dla ... >>

Klawiatura Primium Seneca 05.05.2024

Klawiatury są integralną częścią naszej codziennej pracy przy komputerze. Jednak jednym z głównych problemów, z jakimi borykają się użytkownicy, jest hałas, szczególnie w przypadku modeli premium. Ale dzięki nowej klawiaturze Seneca firmy Norbauer & Co może się to zmienić. Seneca to nie tylko klawiatura, to wynik pięciu lat prac rozwojowych nad stworzeniem idealnego urządzenia. Każdy aspekt tej klawiatury, od właściwości akustycznych po właściwości mechaniczne, został starannie przemyślany i wyważony. Jedną z kluczowych cech Seneki są ciche stabilizatory, które rozwiązują problem hałasu typowy dla wielu klawiatur. Ponadto klawiatura obsługuje różne szerokości klawiszy, dzięki czemu jest wygodna dla każdego użytkownika. Chociaż Seneca nie jest jeszcze dostępna w sprzedaży, jej premiera zaplanowana jest na późne lato. Seneca firmy Norbauer & Co reprezentuje nowe standardy w projektowaniu klawiatur. Jej ... >>

Otwarto najwyższe obserwatorium astronomiczne na świecie 04.05.2024

Odkrywanie kosmosu i jego tajemnic to zadanie, które przyciąga uwagę astronomów z całego świata. Na świeżym powietrzu wysokich gór, z dala od miejskiego zanieczyszczenia światłem, gwiazdy i planety z większą wyrazistością odkrywają swoje tajemnice. Nowa karta w historii astronomii otwiera się wraz z otwarciem najwyższego na świecie obserwatorium astronomicznego - Obserwatorium Atacama na Uniwersytecie Tokijskim. Obserwatorium Atacama, położone na wysokości 5640 metrów nad poziomem morza, otwiera przed astronomami nowe możliwości w badaniu kosmosu. Miejsce to stało się najwyżej położonym miejscem dla teleskopu naziemnego, zapewniając badaczom unikalne narzędzie do badania fal podczerwonych we Wszechświecie. Chociaż lokalizacja na dużej wysokości zapewnia czystsze niebo i mniej zakłóceń ze strony atmosfery, budowa obserwatorium na wysokiej górze stwarza ogromne trudności i wyzwania. Jednak pomimo trudności nowe obserwatorium otwiera przed astronomami szerokie perspektywy badawcze. ... >>

Przypadkowe wiadomości z Archiwum

Odyseusz nie mieszkał w Itace 09.03.2006

Przez ostatnie trzy tysiące lat dokładna lokalizacja miejsca narodzin Odyseusza - Itaki pozostawała tajemnicą.

Istnieje grecka wyspa o tej nazwie, ale żadna z jej cech nie pasuje do opisów Homera. To doprowadziło wielu historyków do przekonania, że ​​cała historia powrotu Odyseusza do domu jest tylko poetycką fikcją.

Ostatnio jednak brytyjski biznesmen Robert Beatlestone, który lubi twórczość Homera, odnalazł, jak sądzi, miejsce, w którym znajdował się pałac Odyseusza. Beatlestone wykorzystał do tego wskazania dostępne w Odysei, a także dane geograficzne, archeologiczne i zdjęcia satelitarne.

Według archeologa-amatora pałac znajdował się na zachodnim wybrzeżu wyspy Kefalonia, najbliżej współczesnej Itaki, w pobliżu wsi Paliki. Najwyraźniej ten kawałek Kefalonii był kiedyś niezależną wyspą, ale po dużym trzęsieniu ziemi wąska cieśnina oddzielająca wyspę od Kefalonii została zapełniona.

Inne ciekawe wiadomości:

▪ Paliwo nanoelektryczne do nieskończonego ładowania baterii

▪ Odkurzacz automatyczny Samsung POWERbot VR7000

▪ E-book Amazon Kindle DX

▪ Stres nie jest niebezpieczny, ale reakcja na niego

▪ Słowa i ich emocjonalne zabarwienie

Wiadomości o nauce i technologii, nowa elektronika

 

Ciekawe materiały z bezpłatnej biblioteki technicznej:

▪ część serwisu Transport osobisty: lądowy, wodny, powietrzny. Wybór artykułu

▪ artykuł Oświetlenie jako element kręcenia wideo. sztuka wideo

▪ artykuł W jakim mieście prawie wszyscy mieszkańcy mieszkają w tym samym domu? Szczegółowa odpowiedź

▪ artykuł Zaciskanie pętli. Wskazówki podróżnicze

▪ artykuł Wzmacniacz-korektor do EPU ARKTUR-006-STEREO. Encyklopedia elektroniki radiowej i elektrotechniki

▪ artykuł Tranzystory polowe KP150 - KP640. Encyklopedia elektroniki radiowej i elektrotechniki

Zostaw swój komentarz do tego artykułu:

Imię i nazwisko:


Email opcjonalny):


komentarz:





Wszystkie języki tej strony

Strona główna | biblioteka | Artykuły | Mapa stony | Recenzje witryn

www.diagram.com.ua

www.diagram.com.ua
2000-2024