Tuesday, September 16, 2014

Đọc tín hiệu điện áp

Đọc tín hiệu Analog voltages

Ví dụ này chỉ cho các bạn cách đọc tín hiệu xung vào chân 0, chuyển đổi tín hiệu từ analogRead sang volt, và xuất dữ liệu ra ngoài màn hình.
Yêu cầu phần cứng
  • Mạch Arduino Board
  • Biến trở
  • a variable resistor, like a potentiometer

Sơ đồ lắp mạch

hình ảnh sử dụng Fritzing. Các vị dụ khác, truy cập trang Fritzing project page
Nối ba dây từ biến trở đến mạch Arduino
Dây thứ nhất bên ngoài của biến trở đi đến chân Gnd, chân ngoài cùng còn lại đi vào chân 5V, chân thứ 3 đi vào chân nhập tín hiệu analog số 2.
Bằng cách vặn trục của biến trở, bạn có thể thay đổi được điện trở của nó. Sẹ thay đổi này dẫn đến sự thay đổi điện áp của chân thứ 3 (chân giữa). Điện áp này nằm trong khoảng từ 0-5V. 
Tín hiệu đọc được từ chân giữa của biến trở là tín hiệu xung analog voltage.
Bên trong của Arduino có mạch chuyển đổi từ tín hiệu xung sang tín hiệu số để đọc sự thay đổi điện áp này và chuyển đổi sang tín hiệu số từ 0-1023.
Khi chúng ta xoay theo cùng chiều kim đồng hồ đến vị trí không thể xoay được nữa, có một điện áp 0V đi đến chân 2 và giá trị là 0. Khi chúng ta quay theo chiều ngược lại đến lúc không xoay được nữa thì tại đó có điện áp 5V tại chân 2 và giá trị là 1023.
Sơ đồ

Code

Trong chương trình dưới đây, điều đầu tiên các bạn cần làm đó là tạo hàm đọc và truyền dữ liệu là 9600bits/s bằng dòng code sau:
Serial.begin(9600);
Tiếp theo, trong Main loop, các bạn cần tạo hàm đọc giá trị điện trở tại chân A0 với dòng code
int sensorValue = analogRead(A0);
Để thay đếm được giá trị từ 0-1023 quy về điện áp chúng ta sử dụng hàm float
float voltage= sensorValue * (5.0 / 1023.0);
Cuối cùng cần chúng ta xuất tín hiệu đọc được ra màn hình window bằng hàm
Serial.println(voltage)
Bây giờ khi mở Serial Monitor trong môi trường Arduino, các bạn có thể nhìn thấy giá trị điện áp từ 0-5V khi chúng ta xoay trục biến trở.
/*
  Đọc tín hiệu điện áp
  Đọc tín hiệu xung vào chân 0 và chuyển đổi sang điện áp sau đó xuất kết quả ra màn hình
  Nối chân giữa của biến trở tới chân A0, hai chân còn lại nối với chân 5V và Gnd.
 
 */


// Chương trình như sau:
void setup() {
  // Đặt kết nối cho Arduino 9600 bits trên giây:
  Serial.begin(9600);
}

// Vòng lặp chính, làm cho chương trình chạy liên tục:
void loop() {
  // Đọc tín hiệu analog từ chân A0:
  int sensorValue = analogRead(A0);
  // Chuyển đổi tín hiệu đọc được:
  float voltage = sensorValue * (5.0 / 1023.0);
  // Xuất ra ngoài màn hình:
  Serial.println(voltage);
}

0 comments:

Post a Comment