Arduino ile Binary sayıcı

Bu projemizde 8 LED ile binary sayıcı yaptık ama aynı zamanda LED lerin durumunu seri monitöre aktararak Kullanıcının durumdan haberdar edilmesini sağladık.

Bağlantı şeması aşağıdaki gibidir.

8bit sayici

Bilgisayarımızda ise aşağıdaki şekilde görülecektir .(aşağıdaki resim 10 bite göre çıkıştır)

bilgisayardan

 

Buyrun Programımız

// Projemizdeki amaç kendi belirlediğiniz
//çıkış miktarına kadar sayıcının çalışması burada
//10 bit yazılırsa 10 bite kadar sayıcı çalışır
//BU PROJEMİZDE 8 E KADAR SAYDIRDIK
const float frecuencia=30;
const int nbits=10; // Kaç çıkış kullanılacaksa o buraya yazılır
const unsigned int nMax= (pow(2,nbits))-1;
const int sal[nbits]={12,11,10,9,8,7,6,5}; // ledlerın bağlı olduğu pinler

int cuenta=0;
int salida[nbits]={0};

void setup() {
Serial.begin(9600); // Bilgisayar ile bağlantıya geçmek için

for(int i= 0;i<nbits;i++)
{
pinMode(sal[i],OUTPUT); // LED pinlerinin tamamı OUTPUT yapıldı
digitalWrite(sal[i],LOW);
}

}

void loop()
{
cuenta=0;
Serial.print("Max: ");
Serial.println(nMax);

while(cuenta<nMax) //Binary sayıcı döngüsü
{ //
int c=cuenta; //
for(int i=0;i=bitvalue(nbits-i)) //
{ //
salida[i]=1; //
c=c-bitvalue(nbits-i); //
}
else //
salida[i]=0; //
}

for(int i=0;i<nbits;i++) //Burada ise bu çıkışlar bilgisayara aktarıldı
{
Serial.print(salida[i]);
Serial.print(" ");
digitalWrite(sal[i],salida[i]); //
}

Serial.println(" ");

cuenta++;
float zd= (1000/frecuencia);
delay(int(zd));
zd=(zd-int(zd))*1000;
int zm=zd;
delayMicroseconds(zm);

}
}

int bitvalue(int lugar)
{
int x=1;
for(int i=0;i<lugar-1;i++)
{
x=x*2;
}

return x;
}

  

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.