Pelajaran Teach
Arduino asas 4/4: bina pengawal mini
Gabungkan potensiometer, servo, keputusan dan LED dalam pengawal kecil yang dijalankan pada Arduino Uno 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
Menggabungkan input analog, pernyataan bersyarat dan dua output.
Menggunakan pustaka Servo dalam atur cara ringkas.
Menerangkan tingkah laku sistem yang diprogramkan.
Pratonton aktiviti pelajar
Kandungan aktiviti
Pratonton sahaja. Dalam sesi kelas, pelajar boleh mengisi jawapan dan menyerahkan hasil kerja mereka kepada guru.
Rancang sebelum mengubah kod
8 min
Anda mempunyai tiga komponen: potensiometer 1, sebuah servo dan LED 1. Dalam projek ini, potensiometer akan mengawal kedudukan servo, manakala LED akan bertindak sebagai amaran apabila servo melepasi sudut tertentu.
Sudut servo bergerak dari 0 hingga 180 darjah. Ambang rendah seperti 60 darjah akan menyalakan LED lebih awal, berhampiran satu pertiga pertama pergerakan. Ambang 90 darjah akan menyalakannya pada pertengahan pergerakan. Ambang lebih tinggi seperti 120 darjah hanya akan menyalakannya apabila servo sudah berada dalam satu pertiga terakhir pergerakan. Sebelum mula mengatur cara, pilih ambang yang menjadikan LED berguna untuk jenis amaran yang anda mahu.
Penukar analog-ke-digital lalai Arduino Uno menggunakan skala 0-1023 untuk 0-5 V. Potensiometer makmal ini mencapai 3.3 V, dengan bacaan kira-kira 675. Atur cara menentukur nilai maksimum sebenar ini kepada julat penuh servo, iaitu 0-180 darjah.
Pada sudut berapakah anda akan menyalakan LED: 60, 90, 120 darjah atau nilai lain? Terangkan sebab ambang itu berguna.
Atur cara pengawal
22 min
Sekarang bandingkan idea anda dengan penyelesaian ini: potensiometer mengawal sudut servo dari 0 hingga 180 darjah, dan LED 1 menyala apabila sudut melebihi 90 darjah. Muat naik atur cara. Kemudian ubah syarat supaya LED hanya menyala apabila sudut melebihi 120 darjah. Baris utama terletak dalam if: jangan ubah pin LED atau pin servo kecuali anda tahu sebabnya.
#include <Servo.h>
const int pot1 = A0;
const int servoPin = 3;
const int led1 = 8;
const int potMaxReading = 675;
Servo servo;
void setup() {
pinMode(led1, OUTPUT);
servo.attach(servoPin);
}
void loop() {
int reading = analogRead(pot1);
int calibratedReading = constrain(reading, 0, potMaxReading);
int angle = map(calibratedReading, 0, potMaxReading, 0, 180);
servo.write(angle);
if (angle > 90) {
digitalWrite(led1, HIGH);
} else {
digitalWrite(led1, LOW);
}
delay(20);
}Buka makmal Arduino.
Muat naik atur cara asas dan perhatikan servo.
Putar potensiometer 1 secara perlahan-lahan.
Tukar
angle > 90kepadaangle > 120, kemudian muat naik semula.Simpan fail sebelum mengambil petikan kod.
Sekarang tetapkan syarat kepada ambang amaran pilihan anda. Kekalkan perbandingan ketat
>: LED padam pada ambang dan menyala di atasnya. Uji kedudukan di bawah dan di atas ambang; jejak kes sama dengan ambang dalam kod. Simpan atur cara akhir ini.
Hantar kod anda
Selepas menguji 120 darjah sebagai contoh bersama, hantar kod akhir yang disimpan dengan ambang pilihan anda. Nyatakan ambang dan keadaan LED yang diperhati di bawah dan di atasnya. Terangkan tindakan perbandingan ketat > apabila nilainya sama. Simpan main.ino sebelum melampirkan petikan kodnya.
Rumuskan projek
10 min
Terangkan sistem menggunakan tiga perkataan ini: input, keputusan dan output. Anda juga boleh menyatakan perkara yang ingin anda tambah baik jika mempunyai lebih banyak masa.
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