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.
Log masuk dengan akaun pendidik untuk menyediakan sesi kelas. Pelajar menyertai dengan kod kelas.
Kali pertama menggunakan LabsLand? Cipta akaun guru anda
Hasil pembelajaran
Membaca input dan memastikan nilainya berubah sebelum menentukan output.
Menggunakan syarat
if / elsedengan 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.
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.
Baca dan semak input
16 min
Gunakan keputusan LED yang kelihatan untuk menyemak input sebelum mengisi jadual.
Buka makmal papan Arduino visual. Gunakan potensiometer pertama pada antara muka, disambungkan ke A0, dan kekalkan input lain.
Bina keputusan LED sebelum mengumpul data. Dalam
Arduino loop forever: jikaread analog pin# A0 >= 500, LED terbina dalam HIGH; jika tidak LOW; kemudian tunggu 100 ms.Serial pilihan: kekalkan
Setup serial 9600 bpsdalam ruang kerja dan cetakread analog pin# A0dalam gelung. Laluan LED berfungsi tanpa serial.Sahkan/kompil, muat naik ke peranti dan programkannya apabila diminta. Gerakkan potensiometer pertama ke minimum, tengah dan maksimum. Rekod keadaan LED dan bacaan serial jika tersedia pada setiap kedudukan.
Skala ADC ialah 0–1023, tetapi potensiometer jauh mungkin tidak meliputi keseluruhannya. Gunakan hujung julat yang diperhatikan; input 3.3 V dengan rujukan 5 V memberikan kira-kira 675 di hujung atas. Ini anggaran, bukan bacaan wajib.
Jika tiada perubahan, semak A0, potensiometer pertama dan program yang dimuat naik. Jangan cuba pin secara rawak. Jika julat tidak merentasi 500, letakkan ambang dalam julat itu dan uji semula.
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? |
|---|---|---|---|
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.
Kekalkan program A0 dengan LED yang telah diuji. Semak strukturnya menggunakan kod dan rajah di bawah. Pilih ambang yang memisahkan dua kedudukan, muat naik perubahan dan uji semula kedua-duanya. Tanpa serial, rekod LED hidup/mati dan ambang yang diuji; bacaan ADC berangka ialah pilihan.
Program anda sepatutnya lebih kurang seperti berikut:
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 millisecondsTerangkan 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.
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).
Jadikan pratonton ini satu sesi kelas sebenar
Teruskan ke LabsLand Teach untuk menggunakan pelajaran ini bersama pelajar dan menyemak akses akaun anda.
Kali pertama menggunakan LabsLand? Cipta akaun guru anda