Pilotare un display LCD 16x4 tramite PIC o EEPROM o altro

Dispongo di un display LCD credo da 16x4 preso in prestito da una cabina telefonica "digito" ridotta ad un rottame. Ho anche lo schema elettrico per cablarlo e collegarlo alla porta parallela del pc, però pensavo di utilizzarlo in maniera più carina sullo scooter come contagiri, indicatore di carburante, etc. Il problema è che non so come gestire i segnali in ingresso:

Esempio: per la funzione contagiri so che ad una frequenza di 100 Hz corrispondono 6000 giri del motore, a 50 Hz ne corrispondono 3000 etc (rpm = Hz*60, essendo due tempi).

Per la funzione indicatore carburante uso un reostato che a seconda del livello di benzina cambia una resistenza con un range che va dai 10 agli

80 ohm.

Per la funzione di tachimetro o di termostato ho due rispettive sonde (una presa dal contakm della bicicletta e una da una caldaia).

Il problema è che non so né come gestire questi dati in input, né come pilotare il display lcd. Mi hanno detto che con i Nutchip e con i PIC è impossibile e che devo usare una EEPROM. Voi potete darmi una mano?

Reply to
Redeemer
Loading thread data ...

Redeemer ha scritto:

Bè con un pic è abbastanza semplice gestire un display LCD. potresti fare una cosa del genere... i pic hanno dei convertitori analogico/digitale e funzionano con tensione di 5 volt. parlando ad esempio del livello carburante puoi far in modo che quando il serbatoio è pieno hai un valore di 5 volt come ingresso al pic. questo lo converte e gli fa corrispondere il valore 255 dopo di che con un semplice programma sul pic stesso puoi gestire tale valore come una variabile e quindi spedire il risultato al display se vuoi saperne di più fammi sapere

--


questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news segnala gli abusi ad abuse@newsland.it
Reply to
ale81

Ok quindi posso gestire l'input e la visualizzazine tramite PIC. Ma in ingresso posso avere solo voltaggi o anche frequenze in Hz?

Reply to
Redeemer

"Redeemer" ha scritto nel messaggio news:dgIqd.18004$ snipped-for-privacy@tornado.fastwebnet.it...

Tutto si puo' fare.... :))) Se usi un PIC con CAPTURE/COMPARE, tipo l' F876 o F877, puoi farlo abbastanza facilmente sfruttando il TIMER1 per contare l'intervallo tra 2 (o piu') impulsi, e ricavare quindi il numero di giri (inversamente proporzionali al valore "contato"). Altrimenti, un LM2917 per fare la conversione frequenza/tensione, e poi via in un pin ADC.

Ciao, Pier.

formatting link

Reply to
Pier GSi

Ok adesso dovrei imparare ad utilizzare per benino i PIC, per ora con i circuiti me la cavo. Ma riesco a gestire tutte le informazioni con un singolo display?

Reply to
Redeemer

"Redeemer" ha scritto nel messaggio news:WxKqd.18335$ snipped-for-privacy@tornado.fastwebnet.it...

Certo, senza problemi :) Se non ci sta tutto in una schermata puoi mettere dei pulsanti per "girare" le pagine, puoi aggiungere un allarme se la temperatura supera una soglia preimpostata, la riserva, ecc...l'unico limite e' dato dalla fantasia (e dalla memoria interna del PIC, che prima o poi finisce :PPPP)

:)

Ciao, Pier.

formatting link

Reply to
Pier GSi

ti ringrazio per tutte le risposte! beh, la fantasia non mi manca e in linea di massima so già quali informazioni dovrei visualizzare sul display. Ah, per pilotare questo lcd che pic devo utilizzare?

Reply to
Redeemer

Redeemer ha scritto:

secondo me ti conviene usare un pic 16f877 che è molto semplice e dispone di otto ingressi sui quali puoi fare la conversione analogico/digitale e pure di timer interni per far funzionare il contagiri. l'unica cosa è che puoi decidere se usarne uno da 4 o da 20 MHz... non cambia niente solo in quello da 20 MHz puoi fare più campionamenti per il contagiri perchè tieni conto che la frequenza del timer interno del pic dipende dal cristallo che usi per lo stesso

--


questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news segnala gli abusi ad abuse@newsland.it
Reply to
ale81

"Redeemer" ha scritto nel messaggio news:v7Lqd.18402$ snipped-for-privacy@tornado.fastwebnet.it...

Ti consiglio 16F876,oppure, se ti servono piu' pin I/O, 16F877.

Ciao, Pier.

formatting link

Reply to
Pier GSi

Mi hanno consigliato anche 16F84A però credo che il 16F877 che mi hai consigliato tu sia meglio perché devo gestire almeno 4 input. In più ho il datasheet del display lcd che una volta cablato riceve su uno o più pin (devo controllare) un byte e lo converte in un carattere (es: 01000010 corrisponde a "B"). Io quindi con un PIC devo convertire i segnali da HZ o V in un valore BYTE (0~255), mandarlo al PIC 16F877 che programmo in modo che interpreti questo segnale e visualizzi qualcosa sul display giusto?

Reply to
Redeemer

Ok grazie anche a te... beh tra 4 e 20 Mhz la differenza non credo sia madornale tanto non devo avere né una precisione assoluta né tantomeno visualizzare instantaneamente i giri al minuto o la velocità corrente. diciamo che devo avere un refresh ogni 500-1000 mS altrimenti il tutto diventa illeggibile.

Reply to
Redeemer

Altra cosa... per programmare il pic devo usare assembler o è possibile utilizzare un altro linguaggio?

Reply to
Redeemer

"Redeemer" ha scritto nel messaggio news:AcZqd.19261$ snipped-for-privacy@tornado.fastwebnet.it...

Per 4 input va benissimo 16F876 (5 ingressi analogici a 10 bit di risoluzione) che, tra l'altro, dispone anche del capture/compare che puoi usare per misurare la distanza tra 2 impulsi senza complicarti la vita piu' di tanto, come ho accennato nei mex. precedenti.

Devi rispettare il suo protocollo, non basta mettere sul bus il valore ascii...lo devi inizializzare, accendere, spostare il cursore sulla locazione da cui vuoi iniziare a scrivere, ecc., ecc.

In linea di principio diciamo di si'...ci saranno sicuramente da fare

*almeno* dei calcoli, ti troverai a dover gestire variabili a 16 bit, ecc..

Ciao, Pier.

formatting link

Reply to
Pier GSi

Ok, veramente grazie tante... per ora implemento il circuito usando i led (che è anche più bello) e poi passo all'LCD. Ultima cosa: una sonda termometrica lambda che tipo di segnale invia? In Hz o in Ampére?

Reply to
Redeemer

"Redeemer" ha scritto nel messaggio news:8M5rd.20477$ snipped-for-privacy@tornado.fastwebnet.it...

Sonda lambda ? Quella sullo scarico che che legge il rapporto aria/benzina dici ? Se ti riferisci a questa, da 0 ad 1 V circa, pero', le sonde normalmente montate sulle auto non sono assolutamente lineari, ma presentano una variazione di tensione ripidissima in prossimita' del rapporto stechiometrico ( 14.7 aria : 1 benzina ), per cui, secondo me, sarebbe piu' giusto considerarle ON/OFF (o quasi). Esistono anche delle sonde "wide band", in cui la curva di risposta e' molto piu' lineare, e permette quindi di sapere qual'e' il rapporto aria/benzina con piu' accuratezza (non so se vengano attualmente montate su vetture "di produzione" destinate al nostro mercato).

Ciao, Pier.

formatting link

Reply to
Pier GSi

Redeemer ha scritto:

puoi utilizzare assembler oppure un linguaggio C o anche un basic... usa quello che conosci meglio. se invece devi scegliere ti consiglio di usare pic basic pro compiler... secondo me è il più semplice. lo puoi trovare gratuitamente sul sito

formatting link

--


questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news segnala gli abusi ad abuse@newsland.it
Reply to
ale81

ale81 ha scritto:

Ok thanks

Reply to
Redeemer

Ho sbagliato, non è una sonda lambda ma una sonda termometrica... tipo quelle per pc...

Reply to
Redeemer

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.