Jump to content
ELFORUM - Forumul electronistilor

Sonerie pe muzica de Mozart


Recommended Posts

Treaba nu se termina aici, pentru ca frecventele notelor sunt pe scara logaritmica, iar acele coduri sunt liniare.

log      (frecventa) = nota   12  __     \/2    
Astfel, pentru a genera tabelul de frecvente (sau mai bine spus de perioade de asteptare intre doua schimburi de nivel la pin, perioade care se vor da lui Timer0 sa le numere), se foloseste urmatoarea relatie:

 

          (nota)   12  __     \/2          = frecventa

Sau mai simplu, se poate calcula recursiv:

 

frecventa(nota) = frecventa(nota-1) * 1.059463094

 

Din cauza ca aceste calcule dau rezultate fractionale, iar Timer0 pe 8 biti nu poate cuprinde o precizie mai mare de cca. 2 zecimale, se poate auzi cum unele note canta destul de fals.

Pentru o precizie mai mare se foloseste sau un timer mai mare, sau esantionare (sampling).

Link to comment
  • Replies 29
  • Created
  • Last Reply

Top Posters In This Topic

Guest mestersoft

Multumim mult domnule 10vid, vazusem pe undeva pe un site german dar nu mai imi amintesc exact, erau acolo explicatii la modul de a obtine respectivele note etc.

Link to comment

Ce as putea adauga la circuitul acesta pentru a alimenta PIC-ul doar pentru o perioada scurta?Ma gandeam sa pun un 555 sa actioneze un releu si sa-l tina deschis pentru cat timp reglez eu, exact ca un automat de scara, dar in cazul asta ce fac cu butonul care trebuie apasat ?

Link to comment

Am facut montajul propriu zis dar nu functioneaza.Singurele modificari aduse e ca nu am pus LED-urile dar asta nu prea conteaza si ca nu am alimentat cu rezistenta pinii 17,18. Din cate am vazut din simularea din proteus, daca pinii 17,18 nu sunt alimentati de la 5V cu o rezistanta de 4.7k intre melodia ar trebui sa sune continuu.Hexul l-am verificat in Proteus si functioneaza.PIC ul e 16F84A - 04/p deci suporta quartul de 4mhz pe care i l-am pus.Tensiune este pe pini, dar de ordinul milivoltilor. Ce nu fac bine ?

Link to comment

Cred ca e de la programare ceva. In soft imi apare ceva legat de sigurante ca si cum ar fi setate pe default."The fuses are set to the default erased value.""Do you wish to edit the fuses before programming ?"Si am in meniu: WDT: DisabledOscillator: RCPWRTE: DisabledCode protesc: Disabled.

Link to comment

L-am setat si XT si HS. La un moment dat a inceput el sa bazaie un pic, dar nu se intelegea nimic. Am folosit un piezo recuperat de pe o placa de baza. Oare sa fie de la asta, sa nu fie bun ? Desi nu cred.Daca las pinul 18 nealimentat buzzerul ala scoate el un zgomot. Daca insa pun ca in schema si ating pinul 18 de masa se aude doar cat ating si se opreste pe urma.

Link to comment

In soft imi apare ceva legat de sigurante ca si cum ar fi setate pe default.

"The fuses are set to the default erased value."

"Do you wish to edit the fuses before programming ?"

 

Si am in meniu:

 

WDT: Disabled ??

Oscillator: RC

PWRTE: Disabled

Code protesc: Disabled.

Default-ul la bitii de configurare (bitii stersi) = 11111111111111.

Am verificat in datasheet si pentru WDT = 1 ---> Enabled.

Misca putin acel bit, sau eventual schimba tot cuvantul de configurare in 3FF1 (11111111110001 in binar).

Link to comment

L-am programat cu WDT disabled, Oscillator XT, PWRTE Enabled, si Code protecte Disabled.Treaba buna e ca acum functioneaza LED urile cum trebuie dar sonerie tot nu am. Am 2.6V pe 6-7 si 8-9 si nu variaza deloc cand se aprinde ledul.M-am uitat la alte configuratii la care le-am mai programat si asa erau setarile la sigurante ca mai sus, si functineaza bine aplicatiile.Ce altceva ar mai putea fi ?

Link to comment

Soneria asta e cu batai de cap. Am pus totul pe o placa PCB ca am crezut ca aceasta e vinovata, initial fiind facut in aer. Am incercat pe breadboard si a functionat la atingerea pinilor 10 si 8-9.Mergea bine si treaba cu luminile adica la apasarea switch ului de la 18 se aprindea pe 11 si la 17 se aprindea 10.Am mutat totul pe un PCB, si surpriza, nu mai merge :))Acum daca apas oricare switch de la 17 sau 18 imi pornesc ambii pini 10 si 11 si se aprind ambele leduri.Daca leg piezo la 6-7 si 8-9 ca in schema nu se aude nimic.Va rog ajutati-ma cineva ca stau de 2 zile si tot nu ii dau de cap ce ar putea sa aiba. Am programat si alt PIC si face exact la fel. Chiar nu imi dau seama ce ar putea avea, circuitul e facut corect dupa acea schema si am folosit la oscilator 4Mhz si condensatori de 24 pF.

Link to comment

Am reusit sa fac schema pana la urma sa-l fac sa functioneze.Uitasem un condesator de 0.1uF intre + si -.Totusi mi se pare ca se aude un pic cam incet. Oare sa fie buzzerul prea slab ?Citeam pe un forum spaniol ca unii si-ar fi pus un piezo care se auzea chiar prea tare. Stiti cumva ce model ?

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines