Arduino ile Zaman Kesmesi kullanarak karaşimşek devresi
Malzemeler
8 tane Kırmızı Led Diyot isteyen Başka Renk kullanabilir
8 tane 220 Ohm direnç 220 Ohm direnç yoksa 330 oOhm direnç kullanabilirsiniz
Arduino Uno R3 Klon
Erkek Erkek Jumper Kablo
Bread Board
Yapım Aşaması
* Listedeki Malzemeleri Hazırlıyoruz
* Ledlerimizi Breadboard yani deney tahtamıza takıyoruz
*Ledimizi taktıktan sonra direncimizin bir ucunu ledimizin + (anot) ucuna bir ucunu breadboardun herhangi bir yerine takıyoruz
Şimdi Gelelim Arduinoya Bağlamaya
1.Ledimizi arduino kartın 9.pinine Takıyoruz
2.Ledimizi arduino kartın 8.pinine takıyoruz
3.ledimizi arduino kartın 7.pinine takıyoruz
4.ledimizi arduino kartın 6.pinine takıyoruz
5.ledimizi arduino kartın 5.pinine takıyoruz
6.ledimizi arduino kartın 4.pinine takıyoruz
7.ledimizi arduino kartın 3.pinine takıyoruz
8.ledimizi arduino kartın 2.pinine takıyoruz
Şema
Kod
const int LEDdizisi[] = {2,3,4,5,6,7,8,9};
int j = 0;
void setup()
{
Serial.begin(9600);
for(int i=0; i<8 ;i++)
{ /* For döngüsüyle LEDdizisi elemanlarına ulaşıyoruz */
pinMode(LEDdizisi[i], OUTPUT); /* LED pinleri çıkış olarak ayarlandı */
}
cli();
/* Ayarlamaların yapılabilmesi için öncelikle kesmeler durduruldu */
/* Timer1 kesmesi saniyede bir çalışacak şekilde ayarlanacaktır (1 Hz)*/
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;
OCR1A = 15624;
/* Bir saniye aralıklar için zaman sayıcısı ayarlandı */
TCCR1B |= (1 << WGM12);
/* Adımlar arasında geçen süre kristal hızının 1024'e bölümü olarak ayarlandı */
TCCR1B |= (1 << CS12) | (1 << CS10);
TIMSK1 |= (1 << OCIE1A);
/* Timer1 kesmesi aktif hale getirildi */
sei();
/* Timer1 kesmesinin çalışabilmesi için tüm kesmeler aktif hale getirildi */
}
/* Arduino otomatik olarak her saniye aşağıdaki fonksiyonu çalıştıracaktır */
ISR(TIMER1_COMPA_vect){
for(int i=0; i<8; i++){
digitalWrite(LEDdizisi[i],LOW);
/* Tüm LED'ler söndürüldü */
}
digitalWrite(LEDdizisi[j],HIGH);
/* Sıradaki LED yakıldı */
j ++;
if(j > 7)
j = 0;
}
void loop()
{
Serial.println("Kaan Tugra Polat Arduino Devreleri");
delayMicroseconds(100);
}
Yorumlar
Yorum Gönder