Arduino UNO mendukung operasi input dan output analog, memungkinkan Anda untuk berinteraksi dengan sensor dan aktuator yang membutuhkan nilai yang tepat. Operasi analog sangat penting untuk mengendalikan perangkat seperti LED, motor, dan input membaca dari sensor seperti potensiometer atau sensor cahaya. Tutorial ini akan memandu Anda melalui pengaturan, membaca dan menulis analog, dan menggunakan operasi logika seperti if
pernyataan dengan data analog.
Apa yang Anda Butuhkan
- Arduino Uno dengan kabel USB
- Potensiometer (atau resistor variabel apa pun) untuk input analog
- LED dan resistor 220-OHM untuk output analog
- Papan tempat memotong papan dan kabel jumper
- Komputer dengan IDE Arduino diinstal
Langkah 1: Memahami pin analog di Arduino
Arduino UNO memiliki enam pin input analog (A0-A5) yang dapat membaca tegangan antara 0 dan 5V dan mengubahnya menjadi nilai digital antara 0 dan 1023. Untuk output analog, Arduino menggunakan PWM (modulasi lebar pulsa) pada pin digital tertentu) ditandai dengan ~
(mis., 3, 5, 6, 9, 10, 11).
Fungsi digunakan
-
Input Analog:
analogRead(pin)
- Membaca tegangan (0-5V) dan mengembalikan nilai antara 0 dan 1023.
-
Output Analog:
analogWrite(pin, value)
- Mengeluarkan sinyal PWM di mana
value
berkisar dari 0 (siklus tugas 0%) hingga 255 (siklus tugas 100%).
- Mengeluarkan sinyal PWM di mana
Langkah 2: Input analog kabel (potensiometer)
Hubungkan potensiometer ke pin analog Arduino:
Pin potensiometer | Koneksi Arduino |
---|---|
1 (pin akhir) | 5v |
2 (tengah/output) | A0 |
3 (end pin) | Gnd |
Langkah 3: Keluaran analog kabel (LED)
Hubungkan LED dengan resistor 220-OHM ke pin PWM Arduino (mis., Pin 9):
Pin LED | Koneksi Arduino |
---|---|
Kaki panjang (+) | Digital Pin 9 |
Kaki pendek (-) | Gnd |
Langkah 4: Membaca Input Analog
Gunakan analogRead()
Fungsi untuk membaca data dari potensiometer:
Contoh Kode: Membaca Input Analog
#define potPin A0 // Potentiometer connected to A0
void setup() {
Serial.begin(9600);
Serial.println("Analog Input Test");
}
void loop() {
int sensorValue = analogRead(potPin); // Read analog value
Serial.print("Sensor Value: ");
Serial.println(sensorValue);
delay(500); // Wait for half a second
}
Jalankan kode dan amati nilai potensiometer (0-1023) di monitor serial.
Langkah 5: Menulis output analog
Gunakan analogWrite()
Fungsi untuk mengontrol kecerahan LED:
Contoh kode: output analog ke LED
#define ledPin 9 // LED connected to pin 9
void setup() {
pinMode(ledPin, OUTPUT); // Set LED pin as output
}
void loop() {
for (int brightness = 0; brightness <= 255; brightness++) {
analogWrite(ledPin, brightness); // Increase brightness
delay(10);
}
for (int brightness = 255; brightness >= 0; brightness--) {
analogWrite(ledPin, brightness); // Decrease brightness
delay(10);
}
}
Langkah 6: Menggabungkan input dan output analog
Anda dapat menggunakan nilai input analog untuk mengontrol output, seperti menyesuaikan kecerahan LED berdasarkan posisi potensiometer.
Contoh Kode: Kontrol Potensiometer Kecerahan LED
#define potPin A0 // Potentiometer connected to A0
#define ledPin 9 // LED connected to pin 9
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(potPin); // Read potentiometer value
int brightness = map(sensorValue, 0, 1023, 0, 255); // Map to PWM range
analogWrite(ledPin, brightness); // Set LED brightness
Serial.print("Sensor Value: ");
Serial.print(sensorValue);
Serial.print(" -> Brightness: ");
Serial.println(brightness);
delay(100);
}
Langkah 7: Menggunakan if
Pernyataan dengan data analog
Anda dapat membuat kondisi menggunakan input analog untuk melakukan tindakan spesifik:
Contoh Kode: Kontrol Bersyarat
#define potPin A0 // Potentiometer connected to A0
#define ledPin 9 // LED connected to pin 9
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(potPin);
if (sensorValue > 512) {
analogWrite(ledPin, 255); // Full brightness if sensor value > 512
Serial.println("Bright!");
} else {
analogWrite(ledPin, 0); // Turn off LED otherwise
Serial.println("Off");
}
delay(500);
}
Aplikasi Baca/Tulis Analog
- Membaca Sensor Lingkungan (mis., Cahaya, suhu, kelembaban)
- Menyesuaikan kecepatan motor
- Mengontrol kecerahan LED
- Pemrosesan Sinyal Audio
- Membuat antarmuka pengguna berbasis analog
Pemecahan masalah
- Bacaan yang salah dari sensor: Pastikan kabel yang tepat dan verifikasi koneksi potensiometer.
- LED tidak menerangi: Konfirmasikan orientasi LED dan gunakan resistor untuk membatasi arus.
- Output tidak halus: Tambahkan penundaan kecil atau rata -rata nilai input untuk stabilitas.
Kesimpulan
Anda telah belajar cara melakukan operasi baca dan tulis analog menggunakan Arduino uno, peta nilai sensor ke output, dan menggunakan if
Pernyataan untuk logika bersyarat. Keterampilan ini sangat penting untuk menciptakan proyek yang responsif dan interaktif. Eksperimen lebih lanjut dengan mengintegrasikan sensor analog dan aktuator lainnya untuk memperluas kemampuan Anda!