Fórum témák

» Több friss téma
Fórum » DC motor/lámpa PWM szabályzása
 
Témaindító: redcar, idő: Márc 3, 2006
Témakörök:
Lapozás: OK   104 / 153
(#) ferci válasza (Felhasználó 46585) hozzászólására (») Júl 7, 2015 /
 
A "majdani" a 2 k-ra gondoltam, mert szó volt a csökkentéséről természetesen, beszéltetek 20 mA környékéről, ami lehetne 220 ohm-mal is. Persze ehhez én nem ragaszkodok, mivel más a töltő és kisütő csúcsáram és az átlagáram is, tehát a kérdezőtől függ, mennyire veszi le.
Term. ha neki megfelel pl. 100 ohm, nem is szóltam.
"simpi": volt itt uc is, pic is, bocsásd meg nekem a "pic"-et... a lényegen mit se változtat.
A hozzászólás módosítva: Júl 7, 2015
(#) k3gy3tl3n válasza proli007 hozzászólására (») Júl 7, 2015 /
 
Hello, részben egyetértek veled, de az elején nem lehettem biztos, hogy a fettel van e a gond. Az áramkör a topik nevében leírtaknak megfelel, válaszokat is kaptam, nem gondolom hogy hatalmas ostobaság volt ebben a fórumban kérdeznem. A te logikád mentén először kérdezzek az AVR topikban mert arról sem tudok mindent, ha az jó akkor jöthet az ellenállás topik stb...
(#) ferci válasza (Felhasználó 15355) hozzászólására (») Júl 7, 2015 /
 
Jó, hát nem én találtam ki a 20 és 25 mA-t, nehogy ez legyen az új "téma"... hajkefe... hm...majd ha lesz egy konkrét (csúcs) áram, annak megfelelően lehet esetleg korrigálni.
A hozzászólás módosítva: Júl 7, 2015
(#) k3gy3tl3n hozzászólása Júl 7, 2015 /
 
Még egy kérdés felvetődött bennem, először is hadd idézzek katt-tól:
"...a gate-source között van egy jó nagy kapacitás. Ahhoz, hogy a FET bekapcsoljon, ezt a kapacitást fel kell tölteni. Méghozzá gyorsan, ha azt akarod, hogy a FET nagy sebességgel tudjon ki-be kapcsolni. Ehhez pedig áram kell...."
Hogyan tudnám kiszámolni (ha egyeltalán lehetséges), hogy mennyi áram kell az említett kapacitás feltöltéséhez, ha szeretném teszemazt 8us alatt feltölteni? (122Hz-re tervezem állítani a pwm frekit ez kb 8ms-es periódus ennek az ezredrésze alatt ha feltöltődik az emlegetett kapacitás akkor szerintem jó vagyok). Ebből kiderülne elég e az uc árama vagy sem. Vagy ez ostobaság?
A hozzászólás módosítva: Júl 7, 2015
(#) proli007 válasza k3gy3tl3n hozzászólására (») Júl 7, 2015 / 1
 
Én soha nem "rossz indulatoskodom". Nem erről van szó. Egy Fet alapvetően két okból melegszik.
- Első amikor be van kapcsolva, van csatorna ellenállása. Ez minél kisebb, adott áramnál, a feszültségesés annál kisebb. A teljesítményt meg a kettő szorzata adja. De konkrét meg kell néni az adatlapot, mekkora mert ott a szélső (reklám) paramétereket adják meg. Vagy is az Rgs ellenállás függvénye a GS feszültségének. Hogy valami egy "logikai Fet", az azt jelenti, hogy a GS küszöbértéke alacsonyabb, mint a "simának". De ez csak az a pont ahol "el kezd kinyitni a tranyó". Aztán hogy a szükséges áram mellett mekkora Gate feszültségre van szükség a kis bekapcsolt csatorna ellenállás eléréséhez, az megint ellenőrizendő.
(Kikapcsolt állapotban tulajdonképpen nincs hőtermelés, mert ilyenkor bár a DS feszültség maximumon van, az áram szinte nulla.)
- Viszont az átkapcsolások pillanatában, hiába megy "kapcsolóüzemben a Fet, a teljesítmény ilyenkor a Fet-en van. Legrosszabb eset, nyilván mikor a Drain "féltáp körül jár", ekkor az áram is kb. fele a maximumnak. Ilyenkor aztán van hőtermelés..
Mivel a hőtermelés alapvetően munkavégzés, (ahol az időnek is szerep jut) nem mindegy milyen gyorsan képes a Fet be és kikapcsolni. De ahhoz, hogy a legnagyobb sebességgel kapcsoljon ki-be, a GS és egyéb belső kapacitásokat a leggyorsabban fel kell tölteni és ki kell sütni. Ezért van az, hogy bár a Fet-et látszatra a feszültség vezérli, a ki-be kapcsolásához a töltéseket kell felhalmozni benne és kikapcsoláskor felemészteni.
Pont ez az oka annak, hogy olyan külön meghajtókat alkalmaznak, amik akár 1..6A-töltő-kisütő áramot is képesek leadni/elnyelni.
A töltésmennyiség képlete Q=I*t. Tehát végtelen rövid kis idő alatt feltölteni, vagy kisütni egy kondit, ahhoz végtelen nagy áramra lenne szükség. A feszültség-töltés-kapacitás mennyiségét pedig a Q=C*U képlet írja le. HA a Q-t behelyettesíted, ott az idő..
Itt jön képbe az is, hogy nem mindegy hogy egy időegység alatt hányszor kel feltölteni-kisütni a GS kapacitást. Mert minél többször, annál nagyobb a fejlődő hő. Vagy is ezzel a PIC-el meg a 2kohm-al. Egy motort a 2A áramával be és kikapcsolni néha, az egész más tészta, mint a PWM-el gyorsan ki-be kapcsolgatni.
Szkóppal nézve a kapcsolgatást, amennyire a jel eltér az ideális négyszögjeltől, az mind fűti a tranyót.

Nos, ezért írtam, hogy igazából egy Fet-es topikba való a téma.
Ezen kívül még számtalan egyéb dolgok-problémák is vannak. Ha olvasgatod, pld. a kapcsolóüzemű tápok topikját, szembesülni fogsz vele, hogy a hozzáértő kollégák, mennyi egyéb szempontot is figyelembe vesznek, (pld. a nyák helyes topológiáját) milyen "szigorúak" a látszólag "jó áramkörrel szembe", akkor abból okulhatsz, hogy ez nem a "Gyere buci hamm bekaplak!" tipikus esete..
A hozzászólás módosítva: Júl 7, 2015
(#) kissi válasza k3gy3tl3n hozzászólására (») Júl 7, 2015 / 1
 
Szia!

Q=I*t, Q=C*U !
Ha pl. 1A-el tölt 8 us-ig, akkor Q=8 uC. U=Q/C -ből 15 nF-os kondenzátor kb. 533 V-ra töltődne fel , tehát bőven elegendő lenne a nyitáshoz!
szerk.: persze a fizikát ne felejtsd el ( pl. a kimenet nem áramgenerátoros, nem tud 1 A-t folyamatosan ,stb. ! ) !
A hozzászólás módosítva: Júl 7, 2015
(#) k3gy3tl3n válasza proli007 hozzászólására (») Júl 7, 2015 /
 
Szia, nem feltételeztem, hogy rosszindulatú lennél. Köszönöm a részletes választ/magyarázatot, nagyon hasznosnak találom! Valóban most már teljesen FET-es lett a téma

@kissi neked is köszönöm, viszont a számolás eredményét nem értem, az 1A-ből nem kell uA-t csinálni hogy az eredmény is uC legyen ? és akkor Q=8000000uC ?
(#) kissi válasza k3gy3tl3n hozzászólására (») Júl 7, 2015 / 1
 
Q= 1 A * 8E-6 s = 8E-6 As= 8E-6 C= 8 uC ( az idő mikro-ban van, az I-t nem kell átváltanod, de beírtam alapmértékegységekkel is, hogy lásd!)!
A hozzászólás módosítva: Júl 7, 2015
(#) k3gy3tl3n válasza kissi hozzászólására (») Júl 7, 2015 /
 
Beírtam magamnak a fizika 1-est
(#) (Felhasználó 46585) válasza k3gy3tl3n hozzászólására (») Júl 7, 2015 /
 
Majd megérted, megtanulod. Tehát, az előzőekben említett képlet nagyon sok mindenre jó. Úgy kell megtanulni, hogy "kucu" képlet...
(#) k3gy3tl3n válasza (Felhasználó 46585) hozzászólására (») Júl 7, 2015 /
 
Igen én is kucu képletként ismertem az "uri" képlet barátja Közben kicseréltem a 2k-s ellenállásokat 500 Ohm-ra és a frekit beállítottam 122Hz-re (8Mhz CPU és 256 prescaler), hát elég durva hangja lett a motoroknak, nem sípol hanem inkább kattog (anélkül, hogy elindítanám őket, tehát a kitöltési tényező 0%) Próbálkoztam kisebb prescalerrel is (nagyobb freki), ekkor pedig sípoltak a motorok szintén 0% kitöltési tényező mellett, de akkor sem hallgattak el, ha felpörgettem őket. Ha visszaállítottam az ellenállás csere előtti PWM frekit akkor is sípol. Mindezek felett most is melegszik, talán még gyorsabban mint eddig. Mára abbahagyom mert érzem hogy már csak ártani tudok mintsem javítani.
(#) Bakman válasza k3gy3tl3n hozzászólására (») Júl 7, 2015 /
 
Ha 0 %-os PWM mellett hangja van a motornak, akkor a PWM vagy nem 0 % vagy valahonnan máshonnan kap vezérlést. Ha nem szeretnéd, hogy melegedjen egy FET PWM használatakor, érdemes FET meghajtót használni, vagy építeni hozzá egy félhidas meghajtást (a FET driver is tualjdonképpen az).
(#) (Felhasználó 46585) válasza k3gy3tl3n hozzászólására (») Júl 7, 2015 /
 
0%-nál nem kapna feszt, tehát a FET-nek lezárva kellene lennie, vagyis nem lehetne hangja. 100%-nál meg teljes feszt kap, vagyis egyenfeszt, mert a FET-ek be vannak kapcsolva. Ekkor megint nem lehetne hangja. A köztes állapot a pwm, ennek mindig lesz kisebb, nagyobb hangja, ha a hangfrekvenciás tartományban működik. Inkább nagyobb freki kellene, mert kisebb lesz a motor áramának hullámossága, így kevesebb zajt termel. Mondjuk 8...10kHz. Ehhez mindenképpen kell a dupla emmitterkövető.

Próbálj ki valamit. A gate-re tegyél mondjuk 5V-ot valahonnan, tehát ne a pic ( avr?)-ről kapjon meghajtást. Így a FET állandóan be lesz kapcsolva, a motor teljes fordulaton fog pörögni. Ekkor nézd meg, hogy mennyire melegszik a FET. Ilyenkor 1 W körüli a veszteség, ha valóban csak 2A-t vesz fel a motor.

Nézd át az egész áramkört a FET-től a motorig. Hátha valami rossz helyre van kötve. Nem ártana egy szkópos vizsgálat, nézni a gatefeszt, meg a drainfeszt a GND-hez képest.
(#) k3gy3tl3n hozzászólása Júl 7, 2015 /
 
A "set PWM to low" sorokat most kikommenteztem, habár ha ez lenne a baja eddig sem ment volna.
Holnap majd folytatom a nyomozást, mára besokalltam.
  1. void portinit()
  2. {
  3.         TCCR1A = 0;  // disable all PWM on Timer1 whilst we set it up
  4.        
  5.         DDRB |= (1<<LED);
  6.         DDRD |= (1 << PD5) | (1<<PD6); // PWM output DC motor
  7.         DDRC |= (1<<PC5); //servo battery switch
  8.        
  9.         DDRD |= (1 << PD7); //direction switch
  10.         //PORTD &= ~(1<<PD5); //set PWM to low
  11.         //PORTD &= ~(1<<PD6); //set PWM to low
  12.         PORTC &= ~(1<<PC5); //set servo battery switch to low
  13.  
  14.         FORWARD();     
  15. }
(#) k3gy3tl3n válasza (Felhasználó 46585) hozzászólására (») Júl 8, 2015 /
 
Igen 0. lépésben kiderítem miért sípol 0% kitöltésnél aztán jöhet a többi mérés.
Az még fura, hogy ez az áramkör már működött kisebb motorokkal és más fajta fetekkel, kb 10-15 percet úsztattam a hajót.
Leírom az eddigi tapasztalatokat, hátha számít valamit.

Régi motor + régi FET (IRLS640A):
terheletlenül a motorok 0.2A-t ettek egyenként
kis terheléssel amikor a motor egy tengelyen keresztül hajtja a propellert: 1A
nagy terheléssel amikor vízen van a hajó és teljes gázt kap: 2A

Ezután, mivel nem ment eléggé, kapott nagyobb motorokat + nagyobb propellereket, vízre tettem ismét, ekkor 4-A folyt motoronként amíg le nem égtek a FET-ek. Szerintem ez a hirtelen irányváltás miatt történt mivel teljes előremenetből egyszerre teljes hátramenetbe kapcsolt, ezt már kijavítottam a kódban. Ezután a FET-eket is izmosabbra cseréltem pdeig lehet az előző is jó lett volna, szóval most így néz ki:

Új motor + új FET (IRL640A) ez már 18A-t tud míg az IRLS 9A-t:
terheletlenül a motorok 0.9A-t esznek egyenként
kis terheléssel amikor a motor egy tengelyen keresztül hajtja a propellert: 2A
nagy terheléssel amikor vízen van a hajó és teljes gázt kap: erre az adatra még várni kell, de 3A fölé nem szeretném engedni (lekorlátozom a PWM-et), így már 6A-t enne a két motor, az üzemidő pedig fontosabb mint hogy fénysebességgel menjen.

És most elérkeztünk a jelenhez, melegednek az új fetek, addig vízen nem próbálom ki amíg ez meg nem oldódik. Már arra is gondoltam, hogy visszateszem a régi IRLS FET-eket mivel azok valószínűleg csak a hirtelen irányváltástól égtek le. Az a baj, hogy az IRLS nek nincs fém füle ezért nehezebben érezhető hogy melegszik e. Lehet az is melegedett csak nem éreztem rajta.
szerk.: mondjuk inkább, hogy forrósodik, a melegedés túl enyhe kifejezés
A hozzászólás módosítva: Júl 8, 2015
(#) hotib válasza k3gy3tl3n hozzászólására (») Júl 8, 2015 / 1
 
Nézd meg ezt a kapcsolást. Ebből a vezérlőből többet megépítettem már (én is közben értettem meg a fetek működését)
Ebből könnyen kiollózhatod a fet meghajtást, bátran ajánlom, bevált. Persze több holmi van benne, mint amit Te építettél, de pl. nem kell relé az irányváltáshoz.
A C6 és C12 kondik feltétlen kerámiák legyenek (akár párhuzamosan 2x100nF, ha nincs kéznél 220nF) mert az idő, amiről szó volt az előzményekben, nagyon fontos. A keráma kondik pedig nagyon gyorsan meg tudnak szabadulni a töltésüktől.
Gyakorlati tapasztalat, hogy a fetek 2-3A terhelés mellett, hűtőborda nélkül hidegek. De legalábbis kézzel nem érezhető a melegedésük. Igaz, a használt IRF540 csak 100Voltos, de kevesebb mint a fele az Rdson értéke is mint az IRL640-nek.
(#) k3gy3tl3n hozzászólása Júl 8, 2015 /
 
ILYEN hangja van most, 122Hz-en 0% kitöltési tényező mellett. A gate-en 0.02V-ot mértem, kíváncsi lennék szkópon mi látszódna. Ha magasabb frekis a PWM akkor ez a kattogás inkább sípolásba megy át.
(#) k3gy3tl3n hozzászólása Júl 8, 2015 /
 
A kódot kipucoltam, már csak a pwm beállítás maradt, változást nem hozott...
Ezekszerint a kattogás/sípolás annak a hozadéka, hogy a 2k-s ellenállást 500 Ohm-ra cseréltem.
  1. #include <avr/io.h>
  2. #include <util/delay.h>
  3. #include <avr/interrupt.h>
  4. #include <avr/wdt.h>        // Supplied Watch Dog Timer Macros
  5. #include <avr/sleep.h>      // Supplied AVR Sleep Macros
  6. //CPU speed = 8MHz
  7.  
  8. #define LED 0
  9. #define LED_OFF() PORTB &= ~(1<<LED)
  10. #define LED_ON() PORTB |= (1<<LED)
  11.  
  12.  
  13. void portinit()
  14. {
  15.  
  16.         DDRD |= (1 << PD5) | (1<<PD6); // PWM output DC motor
  17.        
  18. }
  19.  
  20.  
  21. int main(void)
  22. {
  23.  
  24.         portinit();
  25.  
  26.  
  27. /*set PWM for DC motors*/
  28.      OCR0A = 0;
  29.     // set PWM for 0% duty cycle
  30.      OCR0B = 0;
  31.     // set PWM for 0% duty cycle
  32.     TCCR0A |= (1 << COM0A1) | (1 << COM0B1);
  33.     // set none-inverting mode
  34.  
  35.     TCCR0A |= (1 << WGM01) | (1 << WGM00);
  36.     // set fast PWM Mode
  37.  
  38.     TCCR0B |= (1 << CS02);
  39.     // set prescaler to 256 and starts PWM (122Hz)     
  40.        
  41. /*set PWM for DC motors*/              
  42. while(1)
  43. {
  44. }
  45. return (0);
  46. }
A hozzászólás módosítva: Júl 8, 2015
(#) Massawa válasza k3gy3tl3n hozzászólására (») Júl 8, 2015 /
 
Ez szerintem nem 122 Hz. Ha nem küldesz ki impulzusokat, akkor nem kattoghat. Köss párhuzamosan a motorral 1 LED-t egy ellenállással. Azon látod majd a kattogás fényét. Ha esetleg most a motor a tápra van kapcsolva lehet (átereszt a tranyo), lehet, hogy azt huzza le. Köss arra is egy LED-t, annak nem szabad villognia.
(#) k3gy3tl3n válasza Massawa hozzászólására (») Júl 8, 2015 /
 
Lekötöttem az AVR pwm lábát a gate-ről és tettem rá egy ledet, ez abban az ütemben villog, mint ahogy a motor kattog, valamiért a 0% kitöltés ellenére 5V-os impulzusok jöhetnek az AVR-ről, ráadásul a 122Hz-től jóval lassabb ütemben... Most megyek az AVR miértek hogyanok topikba, köszi a segítséget!
(#) k3gy3tl3n hozzászólása Júl 22, 2015 /
 
Sziasztok, azért zárszónak leírnám a tapasztalataimat amiket itt gyűjtöttem illetve ferci-től kaptam privátban. A fet melegedése megoldódott amint kicseréltem azt egy 8mOhm Rds(on)-nal rendelkezőre. A régi 180mOhm volt. A kattogást a fast PWM okozta mivel nem lehet teljesen 0-ra venni a kitöltést, ez szkópon is jól látszott, plusz a PWM freki is rossz volt mivel a clkdiv8 fuse bit bevolt kapcsolva és ezzel nem számoltam. A motorral párhuzamos 5A schottky is melegedett, ezt 10A schottkyra cseréltem, így már ez sem melegszik. Köszi mindenkinek a segítséget!
(#) Sebi válasza k3gy3tl3n hozzászólására (») Júl 22, 2015 /
 
Köszönöm mindenki nevében, hogy megosztottad a tapasztalataid!
(#) (Felhasználó 51715) hozzászólása Aug 20, 2015 /
 
Sziasztok!

Ez az áramkör képes szabályozni egy 12V 500mA motort, és az IRF510 helyettesíthető IRF730-cal?

Előre is köszönöm a választ.
(#) proli007 válasza (Felhasználó 51715) hozzászólására (») Aug 20, 2015 / 1
 
Hello! Képes, de az "irány" nem a legjobb, mert a 730-nak az Rdson ellenállása már kétszeres mint az 510-é. Ha egy motor névleges árama 500mA, az indulási árama ennél lehet sokkal több is. A frekvencia nem 20..60Hz, hanem kb. 115Hz. (Hogy mennyi lesz a legjobb, azt próbával és C2 cseréjével tudod eldönteni.) Az R2-őt pedig célszerű 1kohm-ra cserélni, mert jobb ha a Fet nyitása gyorsabb.
(#) (Felhasználó 51715) válasza proli007 hozzászólására (») Aug 20, 2015 /
 
Köszönöm a választ!
Megépítettem IRF630-cal, de csak annyit csinál, hogy egy pillanatra megrángatja a motort, utána semmi. Nem reagál a poti tekerésére, de nem is melegszik semmi. többször átnéztem, hátha szakadás vagy zárlat az oka, de minden úgy van ahogy az ábrán.
(#) proli007 válasza (Felhasználó 51715) hozzászólására (») Aug 20, 2015 / 1
 
Pedig valami hibát követsz el. (Pld. az IC nem jól van benne, vagy lábszámozását elnézed, vagy D1 dióda nem jó irányban van benne.. Mert a rajz jó. De egy ilyen áramkört, soha nem a motorral kell próbálni, hanem először vagy egy kis 2W/12V-os izzóval, de egy Led+470ohm-al, akár az IC kimenetén (3-as láb) is ellenőrizhető a működése.
Ha a potit középre állítod, és a C2 kondival párhuzamosan kötsz egy pld. 2,2k ellenállást, akkor a Fet-nek be kell kapcsolni.
A hozzászólás módosítva: Aug 20, 2015
(#) (Felhasználó 51715) válasza proli007 hozzászólására (») Aug 20, 2015 /
 
Teljesen igazad van, rosszul volt bekötve a dióda. Az izzó most úgy viselkedik tekerésre, mintha dimmelhető lenne. Ráraktam a motorra, viszont ha ellentétes irányban csavarom a potit, a motor folyamatosan sípoló hangot ad ki (jobb megfogalmazás hiányában), akkor is ha nem forog. Nem hangzik egészségesen. Ez mitől lehet?
(#) Bakman válasza (Felhasználó 51715) hozzászólására (») Aug 20, 2015 / 1
 
Valószínűleg azért, mert az 555-tel felépíthető PWM szabályzó nem tekerhető le 0 %-ra és fel sem 100 %-ra.
(#) (Felhasználó 51715) válasza Bakman hozzászólására (») Aug 20, 2015 /
 
Rendben, akkor rögzítem a legalsóbb állásokat hogy oda ne lehessen tekerni. Köszönöm mindenki segítségét, remekül működik!
(#) Sebi válasza (Felhasználó 51715) hozzászólására (») Aug 21, 2015 / 1
 
Idézet:
„rögzítem a legalsóbb állásokat hogy oda ne lehessen tekerni”

Ezt úgy szokás, hogy megméred a poti ellenállását a határhelyzetekben és ezeket az ellenállás értékeket (közelítve) fix ellenállásokat teszel a kivezetésekre, a potit pedig kisebb értékűre cseréled. A poti, meg a két ellenállás adja ki a kb 100k-t, így megtartod a 270 fokos elfordulást, finomabban tudod állítani a fordulatszámot.
Következő: »»   104 / 153
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem