Sari la conținut
ELFORUM - Forumul electronistilor

Control PWM si RPM ventilator 4 pini cu Raspberry Pi


Postări Recomandate

Intre timp am reusit sa citesc si RPM-ul ! :da Am conectat, tot asa, printr-o rezistenta de 470R. La RPi am activat pull-up-ul intern iar ventilatorul e pe open colector, deci se potrivesc perfect. 

 

Codul de test pentru PWM si RPM e asa:

 

from rpi_hardware_pwm import HardwarePWM
import RPi.GPIO as GPIO
import time

RPM_PIN = 23
ICount = 0
RPM_StartTime = 0

def CountImpulses(channel):
  global ICount
  ICount += 1

def PrintRPM():
  global RPM_StartTime
  global ICount
  NowTime = time.time(); Count = ICount
  Duration = NowTime - RPM_StartTime
  RPM_StartTime = NowTime; ICount = 0
  Freq = Count / Duration
  RPM = (Freq * 60) / 2
  print('RPM: ', round(RPM))

def WaitRPM(secs):
  for i in range(secs):
    time.sleep(1)
    PrintRPM()

GPIO.setmode(GPIO.BCM)
GPIO.setup(RPM_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.add_event_detect(RPM_PIN, GPIO.FALLING, callback=CountImpulses)


pwm = HardwarePWM(pwm_channel=0, hz=25000)
pwm.start(100)
RPM_StartTime = time.time()

try:
  print('--- 100% ---')
  WaitRPM(15)

  pwm.change_duty_cycle(50)
  print('--- 50% ---')
  WaitRPM(15)

  pwm.change_duty_cycle(100)
  print('--- 100% ---')
  WaitRPM(15)

finally:
  print('STOP')
  pwm.stop()
  WaitRPM(15)
  GPIO.remove_event_detect(RPM_PIN)
  GPIO.cleanup()

 

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

Top autori în acest subiect

Top autori în acest subiect

Imagini postate

Dar eu nu inteleg o chestie... 

Daca alimentarea ventilatorului e intrerupta din cauza PWM-ului de 25000 de ori pe secunda, cum poate senzorul de RPM sa scoata semnal dreptunghiular neintrerupt cu 2 impulsuri pe rotatie ? Nu ar trebui sa fie si asta intrerupt la aceeasi frecventa cu PWM-ul ? Sau poate alimentarea senzorului e legata direct la +12, nu prin mosfetul comutator...

Link spre comentariu
Acum 11 ore, Blacksmith a spus:

Daca alimentarea ventilatorului e intrerupta din cauza PWM-ului

Nu înțeleg! Tu modulezi alimentarea ventilatorului (controler + bobine + senzor) sau modulezi doar intrarea aia dedicata pentru așa ceva? Daca modulezi doar intrarea dedicata PWM-ului atunci controllerul si implicit senzorul funcționează corect. Daca intrarea PWM era un simplu MOSFET care făcea ON-OFF pe absolut tot atunci ce rost mai avea sa ai atâtea fire?

Cum zice si @modoran, daca iti funcționează nu mai scarmăna ...

Link spre comentariu

Senzorul e legat la alimentare (12V). Iar tu dai semnalul PWM in controller.

Daca alimentai verntilatorul in PWM senzorul ar fi fost influientat. Dar pentru PWM pe alimentare ai nevoie de frecventa mica.

 

Motorul ventilatorului e de tip BLDC (fara perii in curent continuu) iar comanda bobinelor are nevoie de un circuit specializat. Genul asta de motoare sunt mai usor de inteles daca le compari cu motoarele trifazice datorita modului on care sunt comandate bobinele. Dar tot motoare DC sunt.

Link spre comentariu
Acum 6 ore, Stefan a spus:

Nu înțeleg! Tu modulezi alimentarea ventilatorului (controler + bobine + senzor) sau modulezi doar intrarea aia dedicata pentru așa ceva?

 

Modulez intrarea dedicata de PWM. Dar din ce se zice pe net, ventilatorul ar avea un mosfet care intrerupe alimentarea. Dar probabil ca doar alimentarea bobinelor motorului. Senzorul ala hal are si el alimentare, sau genereaza el insusi tensiune cand trece prin dreptul magnetului ?

 

Acum 6 ore, modoran a spus:

Nu ar fi trebuit sa te bagi la chestii din astea complicate daca nu le intelegi.

 

Oh, da... : )) Unde era profesorul... Faptul ca am postat la incepatori nu inseamna ca m-am apucat ieri de electronica si nu stiu sa tin nici pistolul de lipit in mana, ca sa-mi spui tu sa nu ma bag. Am 25 de ani de electronica ! Am postat aici pentru ca la comandat ventilatoare cu PWM chiar sint incepator, nu am mai facut-o niciodata... Daca as fi avut mentalitatea asta ramaneam si acum primitiv ca tine. Tu asa faci ? Cand nu stii ceva nu te bagi si abandonezi ? Doamneee ! : ))

 

Acum 6 ore, Stefan a spus:

Cum zice si @modoran, daca iti funcționează nu mai scarmăna r...

 

Adica e gresit ca vreau sa si inteleg cum functioneaza lucrurile pe care le fac ? Tu crezi ca eu fac astea in scarba, obligat de viata, cum ca vezi doamne "imi trebuie" si n-am incotro... ? Si lipesc acolo 2 fire in graba cum o fi, numai sa mearga.. si sa fie cat mai simplu (cum e obsesia pe aici pe forum) ? Nop... Pentru mine e cea mai mare placere cand lucrez la proiectele astea, si cand inteleg cum functioneaza. Am orgasm intelectual ! Nici acum nu imi pot reveni dupa ce am vazut cat de frumos se comanda in PWM si se citeste RPM-ul... 

 

 

Link spre comentariu

Nu e ceva rău ca vrei sa înțelegi cum funcționează dar te concentrezi prea mult pe ceva ce nu merita atâta atenție, doar nu te apuci sa faci producție de serie. Daca totuși vrei sa pierzi timpul cu așa ceva, când poate ai alte lucruri mai importante pe care le-ai scăpat din vedere, iți arat ce am găsit in timp ce ma gândeam daca sa stric un ventilator de la Intel.

 

Aici ai câteva informații si o schema cam repezita:

http://www.pavouk.org/hw/fan/en_fan4wire.html

La PWM a cam aruncat zenerul ala acolo fără sa știm daca exista rezistoare de limitare pe placa de baza sau la ventilator si la taho a făcut un divizor de tensiune.

Astfel am dat peste acest controler pentru motoare fără perii (nu contează cate faze) folosit si in acel ventilator Intel cu 4 fire si peste fratele lui mai mare https://datasheetspdf.com/datasheet/BD69730FV.html

 

Fugitiv, nu sunt o persoana răbdătoare din fire, se confirma si ce ziceai despre un rezistor conectat intre poarta unui FET si VCC. Totuși asta nu inseamna ca toata "jucăria" conține doar acel tranzistor si un senzor HALL (il găsești si pe acela in scheme).

PWM-BLDC.png

Link spre comentariu

Pfff... pai asta e SF pentru mine... :qetrwe

Eu credeam ca are un mosfet inseriat cu bobina ventilatorului...

Deci asta are ditamai integratul in el...

 

Ce observ eu aici e ca mosfetul de la PWM are deja o rezistenta inseriata in poarta. Deci nu ar mai avea sens sa ii mai pun eu una externa. Dar daca i-am pus si merge, pot s-o las asa... S-ar putea sa aiba rezistenta si in open drain-ul ala de pe RPM, sa nu mai fie nevoie sa pun nici acolo. Am vazut in primul link pe care mi l-a recomandat Daniels, ca ala a conectat absolut toti pinii de la RPi direct la ventilator. Probabil ventilatoarele astea or avea rezistentele de limitare incluse.

Cum spuneam si pe la inceput, e naspa cand nu ai datasheet-ul ventilatorului. E facut si el de firma serioasa, germana, si ti-l da fara nici o informatie... E aiurea. :sparge:

Link spre comentariu
Acum 3 ore, Blacksmith a spus:

...........

Oh, da... : )) Unde era profesorul... Faptul ca am postat la incepatori nu inseamna ca m-am apucat ieri de electronica si nu stiu sa tin nici pistolul de lipit in mana, ca sa-mi spui tu sa nu ma bag. Am 25 de ani de electronica ! Am postat aici pentru ca la comandat ventilatoare cu PWM chiar sint incepator, nu am mai facut-o niciodata... Daca as fi avut mentalitatea asta ramaneam si acum primitiv ca tine. Tu asa faci ? Cand nu stii ceva nu te bagi si abandonezi ? Doamneee ! : ))

...........

Nu-i vorba de nici un profesor aici ci doar ca iti bagi nasul in chestii care te depășesc iar când primești informații si sfaturi le ignori si iți bați joc in stilul tău caracteristic de ceea ce primești.

Ai putea învață multe  de la oamenii de pe forum dar unii, ca mine de exemplu, s-au saturat de aerele de autodidact încăpăținat pe care le ai.

Nu, n-are nici o treaba PWM-ul pe care-l aplici pe intrarea de comanda cu întreruperea alimentarii. Ai desfăcut vre-un ventilator cu astfel de control? Eu am rămas uimit cate au putut sa înghesuie pe o plăcută așa de mica. La cel desfăcut de mine era un operațional cvadruplu, un controler PWM, un driver high-side cu doua canale , si încă ceva ce nu-mi mai aduc aminte exact ce (poate un microcontroler?!?), bineînțeles si senzor Hall. Deci mult mai complex decât improvizația aia de explicație ce ai găsit-o pe net.

Link spre comentariu

Sesebe, faptul ca distorsionezi realitatea prin cuvinte pentru a-ti fi tie favorabila, nu schimba cu nimic ceea ce este. Nu imi bat joc de nimeni, nu ignor sfaturi bune si nu am aere. Pe mine, cuvintele tale nu ma ating in nici un fel, ca nu au legatura cu mine. Chiar nu iti inteleg obsesia asta pe care ai facut-o fata de mine. Numai V**tor se comporta asa. Dar tu nu esti bolnav ca el. Tu esti baiat destept. Si e ciudat... Tu ai probleme in a intelege ca in lumea mea eu sint autoritatea suprema de decizie. Eu cer sfaturi si imi aleg din ele ceea ce imi spune mie constiinta ca e bine. Chiar daca gresesc. Asta e, imi asum. Nu ar trebui sa te superi ca refuz sa urmez unele sfaturi, ca asta nu te invalideaza pe tine cu nimic. 

Link spre comentariu

Acum, daca totul e ok cu ventilatorul, ma gandesc sa ii pun si un senzor de temperatura... Procesorul are deja in el senzor, dar mi-ar place sa mai am unul pe radiatorul hardurilor sau in diverse locuri cheie. Gasii prin cutia mea cu fiare niste senzori TMP275, foarte misto, pe I2C. Chestia e ca nu am idee cum sa fac ca sa pot sa-l prind pe radiator, el fiind un integrat mic. Ma gandeam sa-l pun pe o placuta, apoi cu 2 suruburi sa prind capsula pe radiator. Dar cica nu prea coduce caldura plasticul ala negru al capsulei, si ca transferul de caldura se face prin pini. E aiurea... N-am cum sa prind pinii pe radiator... :84

Link spre comentariu

Ca sa incalzesti hdd-urile trebuie sa ai transfer serios de date, asta inseamna ca si procesorul o sa fie "stresat". Asta inseamna ca temperatura hdd-uriilor este direct proportionala cu cea a procesorului. Asa ca nu e necesar sa masori temperatura pe hdd-uri.

 

Daca totusi vrei sa masori temperatura direct pe hdd pune senzorul in zona cea mai fierbinte (in general in zona motorului) pentru o monitorizare cat mai buna.

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