EEM-251 İleri Düzey Programlama
2022-2023 Güz Dönemi Ders 4
Yazılımla debounce
int bounce_suresi=50;
int onceki_karasiz_durum=LOW;
int onceki_karali_durum=LOW;
int onceki_durum=LOW;
int son_degisim=LOW;
int simdiki_durum;
void setup()
{
pinMode(6, INPUT_PULLUP);
}
long son_degisim_ms=0;
void loop()
{
simdiki_durum=digitalRead(6);
if(simdiki_durum != onceki_karasiz_durum){
son_degisim=millis();
onceki_karasiz_durum=simdiki_durum;
}
if(millis()-son_degisim>bounce_suresi){
if(onceki_karali_durum==HIGH && simdiki_durum=LOW )
//butona el cekildi, ilgili kodlamalar
else if(onceki_karali_durum==LOW && simdiki_durum=HIGH)
//butona basıldı, ilgili kodlamalar
onceki_kararli_durum=simdiki_durum;
}
}
7 segmentli gösterge
int sayilar[]={126,48,109,121,51,91,95,112,127,123};
int sayac=0;
void setup() {
for(int pin=0;pin<=6;pin++)
pinMode(pin, OUTPUT);
}
void loop() {
int sayi;
sayi=sayilar[sayac];
for(int pin=0;pin<=6;pin++)
digitalWrite(pin,bitRead(sayi, pin));
sayac++;
if(sayac==10)
sayac=0;
delay(1000);
}
int sayilar[]={126,48,109,121,51,91,95,112,127,123};
int sayac=0;
void setup() {
for(int pin=0;pin<=6;pin++)
pinMode(pin, OUTPUT);
}
void loop() {
int sayi;
sayi=sayilar[sayac%10];
for(int pin=0;pin<=6;pin++)
digitalWrite(pin,bitRead(sayi, pin));
sayac++;
delay(1000);
}
BCD to 7 segment decoder entegresi ile 7 segmentli gösterge
CD4511 datasheeti indirmek için tıklayınız.
int sayac=0;
void setup() {
for(int pin=8;pin<14;pin++)
pinMode(pin,OUTPUT);
}
void loop() {
for(int i=0;i<4;i++)
digitalWrite(i+8,bitRead(sayac%10, i));
delay(1000);
sayac++;
}