AND(XOR) met transistoren - relais protectie

Vers van de avond pers. Voor een systeem waarbij motoren twee kanten kunnen draaien wil ik na een RPi Pico een hardware bescherming plaatsen zodat nooit en te nimmer de beide draairichtingen tegelijk geactiveerd kunnen worden.

Eerst dacht ik aan een Pic die ik als XOR programmeer, maar omdat het om meerdere PCB’s gaat, is dat wat onhandig. Ik kan deze niet van te voren programmeren want de onderdelen worden via een PCB boer bestukt. En om dan met een clip of connector te gaan werken is ook wat gedoe. En met transistoren hoef ik verders niets te doen en is niet eens duurder.

Dus, de logic wordt gedaan door transistoren.
Ik heb hier het schema wat ik getekend heb; alleen de juiste weerstand waarden voor R3 en R4 weet ik niet hoe te berekenen, o.a. omdat er drie transistoren paralel staan waarvan er bij er ook voor ieder twee transistoren in serie staan ( fysiek zelfs nog complexer zie ik, maar geloof niet dat dat meegerekend moet/kan worden omdat niet ze in elke situatie ze aan staan ).

Het plaatje spreekt voor zich, hoop ik.
https://www.uploadarchief.net:443/files/download/xor-and%20transistor1.pdf

Uitgangen van een RPi Pico - PIO_A en PIO_B welke 3,3V zijn sturen de transistorren aan.

Het gaat er dus om dat de beide optocouplers nooit tegelijk ontstoken kunnen zijn.

Even om te kijken of mijn beeldvorming correct is en graag jullie correcties.

code:


Waarheid tabel

pos|  A  |  B  |  Rel_A  |  Rel_B  |
————————————————————————————————————
 1 |  0  |  0  |    0    |    0    |
 2 |  0  |  1  |    0    |    1    |
 3 |  1  |  0  |    1    |    0    |
 4 |  1  |  1  |    0    |    0    |

POS 1.
Q1, Q2, Q3, Q4, Q5, Q6, Q7 en Q8 zijn uit omdat er nergens stroom door een Base loopt. Led_small en OptoCouplers blijven uit.

POS 2.
Q1 en Q2 zijn een AND maar alleen Q2 is aan, waardoor Q3 en Q4 wel een voeding krijgen maar alleen Q4 staat ‘aan’.
Vanuit Q4 krijgt Q6 en Q8 wel stuur spanning.
Q5 geeft Q6 geen voeding stroom en daardoor blijft de AND Q5 en Q6 uit waardoor de Opto_A niet aan gaat.
Q7 geeft Q8 wel een voeding stroom en daardoor gaat de AND Q7 en Q8 aan waardoor de Opto_A en LED_small_A aan gaan.

POS 3.
Is gelijk aan POS 2 maar A en B zijn dan verwisseld.

POS 4.
Q1 en Q2 zijn een AND die als ze ‘aan’ staan ervoor zorgen dat de Q3 en Q4 nooit ‘aan’ kunnen gaan waardoor Q6 en Q8 ook nooit ‘aan’ kunnen gaan, ondanks dat Q5 en Q7 wel een stuurstroom krijgen. Led_small en OptoCouplers blijven uit.

Met 1 transistor of twee achter elkaar ( de AND logic ) lukt me ook nog wel. Maar de A label is verbonden met 3 parallelle transistors die dan ook nog eens een serie transistor hebben, en dat gaat boven mij muts. Ik zou geen idee hebben hoeveel stroom dit gaat gebruiken.

Mijn vraag is dus of de gevonden weerstands waarden correct zijn.

Ik zou wel de S8050 kunnen vervangen voor een 2N2222A als dat beter zou zijn.
Er zitten hier geen condensatoren in verwerkt dus ik hoef niet bang te zijn dat als A en B snel omgeschakeld worden dat er een traagheid probleem is bij de relay’s of …. wel? Relay’s zou eventueel <0,5sec. vertraagd mogen opkomen, maar hardware matig hoe?

Graag jullie reacties en oplossingen.

Normaal los je dat op met relais

code:


relais   |  A  |  B  |
---------+-----+-----+
uit      |  0  |  0  |
---------+-----+-----+
linksom  |  1  |  0  |
---------+-----+-----+
rechtsom |  0  |  1  |
---------+-----+-----+

Een verbreekcontact van het A-relais onderbreekt de voeding van het B-relais en
een verbreekcontact van het B-relais onderbreekt de voeding van het A-relais

code:



--------+----------+-------------+-------------+  Voeding
        |          |             |             |
        0|         0|            0|            0|
         | B1       | A1          | A2          | B2
        0|         0|            0|            0|
        |          |             |             |
        |          |             +---{Motor}---+
      -----      -----           |             |
     |     |    |     |        | 0           | 0
     |  A  |    |  B  |     A3 |          B3 |
     |     |    |     |        | 0           | 0
      -----      -----           |             |
        |          |             |             |
        |          |             |             |
 {Sturing A}  {Sturing B}        |             |
  linksom      rechtsom          |             |
        |          |             |             |
--------+----------+-------------+-------------+   Massa

Je kan zoiets maken
De schakeling is getekend in rust.
De motor draait niet, want beide zijden van de motor voeren dezelfde spanning
Nu laat ik via 'Sturing A' relais A opkomen.
Contact A1 gaat open. Relais B kan niet meer aangestuurd worden.
Contact A2 gaat open en contact A3 sluit. De motor gaat linksom draaien via stroom vanaf Voeding -> B2-> motor-> A3 -> Massa
Als ik de motor rechtsom wil laten draaien, dan moet ik eerst relais A laten afvallen en dan pas kan ik relais B aansturen.
Nu laat ik via 'Sturing B' relais B opkomen.
Contact B1 gaat open. Relais A kan niet meer aangestuurd worden.
Contact B2 gaat open en contact B3 sluit. De motor gaat rechtsom draaien via stroom vanaf Voeding -> A2-> motor-> B3 -> Massa
Als ik de motor linksom wil laten draaien, dan moet ik eerst relais B laten afvallen en dan pas kan ik relais A aansturen.
Mocht om een of andere reden relais A en B toch tegelijk aangetrokken zijn, dan zijn de contacten A2 en B2 geopend en de contacten A3 en B3 gesloten. De motor staat dan stil, want beide zijden van de motor voeren dezelfde spanning
Wel netjes programmeren zodat bij wisselen van de draairichting een dode tijd zit tussen het aansturen van het ene relais en het aansturen van het andere relais.

Hallo Ohm Pi

Dank je wel voor je reactie.

Ik heb de relais al in bezit en in gebruik en de motoren hebben drie aders; wil ook geen spanning op de aders naar de motoren als er niets hoeft te draaien.

Ik heb het nu werken met drie relais, maar wil daar vanaf o.a. om het kleiner te maken en in een Phoenix DINRail Doos te plakken. Nu staat het letterlijk bol van de electronica ;)

Tevens wil ik graag weten of wat ik wil technisch en rekenkundig correct is. Dus wil me aan dit schema idee houden. Ook wil ik het idee later gebruiken voor een treinbaan waar bij treintjes beide richtingen kan gaan rijden. Weliswaar niet met de zelfde PCB maar wel het idee. Een buurjongen wilt het ook gebruiken, prima, maar ik kan zo vermijden dat er iets vout gaat tijdens het programmeren.

Wel netjes programmeren zodat bij wisselen van de draairichting een dode tijd zit tussen het aansturen van het ene relais en het aansturen van het andere relais.

Dat is buiten kijf.

Ik heb de PWR_Flags bijgevoegd, om de ERC test te doorstaan.

benleentje

Golden Member

Normaal los ik dit 100% in de relais zelf op.
Om relais B te activeren zet ik daar een verbreek contact van relais A voor.
Je hebt nu dan wel een extra contact nu per relais.

Maar wat je nu wilt maken is feitelijk hetzelfde als de sturing van een H brug maar dan met de aansturing van de bovenste 2 transistoren omgedraaid.

https://www.uploadarchief.net/files/download/H-brugI.png
https://www.circuitsonline.net/forum/view/45880

Ik weet niet of het 100% goed is maar dit is het idee.

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.

De motoren waar het in eerste instantie om gaan zijn geen DC motoren. Maar 230VAC.

het lijkt me dat dit veel eenvoudiger kan. (ik bedoel je pdf schema)

Q11 Q10 kan, als die U2 aanschakelt, ook optoucoupler 1 blokkeren (U1) door één diode van collector Q11 Q10 naar pin 1 U1. Als Q11 Q10 geleidt en U2 aan is kan U1 dan niet meer aangaan (zit zonder voeding) en dus relais 1 niet meer aantrekken.

zelfde truuk van Q9 naar U2 toepassen. je bekomt de gewenste XOR functie met heel wat minder transistoren..

@kris van damme,
Ik ga ervan uit dat je Q10 bedoeld i.p.v Q11

Bedoel je dit?

https://www.uploadarchief.net:443/files/download/xor-and%20transistor2.pdf

Zijn de weerstanden dan nog Oke?
Hoe zit het met de spanningsval? Geen probleem?

Zou wel veel schelen.

k'Ga er een half nachtje over slapen.

Terzijde, ik zie in mijn Safari browser een plaatje, maar via chrome zie ik geen plaatje. Wel werkt de link vh plaatje correct.

Als de relais wisselcontacten zijn , voed de tweede relais vanuit het eerste relais .

Is het een DC motor? Die kun je aansluiten tussen 2 wisselcontacten.
Dan draait de motor alleen als er 1 relais aan staat, de motor draait niet als allebei de relais aan staan.
Dus zo:

Maar je hebt een motor met 3 aansluitingen, zoals een rolluik-motor, met aparte draden voor omhoog en omlaag?
Die kun je ook met 2 wisselcontacten aansturen.

Zo bijvoorbeeld:

In dit geval doet S2 niks zolang S1 aan staat.

Dus in allebei de gevallen is de extra beveiliging niet meer nodig.

Arco

Special Member

Er zijn toch 8 pins h-bridge driver ic'tjes die dat al kunnen? (zelfs incl deadtime). Weinig zin om het wiel opnieuw uit te vinden...
(heb die in het verleden gebruikt, maar vind ze zo gauw niet nu)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Maar waarom met transistoren? Een halve 74HC139 zou ook volstaan, en dan snapt iedereen hoe het werkt.

Op 5 december 2021 02:17:48 schreef Lord Anubis:
@kris van damme,
Ik ga ervan uit dat je Q10 bedoeld i.p.v Q11

Zijn de weerstanden dan nog Oke?
Hoe zit het met de spanningsval? Geen probleem?

inderdaad. het late uur hé.

Ik zie geen problemen met spanningsvallen etc. Misschien iemand anders wel?

belangrijk is dat Q10 nog naar de grond kan trekken, met de extra last van 1kOhm, maar dat kan geen probleem zijn. desnoods basissturing iets aanpassen mocht het op het randje zitten.

@deKees

Je tweede schema spreekt me wel aan. Ga ik bewaren. Alleen wat ik niet in mijn OP schreef is dat ik het geschikt wilde houden voor 4 aderige motoren. Vandaar dat ik in mijn nu werkend ontwerp met drie relays werkte, zodat ik vrij ben in de motor keuze. Ook voor andere gebruiksmogelijkheden zoals boven genoemd.

Voor de 74HC139 heb ik een ontwerp, maar de pcb boer heeft deze wel en niet in voorraad. Als ik 1000+ afneem wel maar bv 30stuks weer niet.

Zag dat dit vaak voorkwam bij de 74 serie. De 40xxx viel wel weer mee, vandaar de transistor versie.

Wat bedoel je met niet snappen? Dan kan ik kijken wat ik vout doe, ter lering (voor mij) en ter vermaak ( voor jullie). Graag dus de fouten in het schema aanhalen.

Terzijde - Tot nu, als het werkt, lijkt me wat kris geschreven heeft het makkelijkst.
@kris bedankt voor je reactie.
Zal straks verder kijken. Ben nu in het bos effe wakker worden .

nu ik wat meer wakker ben : even je bijgeplaatste diodes omkeren :-)

Wat bedoel je met niet snappen? Dan kan ik kijken wat ik fout doe

Ik bedoel niet dat het fout is (niet gechecked), maar wel dat je niet in één oogopslag ziet wat er precies gebeurt.

En met een CD4085 kom je er ook wel.

Op 5 december 2021 12:32:59 schreef Lord Anubis:
Je tweede schema spreekt me wel aan. Ga ik bewaren. Alleen wat ik niet in mijn OP schreef is dat ik het geschikt wilde houden voor 4 aderige motoren. Vandaar dat ik in mijn nu werkend ontwerp met drie relays werkte, zodat ik vrij ben in de motor keuze. Ook voor andere gebruiksmogelijkheden zoals boven genoemd.

Als je relais gebruik, dan moet je er voor zorgen dat de bekrachtigingsstroom van het ene relais door een verbreekcontact van het andere relais loopt. Dan kan nooit twee relais tegelijk aangetrokken worden.
Soms kan je er aan ontsnappen door de motorstroom handig door twee relais te laten lopen. Zie oa mijn eerste voorbeeld en voorbeeld van deKees.
In jouw schema en de aangepaste schema nav opmerkingen van kris van damme zie ik die onderlinge vergrendeling van relais niet zitten. Dat kan fout gaan als in die electronica ergens een transistortje oid sneuvelt.

En als het met transistors moet, dan kan het ook zo:

Oops, dat werkt niet. Te snel.

Zo dan:

Of zo:

Dat is geen beveiliging.
Als T2 stuk is en daardoor IC1 of SLA altijd aangetrokken wordt, dan kan je altijd nog T1 vrij aansturen.
Op dit niveau heb je nog geen beveiliging nodig. Dat heb je pas nodig bij het laatste relais die de motor inschakelt en/of omschakelt.
Gebruik je solidstate relais om de motor aan te sturen, dan wordt de beveiliging tegen foute aansturing een stuk moeilijker.

[Bericht gewijzigd door ohm pi op zondag 5 december 2021 15:47:06 (50%)

benleentje

Golden Member

Dat is geen beveiliging.
Als T2 stuk is en daardoor IC1 of SLA altijd aangetrokken wordt, dan kan je altijd nog T1 vrij aansturen.

100% beveiliging haal je toch bijna nooit.

Hoe groot is al de kans dat de software beide tegelijk aanstuurt.
Hoe groot is de kans dat T2 defect gaat.
Hoe erg is het als beide relais wel tegelijk aangaan en zo de zekering eruit knalt.
Hoe erg is het als de motor niet meer aangestuurd word.

Je kan het wel oldskool vinden maar ik vind de beveiliging direct in de relais nog de beste beveiliging.

Om te voorkomen dat een een defecte T2 of T1 werk dit scheme volgens mij juist perfect. Als T1 defect is en b`lijft geleiden kan T2 niet inschakelen. Uiteraard moeten de weerstanden dan wel zo groot zijn dat de stroom uit de uitgangen niet te groot word.
https://www.circuitsonline.net/forum/file/77437/forum-post

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.

Op 5 december 2021 19:35:07 schreef benleentje:
[...]100% beveiliging haal je toch bijna nooit.

Om te voorkomen dat een een defecte T2 of T1 werk dit scheme volgens mij juist perfect.

dit schema werkt voor geen meter.

Dat schreef deKees ook al.
En benleentje is het met me eens dat je de beveiliging direct in de (laatste) relais moet doen.
Is ook logisch. Hoe meer rommel achter de laatste beveiliging, des te meer kansen op falen van die beveiliging.

benleentje

Golden Member

Op 5 december 2021 20:31:34 schreef kris van damme:
[...]

dit schema werkt voor geen meter.

Ja nu zie ik het ook.

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.
benleentje

Golden Member

En benleentje is het met me eens dat je de beveiliging direct in de (laatste) relais moet doen.

Ja maar ik zei ook dat het wellicht old skool is. Maar in moderne machines zie ik ook de belangrijkste beveiligingen nog steeds met relais gebeuren, die heten ook veiligheidsrelais en hebben vaak 2 kanalen. Ik beide kanalen moeten dan een serie keten van meerdere relais contacten allemaal ingeschakeld zijn voordat het veiligheidsrelais vrijgave geeft. In dit geval gaat het dan een laser van 3kW, dus voor een ac motor erg overkill.

Vandaar ik ook aan gaf wat probeer je te beveiligen, hoe erg is het als de motor niet werkt omdat de zekering eruit ligt door een oorzaak met kans zeg kleiner dan 1% of een kans kleiner dan 0,01%.

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.

Op 5 december 2021 20:52:40 schreef ohm pi:

En benleentje is het met me eens dat je de beveiliging direct in de (laatste) relais moet doen.

Ja, mee eens, alleen is dat geen beveiliging zoals jullie het opvatten, beveiliging tegen menselijk leed. Hier is heteerder een beveilinging tegen riPi error. Gaat alles fout, dan gaat de zekering er gewoon uit..

overigens is het niet ongewoon dit soort beveiling met enkele transistoren en diodes te doen ipv logische chips etc. Het is snel en transparant.

Een modeltreinbaan is minder kritisch dan een 3kW-laser die per ongeluk in je oog kan schijnen. In het eerste geval kan je toe met wat transistoren en dioden in je schakeling. In het tweede geval dien je het geheel toch wat zorgvuldiger te ontwerpen.