XY-V17B Ses Modülü

Başlatan oguztkn, 06 Nisan 2022, 20:06:17

oguztkn

Merhabalar,

Resimdeki 4mb hafızalı ses modülünü kullanmaya çalışıyorum. Bu modülü dışarıdan gelecek bir tetik ile aktif edebileceğim bir sistem kuracağım. Fakat usart konusunda yeterli bilgim yok. Mesela play komutu için Serout komutunun içeriği nasıl olmalı acaba yardımcı olabilir misiniz ?

Şimdiden Teşekkürler İyi Çalışmalar....

Datasheet konumu : https://electropeak.com/learn/interfacing-dy-sv17f-audio-mp3-player-module-with-arduino/









ete

Kod kontrol tablosundan yararlanarak bu işi yapabilirsin.
Tablaonun birinci satırında PLAY komutu yani çaldırmayı başlatma komutu yer alıyor.
Bu komutları Serout yerine HSEROUT ile versen daha iyi olurdu. Serout her hangi bir pinden çalışır ama Hserout yanlızca TX için ayrılmış pinden çalışır. O pini başka işlere kullandın ise Serout kullanırsın. Şimdi Play komutu nasıl verilecek onu göstereceğim. Benzer şekilde diğerlerini de yaparsın.

SEROUT Pin, Mod,[$AA,$02,$00,$AC]

Burada yer alan Pin data çıkış pini olacaktır. Bu pinin çıkış olarak ayarlandığından emin ol.
Mod ise haberleşme hızını ve şeklini belirleyen değişkendir. 0-15 arasında bir rakam olmalıdır.
0-3 arası Driven True yani olduğu gibi sinyali aktaran ve 0=2400 , 1=1200, 2=9600, 3=300 baud rate değerine denk gelmektedir. Muhtemelen senin kart 9600 ile haberleşmektedir. Bilmiyor isen data sheet den bunu öğren mutlaka. 9600 olduğunu kabul edersek ve çıkışı farzedelim PORTA.1 pininden yapacaksan kod şöyle olur.

SEROUT PORTA.1, 2,[$AA,$02,$00,$AC]

Ete




oguztkn

Merhaba hocam,

12f615 ile SEROUT PORTA.1, 2,[$AA,$02,$00,$AC] şu komutu uygun porta uyarlayarak tetik ile çalıştırabildim teşekkür ediyorum.

Bir de şunu denedim : volume up için AA 14 00 BE yazılmış bunları serout GPIO.1,2,[$AA,$14,$00,$BE] ile 200ms aralıklar ile bir kaç kere peş peşe gönderdim bir değişiklik olmadı.

Sonra az aşağıda set volume AA 13 01 vol sm kodunu gördüm vol =0x00 - 0xff olarak yazıyordu bende bunu

serout GPIO.1,2,[$AA,$13,$01,$ff] yada serout GPIO.1,2,[$AA,$13,$01,$00]  olarak denedim oda farketmedi. Nedeni ne olabilir acaba ? 

ete

Bu aletin bir kaç farklı çalışma modu bulunuyor. Sen ise bunlardan birisi olan UART modunu kullanıyorsun. Bu nedenle öncelikle bu aleti UART moduna alman gerekiyor. Aldınmı almadınmı bilemiyorum çünki hiç bahsetmemişsin.
UART modu için CON1 ve CON2 pinlerine 10K direnç ile LOW uygulayacaksın Yani bu pinleri 10K direnç ile GND ye bağlayacaksın.
CON3 pinine ise direk 5V vermen gerekiyor.
BU şekilde bu alet uart moduna girmiş olacaktır. Sonra o yaptıklarını tekrarlarsan sonuç alman gerekir alamıyorsan alet bozuktur demekten başka elimden bir şey gelmiyor maalesef.

Ete

oguztkn

#4
Hocam Tekrar Merhaba,

Konu aynı olduğundan yeni bir tane açmak istemedim. Aynı modul ile tekrar uğraşmaktayım.

SEROUT Pin, Mod,[$AA,$02,$00,$AC] komutu ile play işlemi yaptırabilmekteyim. Fakat ben istediğim numaralı şarkıyı çaldırmak istiyorum.

Bunun içinde

play specified song komutu: [AA 07 02 S.N.H S.N.L SM] denmiş yani şarkı numarasını 16 bit halde highbyte ve lowbyte olarak verilmeli imiş

Bende

SEROUT Pin, Mod,[$AA,$07,$02,$00,$02] şeklinde vererek 2 numaralı şarkıyı çaldırmak istiyorum fakat işe yaramıyor. Yanlış mı yazıyorum acaba ?

Bu arada modul uart modunda ve 9600 ile haberleşmekte.

ete

S.N.H S.N.L SM ifadelerinin açıklaması ne şekilde acaba. Bunu bilmek lazım.
Hadi diyelimki S.N.H=Song Number High,yani şarkı numarası HIGH byte kısmı,  S.N.L=Şarkı Numarası LOW Byte kısmı peki SM nedir? onuda bilmek lazım.

Ete

oguztkn

#6


sanırım tüm derdi checksum gibi hocam .

Bir sitede şu örneği buldum :
fakat başarılı olmadı
Çeşitli UART komutlarının tümü veri sayfasında bulunabilir. Pin c.2'den veri gönderen bazı Picaxe örnekleri:

Oynat: serout c.2,T9600_8,($AA,$02,$00,$AC) argümanı yoktur, son AC, diğer tüm AA+02+ değerleri için bir sağlama toplamıdır 00 (Windows'un hesap makinesini programcı modunda patlatın)

Sonraki: serout c.2,T9600_8,($AA,$06,$00,$B0) argüman yok

EQ'yu jazz- 3'e ayarlayın : serout c.2,T9600_8,($AA ,$1A,$01, $03 ,$C8) ' sadece referans için kalın yazılmıştır

Dosya 5'i oynatın : serout c.2,T9600_8,($AA,$07,$02,$00, $05 ,$B8) ' sadece referans için kalın yazılmıştır

100 ekleyin seri komutlar arasında ms duraklama. Starter 08M2 kodu eklendi.
kaynak : https://picaxeforum.co.uk/threads/dy-sv17f-mp3-module.32605/#post-340585

ete

#7
Yine epeyce araştırdım. Hiç bir yerde detaylı doğru dürüst bir Data sheet yok maalesef.
Anlamak zor. Verdiğin linke baktım. Görünüşe bakılırsa en sonda yer alan değer CheckSUM oda şöyle hesaplanıyor. ChekSUM'a kadar olan rakamları toplayacaksın. Değişkenin Byte cinsinden olursa hesap sonucu $FF'i aşınca otomatikman hesap sonucu toplamdan $FF çıkartılınca kalan değer olur ve basic bunu otomatikman yapar. O şekilde bir dene istersen.
TEMP diye byte cinsinden bir değişken tanımla. Şöyle topla. TEMP=$AA+$02+$00 kalan sonucun $AC olduğunu göreceksin.
Kalanı komut sonuna ekle olsun bitsin.

Ete

Powered by EzPortal