PIC AND LEDDDDDDD

Dec 02, 2003 15 Replies

Sto costruendo il mio primo programmatore per pic (16f84a) e per vedere se riesco nella programmazione ho trovato questo schema su internet.Consiste in un led collegato al pic che dovrei far illuminare intermittentemente..(si può scrivere intermittentemente?:P) a piacere.



Per dare il Clock al micro però veniva utilizzato un quarzo e due condensatori collegati tra osc1 e osc2...va bene la soluzione che ho messo io invece? Ovvero collegare Osc1 all'alimentazione ed a massa tramite una resistenza ed un condensatore? non è una mia idea,ho trovato anche quella,e perciò volevo sapere se funzionava...


anche perchè ho capito cos'è un clock...(spero..)ma non come si faccia a darlo al micro.


ringrazio tutti per eventuli risposte..


mi ero dimenticato di postare lo schema in fidocad...anche se mi sembrava di aver corretto il post... anyway..here we are: [FIDOCAD] LI 85 90 75 90 MC 75 90 2 0 220 MC 50 90 0 0 080 MC 50 90 1 0 040 LI 110 80 135 80 LI 135 80 135 40 MC 135 40 3 0 010 LI 85 75 70 75 LI 70 75 70 45 LI 70 45 115 45 MC 115 45 0 0 080 LI 125 45 135 45 LI 70 45 55 45 MC 45 45 0 0 170 MC 45 45 1 0 040 LI 85 80 50 80 LI 110 70 125 70 MC 125 60 1 0 080 LI 125 60 125 50 LI 125 50 135 50 LI 125 70 125 115 LI 35 115 35 80 LI 50 80 30 80 MC 75 115 0 0 170 LI 35 115 75 115 LI 85 115 125 115 MC 30 80 1 0 040 SA 70 45 SA 85 75 SA 85 90 SA 85 80 SA 125 70 SA 35 80 SA 135 45 SA 135 50 TY 40 35 5 3 0 0 0 * 100KPF TY 40 30 5 3 0 0 0 * C1 TY 105 35 5 3 0 0 0 * R1 10K TY 130 65 5 3 0 0 0 * 4.7K TY 130 60 5 3 0 0 0 * R3 TY 80 120 5 3 0 0 0 * C2 20PF TY 40 95 5 3 0 0 0 * R2 470 TY 85 80 5 3 0 0 0 * VSS TY 85 75 5 3 0 0 0 * MCLR TY 75 90 5 3 0 0 0 * RB0,pin 6 MC 85 60 0 0 650 TY 100 70 5 3 0 0 0 * OSC1 TY 80 50 5 3 0 0 0 * PIC 16F84A

Il giorno 2 Dec 2003 06:58:01 -0800, snipped-for-privacy@hotmail.com (aleda5859) ha scritto:

Trattandosi di un oscillatore RC la frequenza che ottieni non è né precisa né stabile, comunque per la prima prova che vuoi fare va bene. Con i valori di R e C stai proprio ai limiti (vedi datasheet pag. 23), ti consiglio di salire con la R (10k) e soprattutto con C (47 - 100pF), se non vuoi che la frequenza del tuo clock sia determinata interamente dalle capacità parassite... Dopo la prima prova ti consiglio di passare all'oscillatore a quarzo.

Il micro ha internamente un circuitino CMOS che, con l'aggiunta di pochissimi componenti esterni, funziona da oscillatore ad onda quadra, e genera il clock utilizzato dal micro stesso. Tutto qui.

Luigi ____________________________________________________________

Napoli - Italy

Home Page:

formatting link

Sostituisci nospam con katamail per scrivermi Replace nospam with katamail to mail me ____________________________________________________________

ti ringrazio!!!! Vorrei chiederti anche un altra cosa... Quale rapporto corre tra frequenza e secondi(millisecondi ecc...?) hai altri suggerimenti per applicazioni base?

Il giorno 7 Dec 2003 00:49:53 -0800, snipped-for-privacy@hotmail.com (aleda5859) ha scritto:

Se intendi il tempo di esecuzione di un'istruzione (tranne i salti), detto instruction cycle, è pari a 4 volte il periodo di clock, che a sua volta è uguale al reciproco della frequenza di clock, ovviamente. Ad es. se la frequenza di clock è 20 MHz, il periodo di clock è 50 ns, e l'instruction cycle è 200 ns.

Dipende dall'applicazione...

Luigi ____________________________________________________________

Napoli - Italy

Home Page:

formatting link

Sostituisci nospam con katamail per scrivermi Replace nospam with katamail to mail me ____________________________________________________________

Se io volessi creare un contatore che partendo da un numero definito conti alla rovescia fino a zero,come dovrei fare per dergli l'impulso? Mi spiego,so come realizzare il circuito,l'unica cosa di cui necessito è che una certa tensione sia applicata ad un piedino di un integrato ad intervalli regolari,precisamente di un secondo l'uno. Come faccio per far arrivare questa tensione? condensatori? Come trasformo una tensione normale "Pila" in un onda quadra?

scusate se mi intrometto :)

f = 1/T dove T è il periodo, in secondi (s), e f la frequenza in Hertz (Hz)

Hai visto il corso di tanzilli ?

formatting link

Ciao ------------------------------------ Per.Ind. Jaco the Relentless :-P cgaudiolaboratories@interfree.it http://cgaudiolaboratories.interfree.it/ ------------------------------------

Il giorno 8 Dec 2003 02:20:25 -0800, snipped-for-privacy@hotmail.com (aleda5859) ha scritto:

Io utilizzo in genere un ciclo SW a durata fissa, ad es. 50 o 100 ms; il controllo della durata del ciclo è gestito tramite un contatore, a 8 o 16 bit a seconda dei casi, che viene incrementato nella routine di servizio di interrupt, eseguita ad ogni overflow della variabile di sistema TMR0. A fine ciclo c'è un'apposita routine che "perde tempo" fin quando non è trascorso il tempo di ciclo predefinito.

In questo modo so che ogni ciclo del SW ha una durata costante e prestabilita, quindi se voglio ad es. mantenere alta un'uscita del pic per 500 ms basta che controllo il numero di cicli SW durante i quali tenere alta l'uscita.

La tensione deve essere di 5V? Quanta corrente deve erogare?

Se la tensione a livello alto è 5V e la corrente è di pochi mA basta usare un'uscita del pic.

Luigi ____________________________________________________________

Napoli - Italy

Home Page:

formatting link

Sostituisci nospam con katamail per scrivermi Replace nospam with katamail to mail me ____________________________________________________________

ringrazio ancora per le risposte!:)

Non ho capito bene la funzione dei condensatori in rapporto a quella della frequenza... per esempio per ottenere in uscita un onda quadra con frequenza di un secondo (1millisecondo livello1-999millisecondi livello0) con un NE.555 devo applicare ai piedini 2/6 determinate resistenze (e credo servano per diminuire il tempo di carica del condensatore che dovrò applicare in seguito) ed appunto un condensatore. Ora aumentando il valore delle resistenze diminuisce V e quindi il condensatore ci mette più tempo a caricarsi? Lo stesso aumentando C? Ed una volta che il condensatore è caricato completamente? e poi come si scarica?

se volete posto uno schema per rendere le cose più comprensibili....scusate il mio italiano:P

Il giorno 9 Dec 2003 04:45:54 -0800, snipped-for-privacy@hotmail.com (aleda5859) ha scritto:

[...]

Facciamo prima così...

[FIDOCAD] TY 25 -10 4 2 0 0 0 * Ton = ln2 * R1 * C1 TY 25 -5 4 2 0 0 0 * Toff = ln2 * R2 * C1 MC 20 35 0 0 115 MC 25 15 3 0 010 MC 30 35 1 0 200 MC 20 60 3 0 200 MC 25 20 0 0 115 MC 25 65 1 0 170 MC 25 80 0 0 045 LI 25 15 25 20 LI 25 30 25 35 LI 40 40 40 35 LI 40 50 40 60 LI 25 60 25 65 LI 30 50 30 60 LI 25 75 25 80 SA 25 35 SA 30 35 SA 30 60 SA 25 60 SA 40 60 SA 25 15 TY 14 37 4 2 0 0 0 * R2 TY 28 68 4 2 0 0 0 * C1 SA 25 80 TY 51 37 5 3 0 0 0 * dis TY 51 47 5 3 0 0 0 * thr TY 51 57 5 3 0 0 0 * trig RV 50 30 80 70 LI 80 45 85 45 LI 70 70 70 75 LI 60 70 60 75 LI 45 60 50 60 LI 45 50 50 50 LI 45 40 50 40 LI 60 25 60 30 LI 70 25 70 30 TY 54 30 5 3 0 0 0 * vcc TY 66 30 5 3 0 0 0 * res LI 67 31 75 31 TY 54 65 5 3 0 0 0 * gnd TY 66 65 5 3 0 0 0 * ctrl TY 69 42 5 3 0 0 0 * out TY 47 36 4 2 0 0 0 * 7 TY 47 46 4 2 0 0 0 * 6 TY 47 56 4 2 0 0 0 * 2 TY 61 71 4 2 0 0 0 * 1 TY 71 71 4 2 0 0 0 * 5 TY 81 41 4 2 0 0 0 * 3 TY 61 25 4 2 0 0 0 * 8 TY 71 25 4 2 0 0 0 * 4 LI 70 15 70 25 LI 60 25 60 15 TY 27 22 4 2 0 0 0 * R1 TY 27 26 4 2 0 0 0 * 470k TY 33 39 4 2 0 0 0 * D1 TY 13 49 4 2 0 0 0 * D2 TY 28 72 4 2 0 0 0 * 100u LI 60 75 60 80 LI 60 80 25 80 TY 77 24 4 2 0 0 0 * U1 TY 12 41 4 2 0 0 0 * 27k TY 33 43 4 2 0 0 0 * 1N4148 TY 5 53 4 2 0 0 0 * 1N4148 MC 70 15 3 0 000 TY 64 4 4 2 0 0 0 * Enable MC 15 15 1 0 170 TY 8 16 4 2 0 0 0 * C3 TY 8 20 4 2 0 0 0 * 1u MC 15 25 0 0 045 LI 15 15 60 15 LI 20 35 40 35 LI 20 60 45 60 LI 85 45 90 45 LI 40 40 45 40 LI 40 50 45 50

Luigi ____________________________________________________________

Napoli - Italy

Home Page:

formatting link

Sostituisci nospam con katamail per scrivermi Replace nospam with katamail to mail me ____________________________________________________________

ok..perfetto! Che dire sei un grande...!:-) Allora vediamo... intuitivamente io avrei capito così: Più è grande il valore resistivo di R1 meno tensione ci sarà tra la fonte di tensione appunto e i piedini 2/6 nonchè al piedino del condensatore C1. Meno tensione c'è su C1 più tempo ci mette a caricarsi,e mentre si carica arriva sui piedini 2/6 una tensione inferiore al livello di soglia per mettere il piedino dell'integrato a Livello1. Quindi più aumentano R1 e C1 più sarà maggiore il tempo che il piedino

3 dell'integrato starà senza far passare tensione.

Ho capito bene?...non capisco perchè però... :-(

Il condensatore C3,noncheè i diodi D1,D2..che ci stanno a fare?(sono moooolto 'gnurande!:-) )

E poi come riscarica C1..attraverso il piedino 7 dell'integrato?Ma come?

e le formule..che voglion dire?intendo che non ne conosco il significato,non che non siano corrette... :P

Tensione d'entrata = R1*C1* In2... cos'è In2?

Intanto GRAZIE GRAZIE GRAZIEGRAZIE GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE GRAZIE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!per le risposte...

prima che mi dimentichi,una domanda sui Diodi... Quando si segnala uno dei due connettori di un diodo con il segno + su uno schema Pcb (quello dove si vedono i componenti..non il vero e proprio schema,non sò come chiamarlo..) vuol dire che li andrà la parte senza la barretta nera o no?

[FIDOCAD] PA 85 40 14 14 6 2 1 RP 85 38 95 42 3 RP 105 30 100 50 3 PA 145 40 14 14 6 0 1 RV 95 30 135 50 3 RP 135 38 145 42 3 TY 135 55 15 10 0 0 0 * + TY 25 75 8 4 0 0 0 * La barretta nera indica il catodo (parte da collegare al negativo)? oppure è l'anodo che è indicato dalla barretta?

Nei vecchio Diodi c'era una barretta argentata che ne indicava l'anodo(parte da attaccare al positivo della tensione vero?)..questa è la mia fonte di confusione... Adesso la barretta indica la parte da attaccare al negativo.. ho capito bene?Lo stesso per gli Zener?

"aleda5859" ha scritto nel messaggio

E' esattamente il contrario di quanto disegnato sul tuo schemino, comunque l' indicazione + su un solo diodo non e' tanto ortodossa, va bene solo su un ponte o se e' usato come raddrizzatore. Lo Zener si comporta in modo inverso dato che puoi usare come Zener da 0,7V anche diodi al silicio, invertendo pero' il collegamento, cioe' se in una serie di Zener devi metterci anche un diodo normale, la righetta degli Zener va collegata in modo opposto a quella dei diodi normali.

Ciao Celso

.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.

EMAIL: snipped-for-privacy@freesurf.ch H.P.:

formatting link
pagina d'elettronica:
formatting link
per rispondere in privato elimina TOGLI

.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.

Non è proprio così, perchè siamo d'accordo che il partitore diminuisce la tensione, ma considerando un'impedenza di carico infinita. Il condensatore come carico si comporta in maniera molto simile (grossolanamente) a una resistenza molto bassa quando è scarico e molto alta quando è carico. Senza stare a spiegare tutto, la legge da cui si ricava il tempo di carica è la seguente (se non ricordo male)

Vc = Vg - e^ (-t/RC)

dove Vc è la tensione ai capi del condensatore e Vg la tensione del generatore

Ciao ------------------------------------ Per.Ind. Jaco the Relentless :-P cgaudiolaboratories@interfree.it http://cgaudiolaboratories.interfree.it/ ------------------------------------

"aleda5859" ha scritto

Ni... nel senso che non e' che si carica piu' lentamente perche' c'e' meno tensione, ma perche' a causa della resistenza circola meno corrente... e' come riempire un secchio con un filino d'acqua invece che con un bel getto, si arriva comunque a riempirlo fino in cima, ma ci si mette piu' tempo. E se il secchio e' piu' grande ci vorra' ancora piu' tempo. La tensione sul condensatore aumenta comunque (tendenzialmente fino al valore di Vcc) ma la velocita' con cui sale dipende dalla quantita' di cariche che "gli si butta dentro" in un certo tempo (corrente)... che a sua volta dipende dalla tensione di alimentazione, dalla resistenza, e dalla tensione via via raggiunta dal condensatore (piu' la sua tensione sale e piu' rallenta la velocita' di carica).

I diodi servono per avere due percorsi separati per la corrente di carica e per quella di scarica. La carica avviene attraverso R1 e D1, la scarica attraverso R2 e D2. In questo circuito secondo me non servono, in quanto la sproporzione tra R1 e R2 e' comunque tale da creare un lungo tempo di carica e un breve tempo di scarica.

Il pin 7 grosso modo si chiude verso massa come un interruttore.

"Ln" sta per logaritmo... l'aumento o la diminuzione della tensione su un condensatore collegato in questo modo non e' lineare nel tempo, ma segue una curva esponenziale data dalle formule: CARICA: Vc = Vg * (1 - e^(-t/RC)) Vc tensione raggiunta dopo il tempo t Vg tensione di alimentazione del ramo RC

SCARICA Vc = Vcmax * e^(-t/RC) Vc tensione raggiunta dopo il tempo t Vcmax tensione iniziale del condensatore carico

Per determinare quanto tempo ci mette la tensione a passare da un valore ad un altro e' richiesto l'uso dei logaritmi per calcolare la formula inversa, se non sbaglio: CARICA: t = -ln(1 - Vc/Vg)*RC SCARICA: t = -ln(Vc/Vcmax)*RC

Prendendo come esempio il circuito di Luigi C. si puo' calcolare quanto ci mette il condensatore da 100uF a caricarsi fino alla soglia di 2/3Vcc dell'integrato attraverso la R da 470k (+ il diodo che fa cadere 0.65V) e alimentando il tutto a 12V:

t= -ln(1-(8/(12-0.65)))*470000*100*10^-6 = 57 sec all'accensione

t= -ln(1-((8-4)/(12-4-0.65)))*470000*100*10^-6 = 36.9 sec a regime in questo caso si deve considerare che il C e' gia' carico a 4V in quanto l'NE555 non lo scarica fino a 0 ma fino a 1/3Vcc

E il tempo di scarica fino a 1/3Vcc che e' la soglia bassa del 555:

t = -ln(Vc/Vcmax)*RC = -ln(4/(8-0.65))*27000*100*10^-6 = 1.6 sec

Senza i diodi cambierebbe poco: 51.6 / 32.6 / 1.9 sec.

E' da tenere in considerazione il fatto che senza diodi e' possibile cambiare il valore dell'alimentazione senza alterare i tempi, con i diodi invece questi dipendono anche dalla Vcc.

Claudio F

ringrazio entrambi per le risposte...potreste semplificarmele..perchè ho paura di far confusione... :)

Ad esempio,nella formula,che cos'è "e"? che cos'è "t"...? la mia ignoranza non ha limiti... :)

Per quanto concerne i diodi invece.. volendo realizzare questo programmatore..ho trovato il problema di capire come dovessi saldare i diodi.. Quelli vecchi avevano infatti una striscina chiara (su fondo nero) che indicava l'anodo... adesso la striscia è nera..e sul datasheet degli

1N4148 sembrerebbe indicare il catodo... come devo metterli? Questo è l'indirizzo dove ho trovato il programmatore.. :
formatting link
Grazie mille ancora una volta

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required