Polaritásváltás tranzisztorral

Fórumok

Szeretném egy GPIO segítségével egy terhelhető kimeneti jel polaritását beállítani. Pontosabban 2 GPIO-val 2 kimeneti jel polaritását állítani úgy, hogy a két kimeneti jel terhelhető legyen. Ha a GPIO1-re 1-et küldök, a GPIO2-re 0-át, akkor a két kimeneten +5V és 0 jelenjen meg, de ha fordítva állítom be, akkor 0, és +5V legyen a kimenet, azaz a polaritása megváltozzon.

Megpróbáltam egyszerű tranzisztoros kapcsolással megépíteni, de még megtervezni sem tudtam az ellenállások miatt. És persze nem is működött.

Aztán találtam úgynevezett push-pull két tranzisztorból álló kapcsolást, amiben még ellenállás sem szerepelt. Ezt is kipróbáltam, de majdnem elfüstöltette a tápom, mintha valahol rövidzár lenne valahol. Még úgy is, hogy a közös bázisra nem kötöttem rá a GPIO-t.

Találtam rá cél ic-t (L239D), ami már úton van a világ másik feléből, de míg ideér addig azért szívesen megépíteném pár tranzisztorból, ha ez lehetséges egyáltalán. (2N3904 és 2N3906 tranzisztoraim vannak itthon).

Van valami kezdők számára is emészthető kapcsolás, amit meg tudnék építeni polaritásváltásra?

Hozzászólások

A világ innenső felén van a hestore. Onnan hamarabb megkapod.

Normális ember már nem kommentel sehol.

"Van valami kezdők számára is emészthető kapcsolás, amit meg tudnék építeni polaritásváltásra?"

H-bridge, így keress rá.

Normális ember már nem kommentel sehol.

Szerkesztve: 2021. 01. 26., k – 10:10

+1, a H-bridge kifejezesre keress ra, ahogy a kollega is irja fentebb. A pontos meretezes (tranzisztortipus, ellenallasok erteke) attol fugg hogy mekkora teljesitmenyt/aramot szeretnel leadni.

A H-bridge-knek ket alaptipusa van: az ellentetes polaritasu es az azonos polaritasu tranzisztorokbol felepitett valtozat. Az ellentetes az egyszerubben megepitheto de nagyobb lehet a veszteseg (foleg FET jellegu tranzisztoroknal) es "veszelyesebb" is olyan ertelemben hogy konnyebb rovidzarat csinalni akar veletlenul, akar valami latch-up jellegu "elfelejtettem kihajtani es levegoben log a vezerlo bemenet" jellegu konfiguracioval. Az azonos polaritasnal meg kell trukkozni hogy a cel-feszultsegnel magasabb feszultseggel nyitsd a tranzisztort. 

h-bridge, ahogy már írták... bipoláris stepper motoroknál szokták használni pl.

Amennyiben egy hagyományos HDD motorja bipoláris stepper, úgy én is ahhoz szeretném használni. Érdekes, hogy míg a DVD fejléptető motorjához rengeted kész meghajtó és Youtube projekt is található, addig a HDD motorjához csak szabályozható fordulatszámú projekteket és meghajtókat találtam, egyszerű léptető vezérlőket és felhasználást nem. Pedig felépítését tekintve jóval nagyobb nyomatékot várnék tőle, mint a DVD fejléptetőjétől.

Ahogy kisbetu irta mar, a megoldas a H-bridge, itt pont azt szeretnel. Az L239D nem a legujabb technika, kisebb motorhoz eleg lesz, de ismerek olyat, aki lecserelte, mert keves volt a projectjehez. (tul nagy feszultseg esik rajta, ami az IC-t futi) A megoldas abban az esetben valami dedikalt motorvezerlo lett, ami meg PWM-et meg fekmodot is tud (tipusra nem emlekszem).

A problemad egyebkent a kovetkezo: ha jol gondolom, egy-egy oldalon egy NPN es PNP bipolaris tranzisztorod van, egyik a fold, masik a tap fele huzza a kozos pontot, es mindketto bazisa ossze van kotve, es - egy ellenallason keresztul - egy uC pin hajtja.
Mibol all egy NPN tranyo? Van egy nyito iranyu dioda az emitter es bazis kozott, valamint egy zaro a bazis es kollektor kozott. Ha az emitter-bazison eleg aram folyik, akkor (mivel eleg vekony a bazik) annak valahanyszorosa a kollektor fele fog folyni (lekuzdi a zaro iranyt), igy kapja a betaszoros erositest, ezert tud kapcsolokent mukodni, stb. (PNP ugyanez forditva)

Namost te a ket tranzisztor bazisat osszekototted, szoval elindulnak az elektronok a fold felol egy nyitott diodan keresztul a bazis fele, aztan az osszekotesen at eljutnak a masik tranyo bazisara, vegul a szinten nyitott diodan keresztul tavoznak a tap fele. Ez kb. rovidzar (a 2 dioda ejt valamennyit), ezert melegszik, es ezert nem mukodik. (megoldas a H-bridge, atmenetileg esetleg mehet 4 GPIO-rol esszel - figyelve, hogy jo tranzisztorpart kapcsolj be egyszerre, ne kosd ossze a tapot a folddel - ha nincs eleg GPIO-d, akkor meg meghajthato 595-rol is)

When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin

Valóban, összekötöttem a két bázist.

Most betettem mindegyik elé egy 1k-os ellenállást. Így már váltja a polaritást, és nem izzik. De terhelésre kötve gyakorlatilag nullára esik vissza a feszültség a két kimenet között.

Ugye jól látom, hogy ezzel nem lehet nagyobb feszültséget vezérelni, mint a GPIO maximális feszültsége? Tehát egy 3.3V-os GPIO nem fogja tudni az 5V-os feszültésg polaritását változtatni?

Az általad vázolt kapcsolással valóban nem, mert ha ennek a komplementer végfoknak a tápja +5 V, te hajtod épp +3.3 V-tal, akkor az alsó tranzisztor is és a felső is ki fog nyitni, ami rövidre fogja zárni a +5 V-os tápfeszültségedet.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

ha az a cel hogy felvaltva legyen 5V a ket kimeneten, akkor minek ehhez ket gpio? veszel egy kettos rele modult, ugyanazt a gpio kimenetet bekotod mindkettore, a ket relebe meg forditva a dolgokat.

A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Ha elégséges 25 mA, akkor https://www.hestore.hu/prod_10021478.html
Megjegyzem, az 1 inverternél invertált jelet, a 2 sorbakötött inverterrel az eredeti jelet kapot 25 mA terhelhetőséggel, így felesleges 2 darab GPIO az invertált vezérlés miatt.
 

Ebben alapvetően igazad van. A valóságban elég magas frekvenciával kell meghajtani, amikor nem az ellenállás, hanem az induktivitás fog dominálni. Ha nem így lenne, akkor inkább fűtőtest lenne, mintsem motor. ;)

Nagyságrendileg az L293 áramra jó lehet, de a tranzisztorok miatt kisebb lesz a feszültség. 

Erre nem is gondoltam. Lehet, hogy azért ilyen kicsi az ellenállása, mert ezt folyamatos forgásra tervezték, és tényleg folyamatosan változó áram folyására. Én pedig pont steppernek akarnám használni, ahol akár huzamosabb ideig is meg kellene tartania a pozícióját. Lehet, hogy emiatt nem lehet erre használni?

Ha tartani szeretnel egy leptetomotort adott pozicioban akkor nem feszultseggeneratort hanem aramgeneratort kell hasznalnod. Azt is lehet bipolaris tranzisztorokbol egyszeruen de rossz hatasfokkal. Persze ugy is lehet hogy ellenallast kotsz sorba. A hatekony aramgenerator nem egy egyszeru tortenet de vannak cel-icek amikkel el tudsz indulni.

Hát arra pont nem. :(

Ezek BLDC (Brushless DC) motorok, ami persze egy kegyes hazugság. ;) Annyiban DC, hogy egyenárammal táplálod. Viszont a driver 3 fázisú váltóáramot állít elő, vagyis inkább nevezhető 3 fázisú AC motornak. Azt meg ugye ritkább esetben használják steppernek. (Magyarul úgy hívják: léptetőmotor. :-D)

Itt olvashatsz róla, meg a korszerű TI csipekről. (Vigyázz, van benne marhaság is!)

Adatlapok: DRV10866 DRV11873

Ezekkel készült modulokat 2500-6000Ft körül beszerezheted az ebay-n - pl.: DRV11873

(Külön ic-t nem érdemes venni, ha nem tudod beforrasztani a "hasát".)

Itt egy kis ábra a meghajtás módjairól. Te a szürke zónához tartozol. ;)

Egy-két tranzisztoros áramkör helyett érdemes az adott feladatra szánt céláramkört beszerezni. Az ilyenek tartalmazhatják a hő-, túláram-, hibás feszültség- és megszorulás elleni védelmet. Egyes funkciókat esetleg 40-65 tranzisztorral oldanak meg ott belül, bár látszólag ugyanúgy működik, mint a barkács megoldás. ;)

Apró szépséghiba, hogy a fenti ic-k FAN driverek.

Olyat már áttam, hogy léptetőmotort szinuszosan hajtva vezéreltek, de AC motort léptetőmotorkén még nem. Az utóbbi működése a forgó mágneses téren alapul, sőt egy adott frekvenciára méretezik. A pozíciót meg semmiből sem tudod állítani. Talán pwm módban megkaphatja ugyanazt a frekvenciát "álló fázisban" és akkor állni látszik. Valamelyik adatlapon van brake mód is, talán abból lehetne kiindulni.

A léptetőmotor általában sokpólusú - ez meg nem.

A DVD fejléptető DC motor jó nagy áttétellel. Kap egy adag villanyt, mad úgy marad. A lineáris motor is hasonlóan működik. (hdd fej) Kap egy impulzust, majd esetleg pwm a helyén tartja.

Kísérletezzél, de először az elméletnek kellene utánanézni!

Nekem a kétmorzés relé nevű eszköz jutott eszembe: ha jó a mechanika, akkor csak ritkán/rövid időre lesz rövidzár a táp és a föld között. 

Egy inverter IC és egy tranzisztor? Az kezdők számára is elég érthető.

A floppy fejmozgatója talán nyomatékosabb, mint az optikai meghajtóé. Nem tudom, a vezérlése ugyanolyan-e.

:)

A probléma elvileg egyszerű, gyakorlatilag nem is annyira. Figyelni kell az átkapcsolás dinamikájára is, így jellemzően 60..100 ns-mal hamarabb kell kikapcsolni az épp vezetésben lévő kapcsolóelemet a most bekapcsolni kívánt kapcsolóeszköz bekapcsolási idejénél.

További érdekesség, hogy induktivitáson ugrásszerűen nem tudod az áramot megváltoztatni, így kellenek a visszavezető diódák a tranzisztorokkal antiparalel. Ez MOSFET-ekben gyártástechnológiából fakadóan automatikusan be van épülve.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

A probléma úgy tűnik nagyobb, mint vártam.

Megvan az L239D driverem. Szépen tudom felváltva adni a 12V-ot a HDD motor 3 fázisának. Elvileg 12 lépésben körbe kellene fordulnia. (Szerettem volna belőle egy óramutatót csinálni.) De nem fordul. Van, hogy 6 lépést is megtesz egymás után egy irányba, majd visszaugrik. Teljesen terheletlenül, csak magát a motor vizsgáltam. Ha forog, sem lép azonos méretűeket. Próbáltam változtatni az áram alá kerülő tekercsek sorrendjén is, de ez ugye elvileg lényegtelen, hisz tetszőleges fix sorrendhez tartozik egy fix irány.

Próbáltam azt is, hogy a két szomszédos lépés közé beiktatok egy olyat, amikor mindkét tekercsre áramot adok. Ez sem segített.

Próbáltam 1ms és 100ms között áramot adni a tekercsekre, de ez nem befolyásolta. Sehogyan sem akar stabilan körbefordulni.

4 kivezetéses HDD motorral próbálkozom, úgy, hogy a közös pont mindig a 0V, és csak a gerjesztendő tekercs vagy tekercsek lábaira kapcsolom a 12V-ot, a többiére 0V-ot.

Elvileg sem értem, hogy miért nem reagál szimmetrikusan egy egy lépésre. Azt gondolnám, hogy ha megmozdul, akkor a mágnesek vonzása miatt néhány ms alatt már stabilan be kellene állnia a mágnesnek, azaz a következő lépés mindig hasonló pozícióból hasonló pozícióba visz. Olyan, mintha nem is lenne szimmetrikus a belső felépítése. Ez lehetséges?

Milyen jelalakot teszel ra? Csak mert a haromfazisu motorok valami ilyesmit szeretnek. Persze a szinuszt negyszogesitheted valamennyire, de illik az I1^2+I2^2+I3^2 = allando feltetelt tartani mindekozben. Ugyanez igaz ketfazisu bipolaris motorokra is, de ott a sima kvadratura-jel automatikusan tudja az I1^2+I2^2 = allando feltetelt, szoval azt konnyebb negyszogesiteni. 

Szimmetrikusnak kell lennie, mert különben döcögne. ;)

Milyen frekvenciával hajtod? Mert ez nem egy egyenáramú léptetőmotor, amire impulzust adsz és megáll.

Először forgasd meg elegendően nagy frekvenciával - olyannal, ami normál üzemi fordulatszámmal forgatja! Ezen a frekvencian az induktivitás dominál, a tekercsek ellenállását és a driver maradékfeszültségét az egyszerűség kedvéért hanyagoljuk el!

Utána csökkentsd a frekvenciát! A nyomaték nő, az áramfelvétel nő. Ha tovább csökkented a frekvenciát, akkor jön a füst.

Az áramfelvétel arányos az U/f hányadossal. Nagyon kicsi frekvencián nagyon nagy lesz az áram. Ezt úgy tudod kiküszöbölni, hogy a forgó mágneses tér frekvenciájának csökkentése mellett modulálod a meghajtó jelet. (pwm -> kisebb kitöltési tényező)

Na, ez sem lesz jó, mert nem szinuszos a hajtás. Alacsony frekvencián lesz olyan konstelláció, amikor semerre sem folyik áram. Ennek elkerüléséhez meg kell növelni a frekvenciát, és a "modulációt is modulálni" olyan módon, hogy az eredője egy szinuszos forgó mágneses teret adjon. Az okosok ezt sin() táblázat +3 pwm segitségével csinálják.

A végén a moduláló frekvenciát kell a kívánt értékre csökkenteni. Hogy mennyire, azt a slip értéke mondja meg - de ez csak tipp.

"a következő lépés"

Ez nem léptetőmotor, nincs következő lépés. Folyamatosan forgó mágneses tér kell, és folyamatosan fog forogni. Lépkedni nem fog. Ahogy a betonkeverő is forogni szokott, nem pedig meg-megállva várni, hogy dolgozzon a kémia.

Normális ember már nem kommentel sehol.

Több megjegyzésem van. Az egyik, hogy az induktív reaktanci a frekvenciával arányos, így a frekvenciával - ha úgy tetszik, a kívánt fordulatszámmal - arányosan kell változtatni a feszültséget is. Ezt persze lehet nagyfrekvenciás PWM-mel csinálni, technikai részletkérdés.

Nagyon kis frekvencián csak a tekercs rézhuzal ellenállása limitálja az áramot, ebből két baj származhat:

1) termikus túlterhelés, füst, leég a tekercselésről a zománc szigetelés
2) a nagyon nagy gerjesztés miatt betelít a vasmag

A második szinkron gépeknél a jellemzően nagyobb légrés és így nagyobb mágneses ellenállás miatt nem gond, de léptetőmotoroknál vigyázni kell, mert a fogak betelítésének az lehet a következménye, hogy nem lesz az indukciónak gradiense érintő irányban. Más szavakkal olyan lesz, mintha lereszeltük volna a fogakat, így lecsökken vagy megszűnik a gép nyomatéka. Tehát azt várnánk, hogy nagyobb áram hatására nagyobb lesz a nyomatékunk, de a vastelítés miatt adott áram és így gerjesztés fölött már újra csökken a nyomaték, cserébe a gép is leég.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE