Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Cambiare frequenza speaker tramite PIC

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[11] Re: Cambiare frequenza speaker tramite PIC

Messaggioda Foto Utentesimo85 » 15 mag 2013, 20:09

Premesso che il 4518 non è un PIC, bisogna vedere cosa dice il datasheet del tuo microcontrollore riguardo alle interruzioni, in particolare a pag. 111 PORTB Interrupt on change.

PS: Io userei un transistore per pilotare lo speaker, così.
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[12] Re: Cambiare frequenza speaker tramite PIC

Messaggioda Foto UtenteDavidark » 17 mag 2013, 13:21

Grazie per il consiglio, ma è una sorta di compito che ci ha dato il prof quello di cambiare la frequenza del segnale tramite il timer. Leggerò il datasheet e vedrò di capire qualcosa :-)
Avatar utente
Foto UtenteDavidark
5 3
 
Messaggi: 23
Iscritto il: 8 apr 2013, 11:39

0
voti

[13] Re: Cambiare frequenza speaker tramite PIC

Messaggioda Foto UtenteDavidark » 26 mag 2013, 20:35

Ho chiesto al prof e mi ha detto di far alternare il segnale in ingresso allo speaker tramite due timer con overflow diversi!! In effetti ho provato e si alternano un segnale più alto con uno più basso, anche se non si avvincina neanche al suono della sirena! un po' "rustica" come soluzione, che ne pensate??? :D
Avatar utente
Foto UtenteDavidark
5 3
 
Messaggi: 23
Iscritto il: 8 apr 2013, 11:39

0
voti

[14] Re: Cambiare frequenza speaker tramite PIC

Messaggioda Foto UtentematteoDL » 26 mag 2013, 20:55

Da quello che ho capito vuoi un'onda quadra con una frequenza che varia in modo abbastanza continuo tra una f_{MAX} e una f_{MIN}.
Per fare questo il modo migliore mi sembra usare il PWM del PIC e variarne il periodo nel main ogni tot millisecondi.
Equivalentemente si può invece variare il valore di partenza del timer ogni tot overflow direttamente dalla ISR.
Avresti idea di quali sono le f_{MAX} e f_{MIN}? Se programmi in C potrei postarti un esempio di codice.
Avatar utente
Foto UtentematteoDL
704 3 7
Expert
Expert
 
Messaggi: 310
Iscritto il: 26 feb 2012, 20:49

0
voti

[15] Re: Cambiare frequenza speaker tramite PIC

Messaggioda Foto UtenteDavidark » 26 mag 2013, 23:18

Qualsiasi frequenza max e min va bene, e sarei interessato a vedere come lo faresti tu in C ! =) Grazie
Avatar utente
Foto UtenteDavidark
5 3
 
Messaggi: 23
Iscritto il: 8 apr 2013, 11:39

1
voti

[16] Re: Cambiare frequenza speaker tramite PIC

Messaggioda Foto UtenteTardoFreak » 26 mag 2013, 23:24

A me invece piacerebbe vedere come lo risolveresti TU in C. :mrgreen:

Suppongo che tu ci abbia già provato, vero?
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[17] Re: Cambiare frequenza speaker tramite PIC

Messaggioda Foto UtentematteoDL » 27 mag 2013, 0:07

Davidark ha scritto:Qualsiasi frequenza max e min va bene

Non credo, cioè se vuoi simulare una sirena dovranno almeno essere nel range dell'udibile (circa 20Hz a circa 20kHz).
Bisogna decidere anche la frequenza con cui si passa da una all'altra, ad esempio quelle delle ambulanze mi sembrano abbastanza lente, direi 0,5Hz, ma non ne sono sicuro..
Ci saranno delle specifiche da rispettare sulle cui costruire il programma e quelle devi saperle tu.
Poi come dice Foto UtenteTardoFreak sarebbe più corretto che provassi almeno ad iniziarlo autonomamente, poi in caso posso aiutarti a correggere gli errori.
Hai verificato che il tuo PIC abbia il modulo PWM?
Avatar utente
Foto UtentematteoDL
704 3 7
Expert
Expert
 
Messaggi: 310
Iscritto il: 26 feb 2012, 20:49

0
voti

[18] Re: Cambiare frequenza speaker tramite PIC

Messaggioda Foto UtenteFrancesco90 » 28 mag 2013, 8:37

Ciao davide!
ti preannuncio che sono ancora agli inizi, ma per caso hai provato a far variare l'uscita dello speaker tramite 2 timer a differente frequenza?
Personalmente ho fatto qualche prova e cosi facendo sembra che si possa ottenere qualche risultato, personalmente ho usato il compilatore "PIC C Compiler" , per ottenere ottimi risultati però dovrai comunque utilizzare un circuito di amplificazione, un BJT, che amplifica il segnale, in quanto il PIC non fornirà sufficiente corrente allo speaker.
Ad ogni modo ti posto una bozza di codice per farti vedere come avrei risolto il problema :D

Ho usato 2 timer per fare variare la frequenza, ed ho inizializzato le seguenti variabili per gestire "un'attesa" all'interno del singolo timer:
int i=0;
int a=0;

I timer li ho cosi realizzati:

1° timer

#int_RTCC
void RTCC_isr(void){
if (a<3){
if(input(PIN_A1)==1){
output_toggle(PIN_A2);}
a++;}
else {a=0;
disable_interrupts(INT_RTCC);
enable_interrupts(INT_TIMER2);
enable_interrupts(GLOBAL);
}}

2° timer

#int_TIMER2 //usato per la sirena
void TIMER2_isr(void)
{
if (i<250){
if(input(PIN_A1)==1){
output_toggle(PIN_A2);}
i++;}
else {i=0;
disable_interrupts(INT_TIMER2);
enable_interrupts(INT_RTCC);
enable_interrupts(GLOBAL);
}}

dove all'interno del main ho inserito questo:
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_8);
setup_timer_2(T2_DIV_BY_16,101,2);

dove variando i parametri dei singoli timer riesci ad ottenere "tonalità" differenti.

spero di esserti stato utile!
Avatar utente
Foto UtenteFrancesco90
0 2
 
Messaggi: 5
Iscritto il: 18 mag 2013, 19:07

0
voti

[19] Re: Cambiare frequenza speaker tramite PIC

Messaggioda Foto UtenteDavidark » 28 mag 2013, 10:24

Mi piace molto la tua idea Francesco! Proverò e ti farò sapere! =D>
Avatar utente
Foto UtenteDavidark
5 3
 
Messaggi: 23
Iscritto il: 8 apr 2013, 11:39

0
voti

[20] Re: Cambiare frequenza speaker tramite PIC

Messaggioda Foto UtenteFrancesco90 » 28 mag 2013, 13:56

Fammi sapere!:)
Avatar utente
Foto UtenteFrancesco90
0 2
 
Messaggi: 5
Iscritto il: 18 mag 2013, 19:07

Precedente

Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti