Arduino : Ultrasonik Mesafe Sensörü Ledli Seviye Göstergesi

Bu uygulamada Arduino Uno ile HC-SR04 Ultrasonik sensör kullanarak 5 adet LED ile 20cm-100cm arasındaki mesafenin seviyesini gösteren uygulama yaptık. 20cm’den küçük olduğunda ve 100cm’den büyük olduğunda bütün ledler sönük olacaktır.

Okumaya devam et

Reklamlar

Arduino: Timer1 Giriş Yakalama Birimi (Timer1 Input Capture Unit)

Timer1 16 bit zamanlayıcıdır. Bunun yanında bazı ilave özellikleri de bulunmaktadır. Bunlardan en önemlilerinden biri yakalama özelliğidir. Şöyle ki; bir bir ardınca gelen olayları yani peryotları clock olarak ölçebilmektedir. Örnek; bir dalganın peryodunu dolayısı ile frekansını veya bir pulsin süresini ölçebilmektedir. Dalganın düşen kenar veya yükselen kenarında yakalama gerçekleştiğinde timer1 içindeki değer ICR1 registerine aktarılmaktadır.

Nerelerde kullanılır? Peryot hesabı, Ultrasonic sensör ile mesafe ölçümü vb.

Okumaya devam et

Arduino : Dahili Analog Karşılaştırıcı (Built in Analog Comparator)

Bu uygulamamızda Atmega328p içinde dahili olarak bulunan “analog karşılaştırıcı”yı kullanacağız. Çizgi izleyen robot tasarım çalışmalarım esnasında 3 hücreli lipo pilin belirli bir gerilimin altına düştüğünde alarm vermesi (LED yakma) için dahili analog karşılaştırıcıyı kullanmak istedim. Referans gerilimi olarak yine chip içindeki Bandgrap referans gerilimini (1.1V) kullandım. Pilden gelen gerilim dirençlerle bölündükten sonra (-) girişe uygulanıyor.

Okumaya devam et

Arduino: Timer kullanarak Frekansmetre Yapımı (Making the frequency meter using timer)

Bu uygulamada Timer1 sayıcı girişinden (Arduino Uno pin 5) girilen pulseleri sayarak saniyedeki pulse değerini (frekansı) bulacağız. Bir saniyelik süreyi Timer2’yi kullanarak elde edeceğiz. Sinyal kaynağını yine Arduino üzerinden analogWrite fonksiyonu ile üreteceğiz. Bu tip çalışma mantığı olan devreler yüksek frekanslarda daha doğru sonuçlar vermektedir. Düşük frekanslı sinyalleri daha hassas ölçmek için peryot süresini bulup oradan frekansın hesaplanması gerekmektedir.

Devir sayacı olarak kullanılmak istenirse RPS (saniyedeki dönme sayısı) ile 60 çarpılarak RPM (dakikadaki dönme sayısı) bulunabilir.

Okumaya devam et

Arduino: Timer1’in zamanlayıcı olarak kullanılması (Using Timer1 as a timer)

Günümüzün popüler gömülü sistemlerinden Arduino ile Timer1’i kullanarak zamanlayıcı yapmayı öğreneceğiz. Zamanlayıcı; sistem frekansını kullanarak yapılan Timer uygulamasıdır. Bu uygulamada Arduino kütüphaneleri kullanılmadan Atmega328p mikrodenetleyicisinin Timer ayarları ile zamanlayıcı yapılacaktır.

Uygulamada 1 sn aralıklarla kit üzerindeki led yanıp sönecektir.

Okumaya devam et

BTS7960 Motor Sürücü (Motor Driver)

BTS7960 entegresi yüksek akım verebilen yarım köprü (Half Bridge) entegredir. İki tane kullanılarak tam köprü (H-Bridge) yapılarak motor yön ve devir kontrolü yapılabilir.  43A akım verebilme kapasitesi vardır. Ancak bu kapasite harici dirençle sınırlandırılabilmektedir.  Benim kullandığım modülde bu değer 10A ile sınırlandırılmış. 25Khz kadar PWM kontrolü sağlayabilmektedir. Doğrudan MCU ile sürülebilir. Piyasada satılan modüller 74HC244  hat sürücü entegresiyle tasarlanmış.

Okumaya devam et

SPI haberleşme ve Max7219

Master Slave SPI Haberleşme

Master Slave SPI Haberleşmesi

İlk defa Motorola firması tarafından geliştirilen ve daha sonra diğer firmalarında kabul ettiği ve kullandığı, çevresel cihazlarla veya diğer mikrodenetleyicilerle  haberleşmeyi sağlayan yazılım veya donanım tabanlı  seri iletişim protokolüdür.

Bu yazımızda bu protokolü ve Max7219 ile master slave uygulamasını yapacağız.

Okumaya devam et