Teach Pelajaran dengan makmal jarak jauh

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.

  • Arduino Board (code)
  • 35 min
  • Sekolah menengah rendah / pelajaran awal pengaturcaraan fizikal
  • Bahasa Melayu
  • Embedded systems
Arduino Board (code)
Arduino Board (code) ยท Butiran makmal

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.

1

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...

2

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);
}
  1. Buka makmal dan cari potensiometer 1.

  2. Muat naik atur cara.

  3. Uji potensiometer berhampiran nilai minimum, di tengah dan berhampiran nilai maksimum.

  4. Tukar julat 100, 1200 kepada 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.

3

Hubungkan nombor dengan kesannya

8 min

Huraikan perkara yang anda perhatikan apabila potensiometer diputar. Apakah julat tempoh menunggu yang anda pilih, dan mengapa?