Ik heb een h-brug gemaakt voor een project waar ik mee bezig ben. Omdat deze geen logica bezat (kon tegelijk L en R) heb ik het schema aangepast. (de ingangs signalen zijn 3.3V).

schema: http://img94.imageshack.us/img94/2533/fullk.png

Het is voor te kijken als ik geen huge fouten gemaakt heb en ik sta altijd open voor verbeteringen aan het schema. De bedoeling is dat je met L en R de kant kiest.

En ik had dus nog een vraag over het afremmen van de motor. De kracht van het remmen is afhankelijk van de weerstand. Hoe kleiner de weerstand hoe zwaarder hij remt? Maar aangezien dat de weerstand tussen GND en GND zeer klein is zal hij dus enorm afremmen. En ik zou dit graag kunnen regelen via signalen. Maar ik vind niet echt een goede oplossing voor dit probleem. (transistoren die weerstanden inschakelen lijkt mij zo onhandig want dan heb je maar keuze uit een paar waarden). Is er iemand die een betere oplossing heeft voor dit probleem? (Ik heb nog een aantal I/O poorten over maar geen analoge in of out).

Waarom gebruik je geen N-channel MOSFETs met een paar halve brug drivers (IR2184 of zo)? Dan zit die logica, dode tijd injectie, etc. er allemaal al in. Daarbij zijn N-channel FETs veel beter (goedkoper, lagere Rdson, hogere Id, etc) dan P-channel FETs.

Remmen doe je door een negatief koppel te leveren; hiervoor moet je een spanning aanleggen die effectief lager is dan de tegen-EMK van de motor. Wanneer je de motor kortsluit, leg je een spanning van 0V aan, waardoor de tegen-EMK volledig over de interne weerstand van de motor moet vallen.

Je kunt beter remmen door te blijven PWM'en, maar dan met lagere effectieve spanning dan de tegen-EMK, maar op die manier krijg je een stroom terug de voeding is. Als je dan onvoldoende andere gebruikers hebt, en een voeding die geen stroom kan opnemen, zal de voedingsspanning op gaan lopen. In industriële regelaars hebben ze daar dan weer remweerstanden voor, die via een eigen PWM circuit gebruikt worden om de condensators in de voeding te ontladen, zodat de spanning niet op kan lopen.

voor die halve brug driver. Het voordeel daar mee is dat ik n mosfets kan gebruiken voor de volledige brug? Er staat nergens vermeld in de datasheet dat je zo 2 IC's aan elkaar mag koppelen om een volledige h-brug te maken? En hoe maak je daar een h-brug mee? Want in de darasheet staat als SD = "1" is dan is Ho = in en Lo = niet in. En Ho is bovenste fet en Lo is onderste fet. Ik zie gewoon niet hoe ik daarmee een h-brug kan maken?

Dus conclusie bovenste fet schakelt als onderste niet schakelt en vica versa.
Maar ik vind die IC vrij ingewikkeld en je hebt al p-fets voor een halve € en de andere nadelen vind ik aanvaardbaar. Dus zou ik liever bij de eenvoudige versie blijven.

Maar ik vraag mij af als ik wel die TC427 mag gebruiken om die bovenste p-fets in te schakelen?

[edit]
men voeding is een accu van een boormachine. Ik veronderstel dat deze dan een beetje bijlaad bij het remmen (miniem wel). En het lager PWM'en is toch minder "krachtig"? Want als ik de motor kortsluit (0V) dan zal deze toch harder remmen dan bij een PWM signaal van 0V? Of niet?

Niemand die hier nog iets wil op aanmerken (op het origineel schema)?
Want ik zou het graag van de eerste keer zo juist mogelijk willen doen.

Wat je hebt gebouwd is stukken ingewikkelder dan wat de meeste mensen rond een H-brug bouwen. google eens naar H-brug driver. Dan vind je als het goed is zowel kantenklare chips als schemas om het "zelf" te doen.

Je schema controleren kan ik niet. Ik zie stippeldraden, en die bestaan niet in electrische schemas. (met een stippellijn wordt wel eens een stuk van een schema aangegeven dat een aantal x moet worden uitgevoerd, of bijvoorbeeld op een andere print moet. Of optioneel is).

De "remweerstand" is de som van:
* De weerstand in de draden in de motor.
* de weerstand tussen GND en GND (een stuk draad)....
* De RDSON van de FETS die je gebruikt.

dus niet precies nul zoals je half suggereert.

Wat je kunt doen is PWM-en om gecontroleerd te remmen. De rem-warmte verdeelt zich dan omgekeerd evenredig over de bovengenoemde weerstanden....

Je zou eventueel die FETS half kunnen aansturen. Daar worden ze warm van, dus dan weet je waar het overgrote deel van de warmte gaat zitten......

Op 6 juli 2010 16:59:18 schreef rew:
Wat je kunt doen is PWM-en om gecontroleerd te remmen. De rem-warmte verdeelt zich dan omgekeerd evenredig over de bovengenoemde weerstanden....

Denk daar nog maar even goed over na. Wat gebeurd er op het moment dat je beide onderste FETs aanstuurt? Wat gebeurd er vervolgens als je een of beide laat sperren?

Er vloeit stroom door de kring onderste fets en motor. Als er 1 spert stopt die stroom en vloeit hij via de vrijloopdioden?

[edit]
schema met enkel volle lijnen: http://img10.imageshack.us/img10/7571/controlehbrugvol.png
Zo ingewikkeld is het toch ook niet? Het is gebaseerd op het schema van pros. Maar in plaat van de bovenste fets automatisch te laten mij geleiden zoals hij doet schakel ik deze in met dezelfde TC247. En dit omdat ik dan kan remmen. aangezien dit blijkbaar even handig is om te doen via lager te PWM'en (software matijg makkelijk oplosbaar) heb ik dit dus weer over genomen. Enkel de "simple logica" om de h-brug niet te kunnen opblazen heb ik toegevoegd.

Voor de p fets zou ik de FQP27P06 gebruiken ipv de sup (enkel voor de prijs). Alle condensators zijn 100nF. Moet ik nergens pull down weerstanden toevoegen? of is dit niet nodig in de 74xx reeks? of toch beter doen uit voorzorg?

[edit]
voor die rem functie. Als ik de 2 onderste fets enkel zou inschakelen remt de motor zeer hevig juist? Maar als ik dit doe met PWM toch niet? Want dan krijg ik vrijloop, lagere snelheid (of remmen), vrijloop, .... Maar door de vrijloop perioden zal het rem effect toch drastisch verminderen?

Wat is "vrijloop"? Wat gebeurd er in de perioden dat alle FETs sperren?

Het is helemaal niet zo moeilijk, teken gewoon een schema met de stappen waarin de FETs gaan geleiden en sperren, en beredeneer de spanningen en stromen. Wat hebben die spanningen en stromen voor effect? Voor elke stap, nemen ze toe, blijven ze gelijk, of nemen ze af?

pwm1: http://img94.imageshack.us/i/29228402.png/
pwm2: http://img824.imageshack.us/i/87224537.png/
rem: http://img269.imageshack.us/i/remh.png/

Heb dus een simpele tekening gemaakt van hoe ik denk dat de stroom en spanning gaat. In PWM1 en PWM2 zie je hoe de spanning gaat bij het schakelen van PWM hoe lager de duty cycle van het PWM signaal hoe meer je PWM2 zal tegenkomen en hoe minder PWM1. En ik dacht dat PWM2 gelijk was aan vrijloop (dus daar remt hij niet). Dus dan remt hij enkel in PWM1 omdat het PWM signaal verminderd is (motor levert een tegenkoppel omdat Ueff lager is). Dus ik dacht bij het verlagen van het PWM signaal krijg je: beetje remmen - vrijloop - beetje remmen -.... (en hoe lager de duty cycle hoe langer de periode vrijloop duurd en hoe korter de rem periode duurt).

En bij rem is dan de situatie dat ik de 2 onderste fets laat werken. Zo levert de motor een constant maximaal tegenkoppel (of dus zwaar remmen).

En daarom dacht ik dat bij het verlagen van het PWM signaal de motor wel iets zou remmen maar niet zo veel. Maar bij het effectief remmen (2 onderste fets gesloten) remt hij zeer zwaar constant (afhankelijk van de weerstand van het remcircuit (2fets en koperbaantjes).

Klopt dit?

Nee, niet echt. Kijk nog eens goed naar die tekening PWM2, hoe loopt die stroom daar, en waarom zou die diode linksboven het daar mee eens zijn?

Ik zei dat het handig was om niet alleen te kijken naar waar de stromen lopen, maar ook na te denken over de vraag of de stromen toenemen, afnemen, of constant blijven.

Stel dat je begint met een stroomloze motor, waarvan de as wel draait. Wat gebeurd er als je deze kortsluit? Hoe komt dat? Wat gebeurd er vervolgens als je een van de bovenste en de tegenovergestelde onderste FET open zet? Wat gebeurd er als je hetzelfde zou doen met de andere 2 FETs?

Inderdaad die PWM2 kan niet. Ik heb dit even aangepast.
http://img824.imageshack.us/i/94834963.png/ deze klopt wel denk ik.

Wel als je een stroomloze motor waarvan de as draait kortsluit gaat deze werken als een generator. En dit zorgt ervoor dat de as remt. Want in het begin zal de motor "veel" stroom opwekken maar omdat de as niet bekrachtigd wordt door iets anders zal die stroomopwekking dalen.

Als je een bovenste en zijn tegenovergestelde onderste fet inschakelt zal de motor bekrachtigd worden en dus draaien. Als je dan vervolgens de 2 andere inschakelt zal de motor (denk ik) niet werken als generator, maar simpelweg bekrachtigd worden in de andere richting. Waardoor hij dus eerst compleet afremt en dan draait naar de andere kant. De stroom zal het grootst zijn bij de eerste keer dat je de draaiende motor omgekeerd bekrachtigd en zal afnemen omdat de as steeds trager draait. De stroom neemt dan weer toe eens hij stil staat om in de andere richting te draaien.

En de stroom blijft enkel maar constant als je hem steeds met de 2 zelfde fets bekrachtigd.

Maar ik weet niet goed wat er gebeurd als de motor draait en je zet alle 4 de fets open. Volgens mij gaat hij dan in vrijloop (motor remt dan enkel af door de mechanische tegenstand). En de inductie die de spoelen van de motor opwekken loopt "weg" via de vrijloopdioden. Dus de stroom neemt af. Maar dan wordt de motor toch niet afgeremt?

[edit]
Ik heb mijn schema nu compleet getekend http://img94.imageshack.us/img94/2533/fullk.png

gebruikte comonenten:
P-fets: SPP18P06P (klopt niet op schema want hij zat niet in eagle)
n-fets: STP22NF03L (klopt niet op schema want hij zat niet in eagle)
drivers fets: TC427
alle condensators: 100nF
vrijloopdioden: MBR750
andere dioden (voor geleiden p-fets): 1N4148 (klopt niet op schema want hij zat niet in eagle)
alle weerstanden:100k
NAND poort: 7400N
AND poort: 7411N
voltage regelaars: 7805

Klopt dit schema nu? Of heb ik ergens fouten staan?

[Bericht gewijzigd door pipsie op (22%)]

Heeft er iemand nog opmerking over mijn schema?
En klopt mijn redenering nu voor het remmen?

Ik weet niet waar sparky heenwil. Kennelijk denkt ie dat ik het verkeerd had, en dat je niet kunt PWMen om te remmen.... Maar ondanks zijn hints valt ook bij mij het kwartje niet.....

Stel: je zet 15V over je motor (PWM=100%), en er gaat dan 1A lopen. De boel loopt redelijk soepel, dus de tegen-EMK is 14V. Nu schakel je de boel in 1x helemaal uit. De inductie in de motor zal nog even die 1A willen laten lopen. De "hoge kant" van de motor springt naar -0.6V, de voorheen lage kant van de motor springt naar 15.6V en deze spanning over de motor-spoel doen de stroom afnemen. Enkele microseconden later is de stroom nul. Nu staat er over de motor weer de tegen-EMK van 14V. De lage kant gaat ergens tussen de -0.6 en de 1.6V zweven, net als de hoge kant nu tussen de 13.4 en de 15.6 gaat zweven.

Als je nu wilt remmen, zet je beide fets naar aarde aan. De tegen-EMK van 14V wordt nu kortgesloten. Deze 14V staat nu alleen over de RDSON van de FETs, de draden en de motorweerstand. De stroom neemt nu snel enorm toe, en de omzetting van mechanische energie naar electrische energie neemt grote vormen aan. De motor stopt snel (remt).

Als je dit laatste gaat PWM-en, heeft deze rem een evenredig effect.... Zodra je even niet remt, neemt de stroom snel weer af, via de vrijloop dioden.

Als je snel PWMt, vergeleken met de motor-inductie, zou het kunnen dat de stroom niet geheel Nul wordt in de "off" periode van de PWM. Dit verandert echter niks aan het verhaal.....

Sparky, volgens mij gaat er niks mis, of ik doe iets verkeerd. Zeg het maar waar ik de fout in ga.

Dus als ik het goed begrijp. Om te remmen met PWM (dus niet onderste fets motor laten kortsluiten). Dan moet ik met een relatief "lage" frequentie PWM'en en ervoor zorgen dat het PWM signaal lager is dan het vorige. Of remt hij daar niet vanaf want ik versta niet goed wat er gebeurd.

Stel nu ik PWM in een richting alles gaat goed motor is op zen maximum snelheid heeft zo een 5V(gemiddeld dan he) 3A over zich. Ik wil nu plots remmen. Dus ik verlaag het PWM signaal maar laat het nog steeds in dezelfde richting gaan. De spanning over de motor is dan vb 4.5V (gemiddeld) en stroom 1A(want hij moet hem niet meer duwen omdat hij al te rap bold). Wat doet die motor dan? Wordt hij simpelweg bekrachtigd met 4.5V of zal hij remmen omdat er 0.5 minder over staat (een soort van tijdelijk generator werking tot hij aan 4.5V is). Ik snap niet wat hij zal doen. Als je dat even kan verduidelijken.

En als hij niet remt (weet ik dus nog niet maar na een mooie uitleg misschien wel :)) dan kan ik toch gewoon zeer laag PWM'en in de andere richting. Ik weet dat dit hoge stroom pieken zal veroorzaken. Maar kan dit niet gecontroleerd gebeuren door middel van de PWM zeer laag te houden?

@rew: je verhaal is bijna helemaal correct, je kunt op die manier goed remmen. Waar ik op doelde, is dat de energie niet (helemaal) wordt opgestookt in de weerstand van de FETs en de motorwikkeling.

Als er stroom loopt door de spoel, omdat je die net had kortgesloten met de onderste 2 FETs, en je laat ze allebei sperren, moet die stroom ergens blijven lopen. Als je het schema met de stromen erin tekent, zul je zien dat die stroom door de voeding moet lopen, en dus de condensators of accu zal opladen.

Zodra je de motor dus gaat PWM'en, waarbij je deze ofwel even kortsluit (recirculeren) en dan alle FET's laat sperren, of wel alle FETs gebruikt en een lagere effectieve spanning aanlegt dan de tegen-EMK, zul je een negatief koppel leveren (dus remmen) en energie terug de voeding in gaat voeren.

Eigenlijk is het helemaal niet zo moeilijk; een motor levert koppel afhankelijk van de stroom door de spoelen; een positieve stroom geeft een positief koppel, en een negatieve stroom geeft een negatief koppel. De stroom die er gaat lopen, is afhankelijk van de weerstand van de spoel (en de FETs, e.d.), de effectieve aangelegde spanning, en de tegen-EMK.

Die tegen-EMK is een gelijkgerichte 3-fase sinusvorm, maar voor de meeste toepassingen kun je die als snelheid afhankelijk gelijkspanning beschouwen.

Ik kan dus remmen via PWM als ik het begrijp maar kan je nog even uitleggen wat er precies gebeurt als:

Ik PWM in een richting alles gaat goed motor is op zen maximum snelheid heeft zo een 5V(gemiddeld dan he) 3A over zich. Ik wil nu plots remmen. Dus ik verlaag het PWM signaal maar laat het nog steeds in dezelfde richting gaan. De spanning over de motor is dan vb 4.5V (gemiddeld) en stroom 1A(want hij moet hem niet meer duwen omdat hij al te rap bold). Wat doet die motor dan? Wordt hij simpelweg bekrachtigd met 4.5V of zal hij remmen omdat er 0.5 minder over staat (een soort van tijdelijk generator werking tot hij aan 4.5V is). Ik snap niet wat hij zal doen. Als je dat even kan verduidelijken.

En ik kan toch gewoon zeer laag PWM'en in de andere richting. Ik weet dat dit hoge stroom pieken zal veroorzaken. Maar kan dit niet gecontroleerd gebeuren door middel van de PWM zeer laag te houden? En is dit dan beter slechter dan het verlagen van de PWM in dezelfde richting?

Ik heb ook men PCB getekend (ben daar niet echt een spevialist in). Dus als je dingen ziet die echt beter kunnen of problemen zullen opleveren mag je het altijd laten weten.
elektrisch schema: http://img94.imageshack.us/img94/2533/fullk.png
PCB om te etsen: http://img638.imageshack.us/i/omteetsen.png/
PCB met namen componenten op: http://img88.imageshack.us/i/metcomonenten.png/

gebruikte comonenten:
P-fets: SPP18P06P (klopt niet op schema want hij zat niet in eagle)
n-fets: STP22NF03L (klopt niet op schema want hij zat niet in eagle)
drivers fets: TC427
alle condensators: 100nF
vrijloopdioden: MBR750
andere dioden (voor geleiden p-fets): 1N4148 (klopt niet op schema want hij zat niet in eagle)
alle weerstanden:100k
NAND poort: 7400N
AND poort: 7411N
voltage regelaars: 7805

Wat er in dat geval gebeurd, is afhankelijk van de tegen-EMK en de weerstand. Stel dat de weerstand van de spoelen 500 milliohm is, dan zou er over die weerstand 1.5V moeten vallen als er 3A door loopt. Dat betekend dus, dat de tegen-EMK 3.5V is (is wel heel erg laag, overigens), aangezien de motor op een stabiele snelheid draait.

Als je nu naar een spanning van 4.5V gaat, zal de motor nog even dezelfde snelheid aanhouden, zodat er nog maar 1V beschikbaar is om de weerstand te overwinnen. Er zal dan dus nog maar 2A lopen. Aangezien deze stroom nog positief is, zal de motor ook nog een koppel leveren. Door het afgenomen koppel zal de motor waarschijnlijk wel gaan vertragen.

Stel nu dat de motor op een stabiele snelheid draait (met belasting), op een spanning van 20V, waarbij er weer 3A loopt. Voor die 3A heb je weer 1.5V nodig, dus de tegen-EMK zou op dat moment 18.5V moeten zijn om het sommetje kloppend te maken.

Als je nu een effectieve spanning van 15V aanbied, terwijl de snelheid nog even gelijk blijft, staat er 18.5 - 15 = -3.5V over de interne weerstand. De door de motor opgewekte spanning is immers grotere dan de aangelegde spanning, dus er gaat ook een negatieve stroom lopen, -7A in dit geval. Deze stroom zal een negatief koppel opwekken, dus tegengesteld aan de draairichting. Hierdoor zal de motor gaan afremmen tot er een nieuw balanspunt is gevonden op een lagere snelheid.

ha nu snap ik het dus in mijn geval is dat al bijna niet mogelijk (omdat men stroom vrij groot is tov men spanning, tenzij men weerstand van de motor zee klein is). Dus om te remmen zal ik dan moeten PWM'en in de tegenovergestelde richting. Om de motor te sparen best op een hoge frequentie en een lage dutycyle. Klopt dit dan?

En om te bereken hoeveel spanning de vrijloopdioden over zich kunnen krijgen. Mag ik dat dan ook zo doen.
Weerstand spoelen 500mohm.
stroom 3A
spanning 15V
spanningsval over spoelen = 500mohm * 3A = 1.5V
tegen EMK = U - spanningsval over spoelen = 15 - 1.5 = 13.5V
Dus die diode krijgen dan 13.5V en 3A maximum over zich?
Waardoor ze dan 0.7V*3A = 2.1W dissipiren maximum?

Op 5 juli 2010 11:35:57 schreef SparkyGSX:
Je kunt beter remmen door te blijven PWM'en, maar dan met lagere effectieve spanning dan de tegen-EMK, maar op die manier krijg je een stroom terug de voeding is. Als je dan onvoldoende andere gebruikers hebt, en een voeding die geen stroom kan opnemen, zal de voedingsspanning op gaan lopen. In industriële regelaars hebben ze daar dan weer remweerstanden voor, die via een eigen PWM circuit gebruikt worden om de condensators in de voeding te ontladen, zodat de spanning niet op kan lopen.

Heb je helemaal gelijk in, Maar wat je ook kan doen is een flinke diode in doorlaat richting aan de bovenkant van de H_BRUG zetten. Dan is het probleem ook opgelost.

Helemaal niet, want dan kun je wachten op doorgeslagen onderdelen. Als je geen pad voorziet voor die stroom, zal de spanning oplopen, aangezien U = L dI/dt, en je geen voorziening hebt om die dI/dt onder controle te houden.

Je moet die energie ergens gecontroleerd afvoeren.

@TS: heb je specificaties van die motoren? Spanningen, maximale stromen, spoelweerstand, dat soort dingen?

Op een hoge frequentie worden de piekstromen wat beperkt. Het heeft niet zoveel zin om heel erg hoog te gaan, maar te laag is ook niet goed.

Je berekening voor de diodes is in principe goed, mits die 3A echt de maximale stroom is. De diodes krijgen in ieder geval de volledige voedingsspanning te zien in de sperrichting, en in de praktijk nog wat meer vanwege transients tijdens het schakelen.

[Bericht gewijzigd door SparkyGSX op (48%)]

@ sparkyGSX.

Als die diode er niet zit, en je voeding kan de spanning niet afvoeren loopt de spanning net zo goed op. En als daar het voeding gedeelte op zit bv een 7805, of een andere regelaar sloop je die net zo hard. En de spanning loopt toch niet verder op dan dat de motor opdat moment levert (als generator) bij het remmen. Als je de componenten zo kiest dat ze die spanning aan kunnen is er niets aan de hand.

En is geen (duidelijk definieerbare) maximale spanning die op kan treden; die kan vele malen hoger worden van de tegen-EMK. Een motor die volledig vrijloopt kan geen spanningen leveren hogere dan zijn tegen-EMK, zolang je doorgaat met PWM'en loopt er stroom door de spoelen, en die zijn het er niet mee eens als je die probeert af te kappen.

Mischien niet helemaal, maar een 24VDC motor die 3000 T/M loopt zal bij het remmen niet meer dan een volt of 18 afgeven, mits hij niet harder draait dan 3000 toeren. Als het toerental oploopt is het een ander verhaal, maar daar ga je niet vanuit als je aan het remmen bent zeker niet als dat gecontroleerd gebeurt.

Voorbeeld:
Als je een motor met een vliegwiel erop langzaam afremt via pwm is er sowieso niets aan de hand, dan zal de spanning niet veel oplopen maar als je hem snel afremt en niet helemaal stilzet dan zal er een volt of 18 bij komen bij de al 24VDC voeding (bij 3000 toeren) dus dat is een volt of 42.
Als je hier geen diode in de voeding van de H_BRUG hebt komt er dus ook 42VDC over bv je spannings regelaar te staan, te veel dus. Als je een diode plaatst komt het ten eerste niet bij je regelaar, en bij de rest van je besturing. De diode heeft ook nog eens het voordeel dat die 18VDC een pwm spanning is, dus geen continue 18VDC.

Dit geld alleen bij een voeding die geen spanning op kan nemen, dus niet bij een accu gevoede regelaar.

Maar ik heb toch dioden staan in mijn schema (http://img94.imageshack.us/img94/2533/fullk.png).
De spanning is dus max 2 keer de spanning bekrachtigd (dus als hij met 15V rijd maximum 30V bij kortsluiten motor). Maar het is vooral de stroom weer ik in geïnteresseerd ben zo weet ik hoe warm die vrijloopdioden max kunnen worden.

Op 5 juli 2010 11:09:02 schreef pipsie:
Het is voor te kijken als ik geen huge fouten gemaakt heb

Wat voor spanning gebruik je voor de motoren? met 24V zit je al over de maximale gate-spanning van je P-fets heen.

Als ik het goed zie worden de P-fets dicht gestuurd doordat die 100n C's zich over die 100k weerstanden ontladen? Dat gaat even duren! Arme FETs...