Teach Pelajaran dengan makmal jarak jauh

Pelajaran Teach

Pengaturcaraan visual dengan Arduino sebenar (3/4): input dan keputusan

Murid menggunakan blok visual untuk membaca input, membuat keputusan berdasarkan nilai ambang dan mengesahkan tingkah laku LED pada papan Arduino sebenar.

  • Arduino Board (visual)
  • 55 min
  • Sekolah menengah rendah / Tingkatan 2–3
  • Bahasa Melayu
  • Embedded systems
Arduino Board (visual)
Arduino Board (visual) · Butiran makmal

Hasil pembelajaran

  • Membaca input dan memastikan nilainya berubah sebelum menentukan output.

  • Menggunakan syarat if / else dengan perbandingan dan nilai ambang.

  • Membezakan input digital dengan input analog melalui contoh sebenar.

Pratonton aktiviti pelajar

Kandungan aktiviti

Pratonton sahaja. Dalam sesi kelas, pelajar boleh mengisi jawapan dan menyerahkan hasil kerja mereka kepada guru.

1

Input, nilai ambang dan keputusan

10 min

Input ialah maklumat dari dunia luar yang dibaca oleh papan. Terdapat dua
jenis:
- Input digital: hanya mempunyai dua keadaan, seperti butang ditekan / tidak ditekan (atau HIGH / LOW).
- Input analog: mempunyai banyak nilai yang mungkin. Pada papan Arduino Uno, bacaan analog memberikan nombor antara 0 hingga 1023 (contohnya kedudukan potensiometer, iaitu tombol yang diputar).
Penderia ialah komponen yang menghasilkan salah satu bacaan tersebut.
Nilai ambang ialah nilai pemisah yang menukar bacaan analog (banyak nombor)
kepada keputusan ya/tidak. Contoh: "jika bacaan lebih besar atau sama dengan
500, nyalakan LED; jika tidak, padamkan LED." Dalam contoh ini, 500 ialah nilai
ambang.
Ingat struktur editor: Arduino run first berjalan sekali pada permulaan;
Arduino loop forever berulang tanpa henti. Bacaan input dan keputusan perlu
diletakkan dalam gelung supaya papan menyemak nilai berkali-kali.

Apakah maksud menggunakan nilai ambang 500 bagi bacaan analog yang berjulat dari 0 hingga 1023?

Nyatakan satu perbezaan antara input digital dengan input analog.

2

Baca dan semak input

16 min

Sebelum membuat keputusan, pastikan anda dapat membaca input dan nilainya berubah. Semakan ini penting: jika input tidak berubah, keputusan program juga
tidak akan berfungsi.

  1. Buka arduino-visual-board.

  2. Laluan utama (analog): dalam Input/Output, gunakan read analog pin# dan mulakan dengan pin A0.

  3. Untuk *melihat* bacaan, anda boleh menggunakan Comms secara pilihan: tambah Setup serial 9600 bps dan blok print yang mengandungi bacaan. Jika makmal tidak memaparkan output bersiri, itu tidak menjadi masalah: dalam langkah seterusnya anda akan menggunakan LED sebagai isyarat.

  4. Tekan Verify / compile dan Upload into device.

  5. Ubah input melalui kawalan makmal (putar potensiometer / gerakkan kawalan input) dan semak sama ada bacaan berubah.

  6. Jika bacaan tidak berubah apabila input digerakkan, cuba pin analog lain (A0 hingga A5) sehingga bacaan berubah. Ini mengesahkan pin yang membaca input anda.

Isi jadual dengan satu baris bagi setiap kedudukan input yang diuji. Gunakan
sekurang-kurangnya tiga baris: rendah, pertengahan dan tinggi; biarkan baris
tambahan kosong. Dalam setiap baris, rekod kedudukan input, pin yang digunakan,
bacaan atau kesan yang dapat dilihat, dan sama ada nilainya berubah apabila anda
menggerakkan input.

Kedudukan / keadaan input Pin yang digunakan Bacaan atau kesan yang diperhatikan Berubah apabila input digerakkan?
3

Buat keputusan

22 min

Sekarang, tambah syarat if / else daripada kategori Logic yang
menggunakan bacaan dan nilai ambang untuk menyalakan atau memadamkan LED terbina
dalam.

  1. Tambah blok if / else.

  2. Dalam syarat, bandingkan bacaan analog yang telah disahkan dengan nilai ambang, contohnya read analog pin# A0 500. Jika anda mengesahkan pin analog lain, gunakan pin itu dan bukannya A0.

  3. Di dalam ruang do (jika benar), letakkan set built-in LED kepada HIGH.

  4. Di dalam ruang else, letakkan set built-in LED kepada LOW.

  5. Tambah wait 100 milliseconds di hujung supaya bacaan diulang secara stabil.

  6. Tekan Verify / compile, kemudian Upload into device, dan uji dengan menggerakkan input.

  7. Tentukur: jika LED tidak bertukar pada kedudukan yang anda mahu, laraskan nilai ambang (naikkan atau turunkan 500) dan ulangi sehingga LED menyala dan padam pada kedudukan yang dijangka.

Program anda sepatutnya lebih kurang seperti berikut:

Rajah blok visual: di dalam gelung Arduino selama-lamanya terdapat syarat jika bacaan pin analog A0 lebih besar atau sama dengan 500; dalam lakukan, Tetapkan LED terbina dalam kepada HIGH; dalam jika tidak, Tetapkan LED terbina dalam kepada LOW; kemudian Tunggu 100 milisaat.

Rajah rujukan bagi keputusan. Bacaan A0 dibandingkan dengan nilai ambang,
dan LED berubah mengikut cabang do atau else.

Arduino loop forever:
   if  [read analog pin# [A0]]  [≥]  [500]
   do:
      [set built-in LED] [HIGH]
   else:
      [set built-in LED] [LOW]
   [wait] 100 milliseconds

Rujukan ini menggunakan A0 kerana itulah titik mula yang biasa. Jika
semakan input menunjukkan pin analog lain, kekalkan bentuk program yang sama
tetapi gantikan A0 dengan pin yang telah anda sahkan.

Terangkan syarat penuh anda: input yang dibaca, nilai ambang (atau keadaan) yang dibandingkan, dan output yang berubah.

Huraikan dua ujian: satu ujian yang menyalakan LED dan satu ujian yang memadamkannya. Sertakan kedudukan/keadaan input dan, jika anda menentukurnya, nilai ambang akhir.

4

Jika tiada perubahan, nyahpepijat

7 min

Jika LED tidak berubah apabila anda menggerakkan input, tulis tiga semakan mengikut urutan yang akan anda lakukan sebelum meminta bantuan (fikirkan pin bacaan, nilai ambang dan sama ada program telah dimuat naik).