Sıfıra Geri Sayım
Coddy'nin Arduino Journey'sinin Ekranlar ve Sensörler bölümünün bir parçası. Ders 4 / 24.
Servo taramasında olduğu gibi, bir for döngüsü geriye doğru sayabilir: yüksek bir değerden başlar, sayı 0 veya daha büyük olduğu sürece devam eder ve her seferinde n-- ile bir azaltır:
for (int n = 5; n >= 0; n--) {
showDigit(n);
delay(1000);
}Bu, 5, 4, 3, 2, 1 ve 0 değerlerini gösterir. n > 0 olsaydı 1'de durur ve 0'ı hiç göstermezdi.
Geri sayım tekrar tekrar değil, bir kez gerçekleşmelidir. setup() içindeki kod bir kez çalışır; bu nedenle geri sayımı ve ardından 0'da gerçekleşecekleri oraya koy. loop() boş kalabilir ve 0 ekranda kalır.
Görev
KolayBuzzer 9 numaralı pine bağlı. Bir fırlatma geri sayımı yap:
setup()içinde, saniyede bir sayı olacak şekilde 5'ten 0'a kadar geri say- 0'da,
tone(buzzerPin, 880, 1000)ile buzzer'ı çaldır - 0'ı ekranda bırak
Run'a, ardından Check'e bas.
Kendin dene
const int segmentPins[7] = {2, 3, 4, 5, 6, 7, 8}; // a, b, c, d, e, f, g
// Her rakam için bir desen; sağdan sola okuyun: en son bit a segmentidir.
// 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); // yanıyor
} else {
digitalWrite(segmentPins[i], HIGH); // sönük
}
}
}
const int buzzerPin = 9;
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
// burada 5'ten 0'a geri sayın, ardından buzzer'ı çaldırın
}
void loop() {
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Ekranlar ve Sensörler bölümündeki tüm dersler
1Yedi Segmentli Göstergeler
Yedi Segmentli GöstergeBaytlardaki Rakam DesenleriGöstergede SaymaSıfıra Geri SayımZar AtıcıKendi başına pratik yap: Arduino playground