Sari la conținut
ELFORUM - Forumul electronistilor

Sonerie pe muzica de Mozart


schnapy

Postări Recomandate

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 spre comentariu
  • Răspunsuri 29
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • homer

    15

  • 10vid

    6

  • schnapy

    3

  • Zerro

    1

Top autori în acest subiect

Vizitator 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 spre comentariu

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 spre comentariu

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 spre comentariu

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 spre comentariu

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 spre comentariu

Prima data pusesem de 1nF cum e in schema, dar dupa citirea datasheet-ului am pus de 33pF cum scrie pentru 4mhz.Pe pinul 15 am 2.6V si pe 16 cam 0.52, la oscilator.Se pare ca partea de simulare din Proteus cu cea din realitate nu prea coincid.

Link spre comentariu

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 spre comentariu

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 spre comentariu

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 spre comentariu

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 spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări