B3 – Đọc mức điện áp đầu vào (Read analog input)

Ta sẽ đọc giá trị tại một đầu vào tương tự, chuyển sang mức điện áp bằng biến đổi ADC. Sau đó gửi kết quả về máy tính.

hoặc dùng biến trở

  • Quang trở có giá trị rất lớn khi trong tối và điện trở nhỏ khi được chiếu sáng
  • Dùng kèm 1 điện trở khoảng 1K Ohm
  • Đối với mạch dùng biến trở, chân giữa của biến trở sẽ thay đổi giá trị từ 0 đến cực đại ( ghi sau lưng biến trở) khi xoay núm.

Vì ADC của bo UNO cho phép tạo giá trị 10bit, tương đương 1024 bậc nên ta cần lưu nó với biến đủ lớn

int sensorValue = analogRead(A0);

Để hiển thị giá trị dưới dạng điện áp từ 0,0V đến 5,0V thì cần biến đổi giá trị đọc được

float voltage= sensorValue * (5.0 / 1023.0);

Chú ý rằng giá trị đọc được ở dạng nguyên nên dùng biến int , trong khi đó hiển thị ở dạng thập phân nên phải dùng biến float

/*
  ReadAnalogVoltage
  Đọc giá trị tại chân 0, chuyển sang mức điện áp, gửi kết quả
về máy tính và hiển thị bằng đồ thị nhờ công cụ có sẵn
(Tools > Serial Plotter menu)
 
Có thể thay quang trở bằng biến trở và đọc giá trị tại chân giữa..

  This example code is in the public domain.
*/

// the setup routine runs once when you press reset:
void setup() {
  // khởi tạo tốc độ truyền về máy tính 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // đọc giá trị tại chân 0:
  int sensorValue = analogRead(A0);
  // chuyển giá trị từ dạng tương tự (0 - 1023) sang điện áp (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // hiển thị trên máy tính:
  Serial.println(voltage);
}

Leave a Reply

Your email address will not be published. Required fields are marked *