Sevgili Öğrenciler,
Arduino robotik setinizle aşağıdaki referans kodları Arduino programında yazarak "Işık Şiddetini (LDR ile) Yedi Segmentte Gösterme Projesi" yapıyoruz.
Projede Kodla Türkiye Robotik setindeki Shielde entegre LDR ile 7 segment display kullanılacaktır. Projemizde değişen Işık şiddetine göre 7 segmentte sayı gösterilecektir. Ortam aydınlığı fazlalaştıkça sayı artar; karanlık oldukça sayı azalır.
Başarılar!
//Arduino Referans Kaynak Kodu:
int A = 4;
int B = 5;
int C = 6;
int D = 7;
int ldrPin = A2;
int ldr;
int deger;
void setup() {
pinMode(A, OUTPUT); //LSB
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT); //MSB
pinMode(ldrPin, INPUT);
}
void loop() {
ldr = analogRead(ldrPin);
deger = map(ldr, 0, 1023, 0, 10);
Sayici(deger);
delay(50);
}
void Sayici(int sayi) {
if (sayi == 0) { // 0000
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
}
if (sayi == 1) { // 0001
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
}
if (sayi == 2) { // 0010
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
}
if (sayi == 3) { // 0011
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
}
if (sayi == 4) { // 0100
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
}
if (sayi == 5) { // 0101
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
}
if (sayi == 6) { // 0110
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
}
if (sayi == 7) { // 0111
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
}
if (sayi == 8) { // 1000
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
}
if (sayi == 9) { // 1001
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
}
}