Hitung Mundur hingga Nol
Termasuk bagian Layar dan Sensor dalam perjalanan Arduino di Coddy. Pelajaran 4 dari 24.
Seperti pada sapuan servo, for loop dapat menghitung mundur: mulai dari angka besar, teruskan selama angkanya 0 atau lebih, lalu kurangi satu setiap kali dengan n--:
for (int n = 5; n >= 0; n--) {
showDigit(n);
delay(1000);
}Ini menampilkan 5, 4, 3, 2, 1, dan 0. Dengan n > 0, hitungan akan berhenti di 1 dan tidak pernah menampilkan 0.
Hitung mundur seharusnya dilakukan sekali, bukan berulang-ulang. Kode di setup() dijalankan sekali, jadi letakkan hitungan mundur di sana, lalu letakkan apa pun yang terjadi saat mencapai 0 setelahnya. loop() bisa tetap kosong, dan angka 0 akan tetap tampil di layar.
Tantangan
MudahBuzzer terhubung ke pin 9. Buat hitung mundur peluncuran:
- di
setup(), hitung mundur dari 5 hingga 0, satu angka setiap detik - saat mencapai 0, bunyikan buzzer dengan
tone(buzzerPin, 880, 1000) - biarkan angka 0 di layar
Tekan Run, lalu Check.
Coba sendiri
const int segmentPins[7] = {2, 3, 4, 5, 6, 7, 8}; // a, b, c, d, e, f, g
// Satu pola untuk setiap digit, baca dari kanan: bit terakhir adalah segmen a.
// gfedcba
const byte digits[10] = {
0b0111111, // 0
0b0000110, // 1
0b1011011, // 2
0b1001111, // 3
0b1100110, // 4
0b1101101, // 5
0b1111101, // 6
0b0000111, // 7
0b1111111, // 8
0b1101111 // 9
};
void showDigit(int n) {
for (int i = 0; i < 7; i++) {
if (bitRead(digits[n], i) == 1) {
digitalWrite(segmentPins[i], LOW); // menyala
} else {
digitalWrite(segmentPins[i], HIGH); // mati
}
}
}
const int buzzerPin = 9;
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
// hitung mundur dari 5 sampai 0 di sini, lalu bunyikan buzzer
}
void loop() {
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Layar dan Sensor
1Tampilan Tujuh Segmen
Tampilan Tujuh SegmenPola Digit dalam ByteMenghitung pada TampilanHitung Mundur hingga NolSimulator Lempar DaduLatihan sendiri: Playground Arduino