Pola Digit dalam Byte
Termasuk bagian Layar dan Sensor dalam perjalanan Arduino di Coddy. Pelajaran 2 dari 24.
Tujuh baris digitalWrite() untuk setiap digit berarti banyak kode. Simpan setiap digit sebagai pola: satu bit untuk satu segmen, 1 berarti menyala dan 0 berarti mati.
byte adalah bilangan bulat dari 0 sampai 255 yang terdiri dari delapan bit. Tulis dalam biner dengan 0b di depannya. Baca bit dari kanan: bit terakhir adalah segmen a, bit sebelumnya b, dan seterusnya sampai g.
// gfedcba
byte one = 0b0000110; // b dan c: a 1Sepuluh pola muat dalam sebuah array, jadi digits[3] adalah pola untuk angka 3. bitRead(), dari penghitung biner, membaca satu bit darinya, mulai dari kanan dan menghitung dari 0:
bitRead(0b0000110, 0) // 0: segmen a mati
bitRead(0b0000110, 1) // 1: segmen b menyalaSebuah fungsi dapat menelusuri tujuh bit dengan for loop dan mengatur setiap pin segmen, sehingga menggambar digit apa pun cukup dengan satu pemanggilan: showDigit(7);
Tantangan
SedangKode awal memiliki semua pola kecuali 4 dan 7, dan loop() menampilkan 1, 4, dan 7.
- lengkapi 4 (segmen
b,c,f,g) dan 7 (a,b,c) - tulis
showDigit(n): untuk setiapidari 0 hingga 6, atursegmentPins[i]menjadiLOWsaat bitidaridigits[n]bernilai 1, danHIGHsaat nilainya 0
Tekan Jalankan, lalu Periksa.
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
0b0000000, // 4: isi
0b1101101, // 5
0b1111101, // 6
0b0000000, // 7: isi
0b1111111, // 8
0b1101111 // 9
};
void showDigit(int n) {
// Nyalakan segmen digits[n], matikan segmen lainnya
}
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
}
void loop() {
showDigit(1);
delay(1000);
showDigit(4);
delay(1000);
showDigit(7);
delay(1000);
}
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