Analog I/O
Analog I/O trong Arduino
Arduino hỗ trợ các hàm đọc và ghi tín hiệu analog để giao tiếp với các cảm biến và thiết bị ngoại vi. Dưới đây là mô tả, giải thích và ví dụ về các hàm liên quan đến Analog I/O.
1. analogRead()
Mô tả:
- Đọc giá trị điện áp từ một chân analog (các chân được đánh dấu A0, A1,...).
- Giá trị trả về nằm trong khoảng từ 0 đến 1023 (mặc định), tương ứng với điện áp từ 0V đến 5V (hoặc 3.3V tùy vào board Arduino).
Cú pháp:
int analogRead(pin);
Giải thích:
pin
: Chân analog muốn đọc (A0, A1,...).
Ví dụ:
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(A0); // Đọc giá trị từ chân A0
Serial.println(sensorValue); // In giá trị đọc được
delay(500);
}
2. analogReadResolution()
Mô tả:
- Thiết lập độ phân giải (số bit) cho giá trị đọc từ chân analog.
Cú pháp:
analogReadResolution(bits);
Giải thích:
bits
: Số bit độ phân giải (mặc định là 10, tương ứng với giá trị 0–1023).
Ví dụ:
void setup() {
Serial.begin(9600);
analogReadResolution(12); // Thiết lập độ phân giải 12 bit (0–4095)
}
void loop() {
int sensorValue = analogRead(A0); // Đọc giá trị từ chân A0
Serial.println(sensorValue); // In giá trị đọc được
delay(500);
}
3. analogReference()
Mô tả:
- Chọn điện áp tham chiếu để sử dụng trong việc đọc tín hiệu analog.
Cú pháp:
analogReference(type);
Giải thích:
type
: Loại điện áp tham chiếu:DEFAULT
: Điện áp mặc định (5V hoặc 3.3V).INTERNAL
: Điện áp tham chiếu bên trong (1.1V cho một số board Arduino).EXTERNAL
: Điện áp tham chiếu từ chân AREF.
Ví dụ:
void setup() {
analogReference(DEFAULT); // Sử dụng điện áp tham chiếu mặc định
}
void loop() {}
4. analogWrite()
Mô tả:
- Gửi tín hiệu PWM (giả analog) đến một chân số hỗ trợ PWM (các chân có ký hiệu
~
).
Cú pháp:
analogWrite(pin, value);
Giải thích:
pin
: Chân PWM muốn ghi tín hiệu.value
: Giá trị từ 0 (0% PWM) đến 255 (100% PWM).
Ví dụ:
void setup() {
pinMode(9, OUTPUT); // Chân 9 là chân PWM
}
void loop() {
analogWrite(9, 128); // Gửi tín hiệu 50% PWM đến chân 9
delay(1000);
analogWrite(9, 255); // Gửi tín hiệu 100% PWM
delay(1000);
}
5. analogWriteResolution()
Mô tả:
- Thiết lập độ phân giải (số bit) cho tín hiệu PWM gửi đi.
Cú pháp:
analogWriteResolution(bits);
Giải thích:
bits
: Số bit độ phân giải (mặc định là 8, tương ứng với giá trị từ 0–255).
Ví dụ:
void setup() {
analogWriteResolution(10); // Thiết lập độ phân giải PWM là 10 bit (0–1023)
analogWrite(9, 512); // Gửi tín hiệu PWM 50%
}
void loop() {}
Tóm tắt bảng
Hàm | Mô tả | Ví dụ | Kết quả |
---|---|---|---|
analogRead() |
Đọc tín hiệu analog từ một chân analog. | analogRead(A0) |
Trả về giá trị từ 0–1023 (hoặc tùy độ phân giải). |
analogReadResolution() |
Thiết lập độ phân giải của tín hiệu đọc từ chân analog. | analogReadResolution(12) |
Đọc giá trị từ 0–4095 (12-bit). |
analogReference() |
Thiết lập điện áp tham chiếu cho tín hiệu analog. | analogReference(DEFAULT) |
Sử dụng điện áp mặc định (5V hoặc 3.3V). |
analogWrite() |
Gửi tín hiệu PWM đến một chân số hỗ trợ PWM. | analogWrite(9, 128) |
Tín hiệu PWM 50% (128/255). |
analogWriteResolution() |
Thiết lập độ phân giải của tín hiệu PWM. | analogWriteResolution(10) |
PWM giá trị từ 0–1023 (10-bit). |