Pelajaran Teach
Arduino asas 3/4: kawal kelajuan dengan potensiometer
Baca potensiometer pada Arduino Uno sebenar dan petakan input itu untuk mengawal kadar kelipan LED.
Kali pertama menggunakan LabsLand? Cipta akaun guru anda
Hasil pembelajaran
Membaca potensiometer dengan
analogRead.Membezakan julat teori ADC daripada julat praktikal potensiometer.
Menggunakan
map()untuk menukar bacaan kepada tindakan yang boleh dilihat.
Pratonton aktiviti pelajar
Kandungan aktiviti
Pratonton sahaja. Dalam sesi kelas, pelajar boleh mengisi jawapan dan menyerahkan hasil kerja mereka kepada guru.
Daripada dunia fizikal kepada nombor
9 min
Potensiometer berfungsi seperti tombol putar. Penukar analog kepada digital lalai Arduino Uno mewakili 0 hingga 5 V dengan nilai 0 hingga 1023. Potensiometer makmal ini membekalkan 0 hingga 3.3 V, jadi julat bacaan yang berguna ialah kira-kira 0 hingga 675. Kod mengehadkan variasi kecil dalam pengukuran dan memetakan julat praktikal itu kepada kadar kelipan LED 1:
const int potMaxReading = 675;
int reading = analogRead(A0);
int calibratedReading = constrain(reading, 0, potMaxReading);
int waitTime = map(calibratedReading, 0, potMaxReading, 100, 1200);
delay(waitTime);
Pemetaan menukar bacaan berhampiran 0 kepada tempoh menunggu hampir 100 ms dan bacaan berhampiran nilai maksimum makmal kepada tempoh menunggu hampir 1200 ms.
Berdasarkan petikan itu, jika analogRead(A0) mengembalikan nombor yang kecil, tempoh menunggu akan menjadi...
Jadikan tombol mengawal LED
18 min
Muat naik atur cara. Putar potensiometer 1 dan perhatikan perubahan kelipan. Kemudian, tukar julat 100, 1200 kepada nilai lain: sebagai contoh, cuba tempoh menunggu maksimum yang lebih kecil jika anda tidak mahu LED berkelip terlalu perlahan.
const int pot1 = A0;
const int led1 = 8;
const int potMaxReading = 675;
void setup() {
pinMode(led1, OUTPUT);
}
void loop() {
int reading = analogRead(pot1);
int calibratedReading = constrain(reading, 0, potMaxReading);
int waitTime = map(calibratedReading, 0, potMaxReading, 100, 1200);
digitalWrite(led1, HIGH);
delay(waitTime);
digitalWrite(led1, LOW);
delay(waitTime);
}Buka makmal dan cari potensiometer 1.
Muat naik atur cara.
Uji potensiometer berhampiran nilai minimum, di tengah dan berhampiran nilai maksimum.
Tukar julat
100, 1200kepada nilai lain dan uji sekali lagi.
Hantar kod anda
Tangkap kod dengan julat tempoh menunggu yang paling jelas bagi anda. Sebelum melampirkannya, simpan main.ino dalam persekitaran makmal. Tangkapan itu mesti menunjukkan atur cara yang benar-benar ingin anda serahkan untuk semakan guru.
Hubungkan nombor dengan kesannya
8 min
Huraikan perkara yang anda perhatikan apabila potensiometer diputar. Apakah julat tempoh menunggu yang anda pilih, dan mengapa?