Sari la conținut
ELFORUM - Forumul electronistilor

Proiect "Controller turatie ventilatoare" cu PIC


tranc3d

Postări Recomandate

Buna seara,

 

Intentionez sa imi construiesc un controller de turatie pentru ventilatoarele din calculator cu microcontroller PIC.

 

Cerinte:

 

[*:2ju1lg8p]Va trebui sa controleze turatia a trei ventilatoare: CPU, placa video si carcasa.

[*:2ju1lg8p]Turatie reglabila intre oprit complet si maxim.

[*:2ju1lg8p]Cateva butoane de interfata din care setam turatii dorite, incarcam setari prestabilite sau salvam setari.

[*:2ju1lg8p]Optional: afisaj lcd nokia 3310.

Imi trebuie deci 3 canale PWM. Majoritatea microcontrollerelor accesibile au 1 sau 2 canale, deci prea putin.

PIC16F628 pe care as fi vrut sa il folosesc are doar 1 canal. Trebuie in consecinta 3 generatoare de PWM externe (cel din PIC nu il mai folosesc) controlabile din uC.

Am vazut de exemplu cipul M6624e de la Mitsubishi Electric (acum Renesas Technology), care este un generator PWM cu 4 canale pe 12 biti, controlabile independent, cu intrare seriala de date care din pacate nu se gaseste la magazinele online de pe la noi.

 

Ce cip generator de PWM (3 canale) accesibil as putea folosi?

Link spre comentariu
  • Răspunsuri 2
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • tranc3d

    2

Top autori în acest subiect

Pentru aplicatia ta merge orice microcontroller.Chiar daca nu are deloc PWM hardware, simulezi software cate canale vrei.Nu ai nevoie de alte circuite specializate pentru PWM, ar fi o risipa.Te ajuta si faptul ca pentru controlul unor ventilatoare din PC nu ai nevoie de mai mult de 2-3 biti pe canal, maxim 4 daca esti pretentios. 8 biti, cat e de obicei minimul pentru PWM, ar fi o adevarata risipa.Spor la treaba!

Link spre comentariu

N-am vrut sa ma mai "complic" sa fac PWM-ul software, dar se pare ca nu e asa complicat.

 

Am gasit asa ceva:

 

In ISR-ul unui timer:

 

movf PWM, W

addwf ACC, F

btfss STATUS,C

bcf PORT, BIT

btfsc STATUS, C

bsf PORT, BIT

retfie

 

ACC si PWM sunt 2 registi pe 8 biti. PWM tine factorul de umplere (0 - 100% -> 0 - 255).

In ISR se aduna valoarea registrului PWM la ACC.

Cand ACC da overflow, se seteaza Carry bit-ul, pe care il copiem la iesire.

Daca PWM e 255, bitul de Carry va fi setat aproape la fiecare trecere prin ISR (de 255 de ori din 256),

deci range-ul efectiv al PWM-ul de la iesire va fi 0% - 99,6%.

Daca PWM e 0, Carry bit nu va fi setat niciodata.

 

Daca avem nevoie de mai multe canale PWM, cream mai multe seturi ,

si executam aceste 6 instructiuni pentru fiecare (in acelasi ISR).

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări