Arduino - odczyt napięcia analogowego
Ten przykład pokaże, jak odczytać wejście analogowe na analogowym pinie 0. Wejście jest konwertowane z analogRead () na napięcie i drukowane na szeregowym monitorze oprogramowania Arduino (IDE).
Wymagane składniki
Będziesz potrzebował następujących komponentów -
- 1 × Breadboard
- 1 × Arduino Uno R3
- Rezystor zmienny 1 × 5K (potencjometr)
- 2 × sweter
Procedura
Postępuj zgodnie ze schematem obwodu i podłącz komponenty na płytce stykowej, jak pokazano na poniższym obrazku.
Potencjometr
Potencjometr (lub potencjometr) to prosty przetwornik elektromechaniczny. Przekształca ruch obrotowy lub liniowy od operatora wejściowego na zmianę oporu. Ta zmiana jest (lub może być) używana do kontrolowania wszystkiego, od głośności systemu hi-fi do kierunku ogromnego kontenerowca.
Potencjometr, jaki znamy, był pierwotnie znany jako reostat (zasadniczo zmienny rezystor drutowy). Różnorodność dostępnych garnków jest teraz dość zdumiewająca, a początkującemu (w szczególności) może być bardzo trudno zorientować się, który typ jest odpowiedni do danego zadania. Kilka różnych typów garnków, które można wykorzystać do tego samego zadania, utrudnia pracę.
Obraz po lewej stronie przedstawia standardowy schematyczny symbol garnka. Obraz po prawej stronie to potencjometr.
Naszkicować
Otwórz oprogramowanie Arduino IDE na swoim komputerze. Kodowanie w języku Arduino będzie sterować twoim obwodem. Otwórz nowy plik szkicu, klikając Nowy.
Kod Arduino
/*
ReadAnalogVoltage
Reads an analog input on pin 0, converts it to voltage,
and prints the result to the serial monitor.
Graphical representation is available using serial plotter (Tools > Serial Plotter menu)
Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
*/
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
// print out the value you read:
Serial.println(voltage);
}
Kod do uwagi
W programie lub szkicu podanym poniżej, pierwszą rzeczą, którą robisz w funkcji konfiguracji, jest rozpoczęcie komunikacji szeregowej z prędkością 9600 bitów na sekundę między płytą a komputerem za pomocą linii -
Serial.begin(9600);
W głównej pętli twojego kodu musisz ustalić zmienną do przechowywania wartości rezystancji (która będzie między 0 a 1023, idealna dla typu danych int) pochodzącej z twojego potencjometru -
int sensorValue = analogRead(A0);
Aby zmienić wartości z 0-1023 na zakres odpowiadający napięciu, które odczytuje pin, musisz utworzyć kolejną zmienną, pływak, i wykonać małe obliczenia. Aby przeskalować liczby w zakresie od 0,0 do 5,0, podziel 5,0 przez 1023,0 i pomnóż to przez wartość sensorValue -
float voltage= sensorValue * (5.0 / 1023.0);
Na koniec musisz wydrukować te informacje w oknie numeru seryjnego. Możesz to zrobić za pomocą polecenia Serial.println () w ostatniej linii kodu -
Serial.println(voltage)
Teraz otwórz Serial Monitor w Arduino IDE, klikając ikonę po prawej stronie górnego zielonego paska lub naciskając Ctrl + Shift + M.
Wynik
Zobaczysz stały strumień liczb z zakresu od 0,0 do 5,0. W miarę obracania potencjometru wartości będą się zmieniać, odpowiednio do napięcia na pinie A0.