Atur Sudut Servo dari Serial
Termasuk bagian Output dalam perjalanan Arduino di Coddy. Pelajaran 23 dari 24.
Lengan juga bisa menerima perintah dari Serial monitor. Ketik sudut lalu tekan Enter; Serial.parseInt() membaca angkanya:
if (Serial.available() > 0) {
int angle = Serial.parseInt();
Serial.read(); // karakter baris baru setelah angka
// gunakan angle
}Karakter baris baru setelah angka tetap menunggu. Saat loop() dijalankan lagi, parseInt() tidak akan menemukan digit, menunggu satu detik, lalu mengembalikan 0. Mengabaikan 0 berhasil untuk kecepatan kedipan, tetapi 0 adalah sudut yang valid. Jadi, baca dan buang karakter baris baru dengan satu Serial.read() tepat setelah angkanya.
Seseorang mungkin juga mengetik angka yang bukan sudut. arm.write() membaca angka berapa pun mulai dari 544 sebagai panjang pulsa dalam mikrodetik, jadi 1000 akan menempatkan lengan di dekat 45 derajat. constrain() membatasi sudut antara 0 dan 180 terlebih dahulu:
angle = constrain(angle, 0, 180); // berikan variabelnya, bukan parseInt()Tantangan
SedangPindahkan servo ke sudut yang diketik di Serial monitor:
- saat angka tiba, baca dengan
Serial.parseInt(), lalu baca dan buang karakter baris baru (0 juga merupakan sudut) - jaga nilainya tetap antara 0 dan 180 dengan
constrain() - gerakkan lengan dan cetak sudut sebagai
Angle: 45
Tekan Jalankan, kirim 45 dari Serial monitor, lalu tekan Periksa.
Coba sendiri
#include <Servo.h>
Servo arm;
void setup() {
arm.attach(9);
arm.write(90);
Serial.begin(9600);
}
void loop() {
// saat angka masuk: baca angkanya, lalu baca dan buang karakter baris baru,
// batasi nilainya antara 0 dan 180, gerakkan arm, lalu cetak nilainya
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Output
Latihan sendiri: Playground Arduino