Arduino - Đọc điện áp tương tự
Ví dụ này sẽ chỉ cho bạn cách đọc đầu vào tương tự trên chân tương tự 0. Đầu vào được chuyển đổi từ analogRead () thành điện áp và được in ra màn hình nối tiếp của Phần mềm Arduino (IDE).
Thành phần bắt buộc
Bạn sẽ cần các thành phần sau:
- 1 × Breadboard
- 1 × Arduino Uno R3
- Biến trở 1 × 5K (chiết áp)
- 2 × Jumper
Thủ tục
Làm theo sơ đồ mạch và nối các thành phần trên breadboard như trong hình dưới đây.
Chiết áp
Chiết áp (hoặc nồi) là một bộ chuyển đổi cơ điện đơn giản. Nó chuyển đổi chuyển động quay hoặc chuyển động thẳng từ người điều khiển đầu vào thành sự thay đổi của điện trở. Thay đổi này (hoặc có thể) được sử dụng để kiểm soát mọi thứ từ âm lượng của hệ thống hi-fi đến hướng của một con tàu container khổng lồ.
Cái nồi như chúng ta biết ban đầu được biết đến như một bộ biến trở (về cơ bản là một điện trở vặn dây có thể thay đổi). Sự đa dạng của các loại chậu có sẵn hiện nay khá đáng kinh ngạc và có thể rất khó khăn cho người mới bắt đầu (đặc biệt) để tìm ra loại nào phù hợp cho một nhiệm vụ nhất định. Một vài loại nồi khác nhau, tất cả đều có thể được sử dụng cho cùng một nhiệm vụ khiến công việc trở nên khó khăn hơn.
Hình ảnh bên trái cho thấy biểu tượng sơ đồ tiêu chuẩn của một cái chậu. Hình ảnh bên phải là chiết áp.
Phác thảo
Mở phần mềm Arduino IDE trên máy tính của bạn. Mã hóa bằng ngôn ngữ Arduino sẽ điều khiển mạch của bạn. Mở một tệp phác thảo mới bằng cách nhấp vào Mới.
Mã 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);
}
Mã cần lưu ý
Trong chương trình hoặc bản phác thảo dưới đây, điều đầu tiên bạn làm trong chức năng thiết lập là bắt đầu giao tiếp nối tiếp, với tốc độ 9600 bit mỗi giây, giữa bo mạch và máy tính của bạn với đường dây -
Serial.begin(9600);
Trong vòng lặp chính của mã, bạn cần thiết lập một biến để lưu trữ giá trị điện trở (giá trị này sẽ nằm trong khoảng từ 0 đến 1023, hoàn hảo cho kiểu dữ liệu int) đến từ chiết áp của bạn -
int sensorValue = analogRead(A0);
Để thay đổi các giá trị từ 0-1023 thành một dải tương ứng với điện áp, chân đang đọc, bạn cần tạo một biến khác, một float và thực hiện một phép tính nhỏ. Để chia tỷ lệ các số từ 0,0 đến 5,0, hãy chia 5,0 cho 1023,0 và nhân nó với sensorValue -
float voltage= sensorValue * (5.0 / 1023.0);
Cuối cùng, bạn cần in thông tin này vào cửa sổ nối tiếp của mình. Bạn có thể thực hiện việc này bằng lệnh Serial.println () trong dòng mã cuối cùng của mình -
Serial.println(voltage)
Bây giờ, mở Serial Monitor trong Arduino IDE bằng cách nhấp vào biểu tượng ở phía bên phải của thanh màu xanh lá cây trên cùng hoặc nhấn Ctrl + Shift + M.
Kết quả
Bạn sẽ thấy một dòng số ổn định trong khoảng từ 0,0 - 5,0. Khi bạn xoay nồi, các giá trị sẽ thay đổi, tương ứng với điện áp tại chân A0.