View Full Version : Termometro digitale 8bit 2 display 7 segmenti + bs2
salve a tutti, spero di riuscire a spiegare il mio problema.
Il mio progetto è quello di utilizzare un lm35 (sensore di temperatura ) con un convertitore analogico digitale, per poi arrivare al pic che leggerà il valore shifatatogli dentro.
a questo punto con il pic shifto il valore letto in gradi, a un Sipo (74hc/ls164), a sua volta; L'intenzione era quella di collegarli un encoder per display a 7 segmenti, però questi encoder che ho trovato sono tutti a 4bit, esiste un dual encoder a 8bit per pilotare 2 display?
Oppure esiste il modo tramite il pic di spezzare la variabile?, cioè per esempio Il sensore legge 28gradi, io prendo il 2 lo shifto al sipo, poi shifto 8 e a sua volta a un flip flop (dato che i numeri entrerebbero un po in ritardo, cosi li potrei mandare al encoder tutti e 2 contemporaneamente) e poi 2 encoder a 4bit collegati ognuno a un display
Se è possibile spezzare una variabile, qualcuno sa dirmi come si fa in ambiente Basic Stamp 2?
grazie e saluti
salve a tutti, spero di riuscire a spiegare il mio problema.
Il mio progetto è quello di utilizzare un lm35 (sensore di temperatura ) con un convertitore analogico digitale, per poi arrivare al pic che leggerà il valore shifatatogli dentro.
a questo punto con il pic shifto il valore letto in gradi, a un Sipo (74hc/ls164), a sua volta; L'intenzione era quella di collegarli un encoder per display a 7 segmenti, però questi encoder che ho trovato sono tutti a 4bit, esiste un dual encoder a 8bit per pilotare 2 display?
Oppure esiste il modo tramite il pic di spezzare la variabile?, cioè per esempio Il sensore legge 28gradi, io prendo il 2 lo shifto al sipo, poi shifto 8 e a sua volta a un flip flop (dato che i numeri entrerebbero un po in ritardo, cosi li potrei mandare al encoder tutti e 2 contemporaneamente) e poi 2 encoder a 4bit collegati ognuno a un display
Se è possibile spezzare una variabile, qualcuno sa dirmi come si fa in ambiente Basic Stamp 2?
grazie e saluti
Multiplexa i due display.
Basta un solo encoder e due transistor.
4 linee per mandare i due dati BCD e 2 per accendere e spegnere il display delle decine e delle unità. I due display sono collegati allo stesso encoder, e i transistor operano sui loro catodi(o anodi) comuni, pilotati da due linee del PIC.
In pratica fau questo:
-mandi l'8 all'encoder
-accendi il display delle decine
-attendi qualche ms
-spegni il display delle decine
-mandi il 2 all'encoder
-accendi il display delle unità
-attendi qualche ms
-spegni il display delle unità
-ricominci da capo
ciao, grazie mille della risposta, e dell'attenzione
il problema è propio questo, cioè non riesco a dividere questo valore, come posso fare per mandare prima il l'8 poi il 2?
anche perchè il problema è che in binario 28 = 00011100
quindi se io prendo i primi 4 bit non riesco a ottere 2(0010) , e nemmeno se prendo gli altri 4 ottengo 8(1000)!
ciao, grazie mille della risposta, e dell'attenzione
il problema è propio questo, cioè non riesco a dividere questo valore, come posso fare per mandare prima il l'8 poi il 2?
anche perchè il problema è che in binario 28 = 00011100
quindi se io prendo i primi 4 bit non riesco a ottere 2(0010) , e nemmeno se prendo gli altri 4 ottengo 8(1000)!
Convertilo in decimale, no?
Temperatura var byte
Cs con 0
Data_ con 1
Clock_ con 2
high cs
loop:
low cs
shiftin Data_,clock_,msbpost,[temperatura/8]
high cs
pause 500
goto loop
temperatura = in gradi per l'esempio 28 gradi
ora come posso fare? è gia in decimale la temperatura!
Temperatura var byte
Cs con 0
Data_ con 1
Clock_ con 2
high cs
loop:
low cs
shiftin Data_,clock_,msbpost,[temperatura/8]
high cs
pause 500
goto loop
temperatura = in gradi per l'esempio 28 gradi
ora come posso fare? è gia in decimale la temperatura!
28 DIV 10 = 2
28 MOD 10 = 8
28 DIV 10 = 2
28 MOD 10 = 8
:eek: che cosè mod?
:eek: che cosè mod?
Eh, vabbé, ma questa è l'ABC della programmazione....
MOD è l'operatore modulo, cioè quello che ti da' il resto di una divisione.
Che linguaggio usi per i PIC?
Eh, vabbé, ma questa è l'ABC della programmazione....
MOD è l'operatore modulo, cioè quello che ti da' il resto di una divisione.
Che linguaggio usi per i PIC?
purtroppo non ho studiato programmazione... sto facendo per conto mio....
si mi sono appena documentato su wiki pedia,
io come progammazione uso basic stamp 2
conosci percaso come si utilizza in ambiente bs2 questa funzione?
purtroppo non ho studiato programmazione... sto facendo per conto mio....
si mi sono appena documentato su wiki pedia,
io come progammazione uso basic stamp 2
conosci percaso come si utilizza in ambiente bs2 questa funzione?
Ci sarà pure un elenco delle istruzioni, da qualche parte.
Ci sarà pure un elenco delle istruzioni, da qualche parte.
si ho parecchi tutorial al riguardo,anche cartacei, purtroppo però questo mod o è sotto altre voci, o sono orbo io :mc:
si ho parecchi tutorial al riguardo,anche cartacei, purtroppo però questo mod o è sotto altre voci, o sono orbo io :mc:
Cerca l'operatore percentuale %.
Nella sintassi C è lui che svolge l'operazione di modulo.
Cerca l'operatore percentuale %.
Nella sintassi C è lui che svolge l'operazione di modulo.
la % nel bs2 viene utilizzata per assegnare un numero binario a una variabile
la % nel bs2 viene utilizzata per assegnare un numero binario a una variabile
Tagliamo la testa al toro:
unità= numero - 10*(numero DIV 10)
Trovato.
L'operatore modulo è //. (doppia barra)
http://award.altervista.org/docs/pbasic4dummies210104.pdf
Pagina 11.
Tagliamo la testa al toro:
unità= numero - 10*(numero DIV 10)
ok grazie mille, allora sulla calcolatrice ovviamente funziona :D , purtroppo una volta che la vado a implementare sulla programmazione, il pic non si comporta come dovrebbero ovvero
con la calcolatrice in modalita programmatore funziona
28 - 10*(28/10) = 8
mentre nelle uscite del pic mi ritrovo 100100=36
edit letto ora ora, provo subito
Trovato.
L'operatore modulo è //. (doppia barra)
http://award.altervista.org/docs/pbasic4dummies210104.pdf
Pagina 11.
siii grazie milleeeeeee :D funziona:D!!! non so come ringraziarti :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.