8bitkucuk

8-bitlik Binary Sayıcı

Sayıcılar her zaman hayatın vazgeçilmezleridir. Normalden biraz farklı olan bir sayıcı devresidir.Liselerde kullanılan bu devreler öğrencilerin elektronik ve bilgisayar çalışma mantığını kavramasına yardımcı olacaktır.

8 bitlik çıkışının olması 0 ile 255 arası sayması demektir. Projemizde kullanılan buton ile binary olarak sayıyı herseferinde bir arttırır. Projemizin bağlantısı şu şekilde yapılmaktadır.

0=  0000 0000

1 = 0000 0001

255 = 1111 1111 dir.

Gerekli malzemeler

8x LED

9x 220 ohm Direnç

1x Buton

ve Arduino

Programımız

int button = 2; //
int presses = 0;    // variable to store number of presses
long time = 0;  // used for debounce
long debounce = 100;    // buton kaç sanıye basılı
const byte numPins = 8; // kaç led var
int state;  //aktifmi pasifmi
// LED pinleri
byte pins[] = {5, 6, 7, 8, 9, 10, 11, 12};
      
void setup ()
{
  /* Burada tum ledlerı çıkış olarak ayarladık */
  for(int i = 0; i < numPins; i++) {
    pinMode(pins[i], OUTPUT);
  }
  pinMode(button, INPUT);
  /* buton bacağının durumu  */
  attachInterrupt(0, count, LOW);
}
 
void loop ()
{
  /* okunan degerı bınarye cevırerek kayıt etmek */
  String binNumber = String(presses, BIN);
  /*kayıt edılen degerın buyuklugunun tespıtı  */
  int binLength = binNumber.length();  
  if(presses <= 255) {  
  // ölçülmesi
  for(int i = 0, x = 1; i < binLength; i++, x+=2) {
    if(binNumber[i] == '0') state = LOW;
    if(binNumber[i] == '1') state = HIGH;
    digitalWrite(pins[i] + binLength - x, state);
  }
}
else {
   
}
}    
 
/*butona basılma sayısını ölçer*/
void count() {
  // we debounce the button and increase the presses
  if(millis() - time > debounce) presses++;
  time = millis();
}

Boş zamanlarda arduino ile uğraşan kendi halinde bir Öğretmen.

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.