İçindekiler:

Mikro-kontrolör Tabanlı Metronom: 5 Adım
Mikro-kontrolör Tabanlı Metronom: 5 Adım

Video: Mikro-kontrolör Tabanlı Metronom: 5 Adım

Video: Mikro-kontrolör Tabanlı Metronom: 5 Adım
Video: 10.Mikrodenetleyici(ler II) Tabanlı Kontrol 2024, Temmuz
Anonim
Image
Image

Bir metronom, müzisyenler tarafından şarkılardaki vuruşları takip etmek ve yeni bir enstrüman öğrenen yeni başlayanlar arasında bir zamanlama duygusu geliştirmek için kullanılan bir zamanlama cihazıdır. Müzikte çok önemli olan ritim duygusunun korunmasına yardımcı olur.

Burada inşa edilen bu metronom, çubuk başına vuruş sayısını ve dakika başına vuruş sayısını ayarlamak için kullanılabilir. Bu kurulum verileri girildikten sonra, LED'ler kullanılarak uygun aydınlatma eşliğinde verilere göre bip sesi çıkar. Kurulum verileri bir LCD ekranda görüntülenir.

Adım 1: Gerekli Bileşenler:

·

  • Atmega8A Mikrodenetleyici
  • · 16*2 Lcd Ekran
  • · Piezo Zil
  • · LED'ler (yeşil, kırmızı)
  • · Dirençler (220e, 330e, 1k, 5.6k)
  • · Butonlar (2* kilitlenme önleyici, 1* kilitleme)
  • · 3V CR2032 Düğme Pil (*2)
  • Madeni Para Pil Tutucu (*2)
  • · 6pin Relimate (polarize) Konnektör

Adım 2: Devreyi Yapmak

Devre bağlantılarını veroboard üzerinde resimdeki gibi yapınız ve bağlantıları uygun şekilde lehimleyiniz.

Adım 3: Metronomun Özellikleri

Metronomun arayüzü esas olarak lcd ekran tarafından işgal edilir. Üstünde, LED'ler ve sesli uyarı sağda olacak şekilde merkezi olarak yerleştirilmiş 8A mikrodenetleyici bulunur. Üç anahtar ve Relimate konektörü en üste yerleştirilmiştir.

Tüm proje, yalnızca 20 gün ila 1 ay (sürekli değil) tahmini çalışma süresine sahip (seri @6V 220mAh) iki düğme pil ile çalışır. Bu nedenle orta derecede güç verimlidir ve 3 – 5 mA akım gereksinimine sahiptir.

Kendinden kilitleme anahtarı en solda bulunur ve AÇMA/KAPAMA düğmesidir. Ortadaki düğme Kurulum düğmesidir ve sağdaki düğme bpm ve atım (bar başına) değerlerini değiştirmek için kullanılır.

AÇMA/KAPAMA düğmesine basıldığında, lcd açılır ve çubuk başına vuruş değerini görüntüler. Kullanıcının değeri değiştirmesi için 3 saniye bekler ve sonuçta elde edilen değeri girdi olarak alır. Bu değer 1/4, 2/4, 3/4, 4/4 arasında değişmektedir.

Ardından dakikadaki vuruş sayısını (bpm) görüntüler ve kullanıcının değeri değiştirmesi için tekrar 3 saniye bekler, ardından belirli bir değeri ayarlar. Bu 3 saniyelik bekleme süresi, kullanıcı bir değeri değiştirdikten sonra kalibre edilir. Bpm değerleri 30 ile 240 arasında değişebilir. Bpm kurulumu sırasında Kurulum düğmesine basılması, değerini 30 bpm'ye sıfırlar, bu da düğme tıklamalarının miktarını azaltmaya yardımcı olur. Bpm değerleri 5'in katlarıdır.

Kurulum tamamlandıktan sonra, pilden tasarruf etmek için lcd arka ışığı kapanır. Buzzer her vuruş için bir kez bip sesi verir ve LED'ler her vuruş için dönüşümlü olarak birer birer yanıp söner. Değerleri değiştirmek için Kurulum düğmesine basılır. Bunu yaptıktan sonra, lcd arka ışığı yanar ve daha sonra aynı prosedürle daha önce belirtildiği gibi vuruş istemi görünür.

Atmega8A mikro denetleyici 500 bayt EEPROM'dan oluşur, yani vuruş ve bpm değerleri ne olursa olsun, metronom kapatıldıktan sonra bile kayıtlı kalır. Bu nedenle tekrar açmak, daha önce girilen aynı verilerle devam etmesini sağlar.

Relimate bağlayıcısı aslında iki amaç için kullanılabilen bir SPI başlığıdır. Ürün yazılımını güncellemek ve metronom için yeni özellikler eklemek için Atmega8A mikro denetleyicisini yeniden programlamak için kullanılabilir. İkinci olarak, hardcore kullanıcılar için metronomu çalıştırmak için harici bir güç kaynağı da kullanılabilir. Ancak bu güç kaynağı 5,5 volttan büyük olmamalıdır ve AÇMA/KAPAMA anahtarını geçersiz kılar. Güvenlik nedenleriyle, harici beslemenin dahili pillerle kısa devre yapmaması için bu anahtar KAPALI OLMALIDIR.

4. Adım: Açıklama

Bu proje, ISP Programcısı olarak kullanılan bir Arduino Uno/Mega/Nano aracılığıyla Arduino IDE kullanılarak programlanan Atmel Atmega8A mikrodenetleyici kullanılarak yapılmıştır.

Bu mikrodenetleyici, Arduino Uno'da yaygın olarak kullanılan Atmel Atmega328p'nin daha az özellikli bir versiyonudur. Atmega8A, 1Kb RAM ile 8Kb programlanabilir bellekten oluşur. 328p yani 16Mhz ile aynı frekansta çalışan 8 bitlik bir mikrodenetleyicidir.

Bu projede akım tüketimi önemli olduğu için saat frekansı azaltılmış ve dahili 1 Mhz osilatör kullanılmıştır. Bu, mevcut gereksinimi büyük ölçüde yaklaşık 3.5 mA @3.3V ve 5mA @4.5V'ye düşürür.

Arduino IDE, bu mikrodenetleyiciyi programlama olanağına sahip değildir. Bu nedenle, bir Optiboot önyükleyici kullanarak 8A'yı dahili osilatörüyle çalıştırmak için bir "Minicore" paketi (eklenti) kuruldu. Artan voltajla birlikte projenin güç ihtiyacının arttığı fark edildi. Bu nedenle, optimum güç kullanımı için, mikrodenetleyici, sadece 3.5mA çeken tek bir 3V madeni para pili ile 1 MHz'de çalışacak şekilde ayarlandı. Ancak bu kadar düşük bir voltajda lcd'nin düzgün çalışmadığı gözlemlendi. Bu nedenle, voltajı 6V'a yükseltmek için seri olarak iki madeni para pili kullanma kararı uygulandı. Ancak bu, mevcut tüketimin 15mA'ya yükselmesi anlamına geliyordu, bu da pil ömrü çok zayıflayacağı için büyük bir dezavantajdı. Ayrıca 8A mikrodenetleyicinin 5.5V güvenli voltaj sınırını da aştı.

Bu nedenle, bu sorundan kurtulmak için 6V güç kaynağına seri olarak 330 ohm'luk bir direnç bağlanmıştır. Direnç temel olarak, mikrodenetleyiciyi güvenli bir şekilde çalıştırmak için voltaj seviyesini 5.5V içinde düşürmek için kendi üzerinde bir voltaj düşüşüne neden olur. Ayrıca 330 değeri çeşitli faktörler göz önünde bulundurularak seçilmiştir:

  • · Amaç, güçten tasarruf etmek için 8A'yı mümkün olduğu kadar düşük voltajda çalıştırmaktı.
  • · Mikrodenetleyici hala çalışıyor olmasına rağmen lcd'nin 3.2V altında çalışmayı bıraktığı gözlemlendi.
  • · Bu 330 değeri, madeni para pillerinden tam olarak yararlanmak için aşırı uçlardaki voltaj düşüşlerinin tam olarak doğru olmasını sağlar.
  • · Madeni para hücreleri zirvedeyken, voltaj 6,3V civarındaydı ve 8A 4,6 – 4,7 V (@ 5mA) efektif voltaj alıyordu. Ve piller neredeyse kuruduğunda, 8A ile voltaj 4V civarındaydı ve lcd, doğru şekilde çalışması için sadece yeterli voltaj, yani 3.2V alıyor. (@3.5mA)
  • · Pillerin 4v seviyesinin altında, hiçbir şeye güç vermek için herhangi bir meyve suyu kalmadığı için etkili bir şekilde işe yaramazlardı. Direnç üzerindeki voltaj düşüşü, 8A mikrodenetleyicinin ve lcd'nin akım tüketimi, esasen pil ömrünün artmasına yardımcı olan voltajın düşürülmesiyle azaldığından, tüm süre boyunca değişir.

16*2 LCD, Arduino IDE'nin yerleşik LiquidCrystal kitaplığı kullanılarak programlanmıştır. 8A mikrodenetleyicinin 6 veri pinini kullanır. Ek olarak, parlaklığı ve kontrastı iki veri pini kullanılarak kontrol edildi. Bu, ekstra bir bileşen, yani bir potansiyometre kullanılmayacak şekilde yapıldı. Bunun yerine, ekranın kontrastını ayarlamak için veri pimi D9'un PWM işlevi kullanıldı. Ayrıca gerekli olmadığında lcd arka ışığının kapalı olması gerekiyordu, bu yüzden güç vermek için bir veri pini kullanmadan bu mümkün olmazdı. Arka ışık LED'i boyunca akımı sınırlamak için 220 ohm'luk bir direnç kullanıldı.

Buzzer ve LED'ler de 8A'nın veri pinlerine (her biri için bir tane) bağlandı. Kırmızı LED'deki akımı sınırlamak için 5,6 k ohm'luk bir direnç kullanılırken, yeşil olan için 1 k ohm'luk bir direnç kullanıldı. Direnç değerleri, parlaklık ve akım tüketimi arasında tatlı bir nokta elde edilerek seçilmiştir.

AÇMA/KAPAMA düğmesi bir veri pinine bağlı değildir ve sadece projeyi değiştiren bir anahtardır. Terminallerinden biri 330 ohm rezistöre, diğeri ise lcd'nin Vcc pinlerine ve 8A'ya bağlanır. Diğer iki düğme, yazılım aracılığıyla voltaj sağlamak için dahili olarak yukarı çekilen veri pinlerine bağlanır. Bu, anahtarların çalışması için gereklidir.

Ayrıca, Kurulum düğmesinin bağlandığı veri pimi, bir Donanım Kesintisi pimidir. Kesme servis rutini (ISR), Arduino IDE'de etkinleştirilir. Bunun anlamı, kullanıcı kurulum menüsünü çalıştırmak istediğinde, 8A'nın mevcut metronom olarak çalışmasını askıya alır ve temel olarak Kurulum menüsünü etkinleştiren ISR'yi çalıştırır. Aksi takdirde kullanıcı Kurulum menüsüne erişemez.

Daha önce bahsedilen EEPROM seçeneği, kart kapatıldıktan sonra bile girilen verilerin kayıtlı kalmasını sağlar. Ve SPI başlığı 6 pinden oluşur – Vcc, Gnd, MOSI, MISO, SCK, RST. Bu, SPI protokolünün bir parçasıdır ve daha önce belirtildiği gibi, yeni özellikler veya başka bir şey eklemek için 8A'yı tekrar programlamak için bir ISP programcısı kullanılabilir. Vcc pini pilin pozitif terminalinden izole edilmiştir ve bu nedenle Metronom, daha önce bahsedilen kısıtlamaları göz önünde bulundurarak harici bir güç kaynağı kullanma seçeneği sunar.

Tüm proje, devre şemasına göre münferit bileşenlerin ve uygun bağlantıların lehimlenmesiyle bir Veroboard'da inşa edildi.

Önerilen: