Controllo ventole PIC - PWM - Lineare D/A

Jun 06, 2007 15 Replies

In attesa di un oscilloscopio per capire cosa non va all'interfaccia OBD che ho costruito devo buttare giù un controller ventole termoregolato. La base è il solito pic con cui mi interfaccio ad un lcd 2x20 o giù di li da utilizzare per le impostazioni e le letture. Potrebbe essere che in futuro decida di farmi un programmino in VB che si interfacci via seriale al pic per la programmazione delle temperature (soglie). In sostanza dovrei pilotare 6 ventole con alcuni sensori di temperatura in maniera che varino a soglie prestabilite. Il programma non è un problema. I sensori saranno digitali 1-wire (DS18B20). Il problema è più che altro cosa uso per variare effettivamente la tensione alle ventole. Se uso PWM pensavo a una cosa semplice tipo 555 con variazione del duty cycle tramite potenziometro digitale. Oppure con convertitore D/A e regolazione a transistori. Non mi interessa più di tanto il consumo e il calore prodotto dalla soluzione lineare.



Grazie!


C'è un bel Hung Chang 20 Mhz a 170 euro circa senza nessuno offerta a pochi giorni dalla fine su ebay. Vedi tu...

coals

Ciao, non puoi utilizzare direttamente un'uscita PWM del PIC? Avresti il vantaggio di non dover aggiungere nessun componente esterno (switch di potenza escluso :-P) e un po' di software in meno da scrivere...

Prego e ciao,

steb8

Dovrei usare un pic con almeno 6 PWM in HW. Non so nemmeno se esista. Se uso il pwm via sw o meglio portare a livello alto/basso le porte ad una f e duty definiti potrebbe andare se il pic fosse multitasking.

C'è anche un philips PM3217...

"Er Palma" ha scritto

Dipende, se non ci sono altre temporizzazioni stringenti, e la frequenza del pwm puo' essere abbastanza bassa (1kHz o meno), e la risoluzione anche (diciamo massimo un centinaio di step), allora il software si potrebbe agganciare ad una frequenza sui 10kHZ (esterna o interna) e avanzare a passi di 100 microsecondi. Ad ogni passo si decide se e quale uscita commutare.

ciao Claudio F

Ci sono eccome purtroppo, sono quelle dell'acquisizione digitale dei sensori che portano via parecchio tempo cpu. Se anche acquisissi in analogico con un A/D integrato perderei moltissimi cicli.

Ciao Pochi giorni fa ho messo un circuitino per ottenere un PWM comandabile in tensione, come risposta al messaggio "Comandare un carico in tensione" .(4 transistor e un mos)(naturalmente snobbato ) Se per caso a te puo' servire e serve modificarlo..... per i tuoi usi....fischia.

Ciao Giorgio

P.S. Con un solo 555 difficilmente farai un vero PWM,

non sono ancora SANto per e-mail

Ottimo, visto! Ma per pilotare una ventola forse è più semplice un transistor di potenza e un controllo in tensione. Se devo fare questo circuito per 6 volte diventa un po' troppo grande. E' ottimo e me lo segno se devo pilotare un carico ben più grosso di pochi W. Qualche tempo fa mi sarebbe proprio servito!

Er Palma ha scritto:

E comunicare ad un altro PIC le varie velocita, e lasciarlo ad occuparsi solo dei vari PWM ? Un pic con dotazioni minime e minimo costo, ti serviranno poi solo i 6 transistor o mosfet di potenza. O no?

mandi

Ciao Allora ti metto i soliti schemetti per controllo manuale, ..........caso mai ....tu volessi semplificare ulteriormente. o usarne parte.

Ciao Giorgio [FIDOCAD] MC 60 30 0 0 360 LI 75 20 25 20 LI 90 55 25 55 LI 75 40 75 45 LI 75 45 90 45 LI 60 30 60 50 LI 60 50 55 50 LI 50 45 50 20 SA 50 20 SA 50 55 SA 90 45 SA 90 55 MC 75 45 0 0 180 SA 75 45 SA 75 55 MC 25 20 2 0 010 MC 25 55 2 0 020 TY 40 10 5 3 0 0 0 * TIP NPN qualunque MC 50 45 1 0 100 TY 35 40 5 3 0 0 0 * 1000 TY 65 55 5 3 0 0 0 * 100 uF TY 95 50 5 3 0 0 0 * OUT MC 50 55 0 0 045 TY 5 35 5 3 0 0 0 * V IN > 3V

O se parti da un trasformatore ecco regvelmin.fcd che e' nuovo !!!

[FIDOCAD] MC 55 60 0 0 500 MC 55 60 1 0 750 LI 40 60 25 60 LI 55 130 25 130 SA 25 60 SA 25 130 MC 85 60 0 0 200 LI 100 60 135 60 MC 120 85 0 0 360 LI 135 60 135 75 LI 135 95 155 95 LI 90 130 150 130 LI 150 130 155 130 SA 155 95 SA 155 130 MC 105 80 1 0 100 LI 105 90 105 130 LI 110 85 125 85 MC 155 100 0 0 540 LI 155 95 155 105 SA 105 60 SA 105 130 TY 25 90 5 3 0 0 0 * 220 V ac TY 85 90 5 3 0 0 0 * 6/12 Vac LI 105 80 105 60 TY 140 75 5 3 0 0 0 * TIP 122 TY 90 45 5 3 0 0 0 * 1N4001 TY 110 75 5 3 0 0 0 * 5k TY 70 140 5 3 0 0 0 * 6W MC 135 120 0 0 180 LI 135 120 135 95 SA 135 95 TY 115 135 5 3 0 0 0 * 100uF 35V SA 135 130 TY 165 105 5 3 0 0 0 * DC motor

Buon divertimento

Giorgio

non sono ancora SANto per e-mail

Ci ho pensato in effetti. Devo valutare l'impatto di una comunicazione seriale gestita ovviamente ad interrupt. In teoria dovrebbe funzionare abbastanza bene, le velocità di commutazione in gioco sono davvero basse. Devo fare qualche prova in bread. Ho anche preso un D/A 8 canali come sample da Maxim. Il fatto è che non ho molto tempo di sperimentare (lavoro, università...) e quindi purtroppo andrà per le lunghe...

Ottimo grazie! Sei sempre gentilissimo!

Er Palma ha scritto:

Un buco di tempo sul pic principale per la comunicazione lo trovi, per una semplice velocita' ti basteranno solo 4bit (0-16), quindi con 3 byte da trasferire te la cavi.

mandi

Mmm già. Direi che 4 bit vanno benone per quello che devo fare. Vediamo se riesco a fare qualcosa prima degli esami...

Grazie dei consigli comunque! Ti faccio sapere ok?

Er Palma ha scritto:

Oops 4bit (0-15)

Ti diro' di piu', probabilmente le velocita' piu' basse non riusciranno a fare girare la ventola, quindi invii solo 3 bit (8-15)e sommi (0-7) gli altri. Pensandoci... i bit non si inviano col francobollo, quindi mi pare una fesseria per complicarsi la vita, meglio 4.

Restiamo in attesa

mandi

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required