W dzisiejszej części poradnika dowiemy się jak korzystać z przetwornika A/C (ADC) oraz pokażę parę prostych przykładów jego wykorzystania. Zapraszam ;)
Zanim na dobre zaczniemy tę część kursu to chciałbym zrobić wstęp, aby początkujący w temacie elektroniki się nie zgubili. W elektronice występują dwa pojęcia takie jak elektronika cyfrowa oraz elektronika analogowa. Elektronika cyfrowa mówiąc najprościej to jest odczyt „jedynek i zer”, czyli albo coś jest albo czegoś nie ma i nic poza tym nie istnieje. W poprzednich częściach kursu uczyliśmy się zapalać i gasić diody za pomocą przycisków- Jak przycisk był wciśnięty to diody się zapalały, a jak nie był wciśnięty to się nie zapalały i to był właśnie przykład elektroniki cyfrowej.
Natomiast elektronika analogowa pozwala nam odczyt „wartości zawartych pomiędzy zero i jeden”. Czyli na przykład jakbyśmy zamienili nasz przycisk tensometr to moglibyśmy odczytywać nie tylko zero i jeden, ale również z jaką siłą jest on wciskany (takie właśnie tensometry wykorzystywane są w kontrolerach od Playstation 2 wzwyż oraz od Xbox Original wzwyż, ale to taka ciekawostka). A przetwornik A/C pozwala nam połączyć te dwa światy, elektroniki analogowej i elektroniki cyfrowej, że przy pomocy np. potencjometru podłączonego do Arduino jesteśmy w stanie odczytać wartość napięcia występującego na nim oraz przy jego pomocy kontrolować prędkość kręcenia się wiatraka, świecenia diody itp.
Spis treści:
- Co to jest przetwornik A/C i jak działa
- Sposób odczytu danych z przetwornika A/C
- Przykłady wykorzystania przetwornika A/C
1. Co to jest przetwornik ADC i jak działa
Żeby za mocno się nie zagłębić w temat przetworników ADC czy też A/C to powiem w skrócie czym to jest i na jakiej zasadzie działa. Zatem przetwornik A/C to układ, który pozwala odczytać syngał analogowy; w tym przypadku wartość napięcia, gdzie w Arduino, wartość ta wynosi maksymalnie 5V (przy bezpośrednim podłączeniu sygnału do Arduino), a następnie przetworzyć go na sygnał cyfrowy w postaci zer i jedynek.
Dokładność przetwornika określa się rozdzielczością (ilością bitów) oraz czasem przetwarzania. Przetwornik w Arduino z mikrokontrolerem ATmega328 jest 10 bitowy co oznacza 210 co daje nam 1024 poziomów odczytu. Jeżeli podzielimy:
5V / 1024 poziomów = 0,00488V ~4,9mV
to wychodzi nam, że 1 poziom ma wartość 4,9mV, a na 1V przypada ~205 poziomów (204,8). Natomiast czas przetwarzania to 10 000 pomiarów na sekundę (1 pomiar = 0,0001s). Tyle teorii odnośnie przetwornika A/C.
2. Sposób odczytu danych z przetwornika A/C
Kanały przetwornika w Arduino znajdują się pod opisem „Analog In„.

Do pinów A0 – A5 podłączamy peryferia z których chcemy odczytać wartości „analogowe” czyli np. potencjometr, fotorezystor, tensometr itd.
Funkcja, która służy do odczytu wartości z przetwornika to analogRead(), którą mogliśmy już poznać w części 5. PWM. Zatem dla przypomnienia:
Aby odczytać wartość z A/C to używamy funkcji analogRead():
|
1 2 |
analogRead(pin); //pin - numer pinu/ alias |
Okej to przejdźmy zatem do praktyki. Stworzymy najprostszy program, gdzie zmieniać będziemy zmieniać wartość potencjometra, która to z kolei będzie wysyłana po UART.

|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
int potencjometr = A0; int war = 0; void setup() { pinMode(potencjometr, INPUT); Serial.begin(9600); } void loop() { war = analogRead(potencjometr); Serial.print("Wartosc A/C: "); Serial.println(war); delay(200); } |
Na początku tworzymy alias naszego pinu od przetwornika A/C o nazwie „potencjometr” oraz zmienną „war„, w której będziemy przechowywać naszą wartość z przetwornika. Następnie ustawiamy pin potencjometra jako wejście oraz prędkość transmisji UART na 9600 baud dla łatwiejszego odczytu danych.
W pętli głównej programu przypisujemy zmiennej „war” odczyt danych z potencjometru podłączonego do pinu A0, Następnie po UART wysyłamy napis „Wartosc A/C: „, a następnie po niej wartość naszego potencjometru po czym odczekujemy 200ms. Po wgraniu programu, otwieramy monitor portu szeregowego, oraz kręcimy potencjometrem.
