Ontwerp circuit terugkoppeling geschakeld relais 1.1-3V -> 0-3V

Beste allen,

Ik ben een software man die wat eerste stappen maakt in hardware elektronica. Voor ontwerp van een schakeling voor mijn huidige projectje heb ik reeds gezocht, ook op dit forum - wellicht niet met de juiste zoektermen - maar niet gevonden. Daarom zou ik graag jullie hulp inschakelen.

Voor het openen/sluiten van een gordijn wordt een motor aangestuurd waarvan ik de voeding wil onderbreken op het moment dat de uitersten (gordijn geheel geopend / geheel gesloten) bereikt worden.
De aansturing gaat met een Raspberry Pi, maar om niet afhankelijk te zijn van de software bij het voorkomen van overbelasting van motor en constructie bij te ver open/dicht, heb ik gekozen voor een hardware-matige beperking door op de uitersten een reed-switch te plaatsen die geschakeld wordt middels een magneet op het gordijn.
Wel wil ik graag terugkoppeling van het bereiken van een uiterste positie, ter bevestiging, naar de Pi. Om dat te bewerkstelligen, heb ik de volgende schakeling bedacht:
http://tinyurl.com/y5kze8kr

Twee 5V relais (vooruit-stop en achteruit-stop) worden actief zodra hun bijbehorende reed-switch sluit doordat daarmee een transistor op 3.3V schakelt. Wanneer beide schakelaars open zijn (gordijn bevindt zich tussen de uitstersten), staat voor de schakelaars 3V ('hoog' op GPIO-in) en wanneer één van de schakelaars sluit, wordt die spanning omlaaggetrokken doordat het via een transistor (deels) naar ground gaat. In plaats van geheel naar 0, blijft er echter een spanning staan van, in de simulatie 0.7, in mijn proefopstelling 1.1 volt, wat te hoog is om als 'laag' op GPIO-in te registreren.
Hoe krijg ik deze {1.1; 3} naar {0; 3} volt?

Alvast bedankt!

Ha gjdv,

Ik heb even snel naar die simulatie gekeken ziet er indrukwekkend uit.... maar daar wordt ik een beetje duizelig van maakt niet uit.
Je kan een klein weerstandje op de basis naar aarde aanbrengen zeg 47 Ω .

Groet,
Henk.

Everything should be as simple as possible, but not simpler.

Dankjewel Henk, voor je reactie.

Wellicht is de volgende tekening iets minder duizelingwekkend :)

Ik heb rode labels (A1/A2 na de reed-switch, B ervoor en C de 3.3V) toegevoegd waarvanaf een weerstand naar aarde mogelijk zou zijn.
Ik neem aan dat je met basis, de basis van de transistor bedoelt (dus A1 / A2).
Het effect van plaatsing van een 47 Ohm weerstand tussen A1/A2 en aarde lijkt te zijn: GPIO-in wordt inderdaad bijna 0V bij gesloten schakelaar (en blijft 3V bij open schakelaar), maar de stroom loopt niet meer via de transistor maar via de weerstand naar aarde en relais schakelt niet meer. Dit ook gecheckt in mijn proefopstelling (had geen 47 maar wel 68 Ohm weerstand liggen).

Plaatsing tussen aarde en B dan wel C maakt heel de schakeling ineffectief, dus dat zal je niet bedoeld hebben.

Maar, misschien heb ik je suggestie niet goed begrepen?

Groet,

Gert-Jan

Lambiek

Special Member

Je zou zoiets toe kunnen passen, dan kun je het toerental ook nog regelen.

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 1 augustus 2020 16:12:56 schreef Lambiek:
Je zou zoiets toe kunnen passen, dan kun je het toerental ook nog regelen.

[bijlage]

Dat is voor de aansturende kant om de motor een x-tijd vooruit of achteruit te laten draaien. Dat heb ik reeds voor elkaar en levert het signaal dat ik wil onderbreken met de relais uit het getekende schema en waarvan ik de terugkoppeling op een GPIO-in zou willen.

Lambiek

Special Member

Je kunt toch twee eindschakelaars plaatsen en in de motor bedrading opnemen, met een diode erover om het gordijn weer van zijn plek te krijgen. Heb je ook geen terugkoppeling nodig.

EDIT:

Zo dus. Even niet naar het linker gedeelte kijken.

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 1 augustus 2020 16:29:15 schreef Lambiek:
Je kunt toch twee eindschakelaars plaatsen en in de motor bedrading opnemen, met een diode erover om het gordijn weer van zijn plek te krijgen. Heb je ook geen terugkoppeling nodig.

EDIT:

Zo dus. Even niet naar het linker gedeelte kijken.

[bijlage]

Bedankt voor je suggestie en uitwerking.
Klopt, technisch gezien is de terugkoppeling niet nodig en behoudens dat werkt mijn aansturing ook zoals ik wil. Maar toch zou ik graag die terugkoppeling willen :). Zie het als: "ik geef het systeem opdracht en wil ook weten of het uitgevoerd is". Het zou kunnen falen als bijv. een wieltje in de rails vastloopt, e.e.a. scheeftrekt, ... etc. In dat geval wil ik daar graag melding van hebben en voorkomen dat in dat geval nogmaals aansturing plaatsvindt, en om die reden wil ik dus graag die terugkoppeling.

Ook is dit voor mij een diepe duik in de wereld van elektronische circuits om weer wat nieuws te leren. Het lijkt me dat het mogelijk zou moeten zijn om met een hoog/laag signaal te kunnen schakelen én dat tegelijkertijd terug te koppelen / uit te lezen, maar mocht dat niet zo zijn, dan zou ik graag snappen waarom niet. Het is gelukkig geen quantumfysica waar de waarneming verstorend werkt ;)

mel

Golden Member

Waarom moet het altijd met software.. Een open /dicht sturing moet altijd eindschakelaars hebben , omdat je nooit een constante looptijd hebt. Een eindschakelaar is een vast punt, zodat je zeker weet dat het open, dan wel dicht is. En dat kan dus eenvoudig gemaakt worden..

u=ir betekent niet :U bent ingenieur..
Lambiek

Special Member

Op 1 augustus 2020 16:58:43 schreef gjdv:
Zie het als: "ik geef het systeem opdracht en wil ook weten of het uitgevoerd is". Het zou kunnen falen als bijv. een wieltje in de rails vastloopt, e.e.a. scheeftrekt, ... etc.

Dan kan het alsnog fout gaan, stel dat het halverwege vast loopt dan kan de boel dus bloedheet worden. Met alle gevolgen vandien.

Als je het echt goed wil doen dan moet je op stroom gaan regelen, als het dan halverwegen vastloopt stopt je aandrijving gewoon.

In dat geval wil ik daar graag melding van hebben en voorkomen dat in dat geval nogmaals aansturing plaatsvindt, en om die reden wil ik dus graag die terugkoppeling.

Wat maakt dat uit? Al stuur je dat ding 10X aan, open is open en dicht is dicht. Het gaat dan echt niet meer reageren op een aansturing.

Het lijkt me dat het mogelijk zou moeten zijn om met een hoog/laag signaal te kunnen schakelen én dat tegelijkertijd terug te koppelen / uit te lezen, maar mocht dat niet zo zijn, dan zou ik graag snappen waarom niet.

Alles is mogelijk, maar heeft het ook zin. :) Met wat extra bedrading kun je een terugkoppeling maken, maar dan nog als het vastloopt heb je niets aan die terugkoppeling.

Als je haar maar goed zit, GROETEN LAMBIEK.

Ha gjdv,

Dat is beter leesbaar ik heb een praatprentje gemaakt.
De opmerking van @Lambiek is helder denk er over na aan de andere kant je weet welke kant je op stuur dus je verwacht een einde aan die kant :D
Met de getekende schakeling signaleer je of open/dicht/geen van beiden maar niet welke schakelaar gesloten is.
Als je op de GPIO 3 niveaus kan signaleren dus bijvoorbeeld 0 V, 1.5 V, 3 V dan kan het met deze schakeling ook en in dat geval weet je welke schakelaar gesloten is :P

Ontwerpje eindschakelaar signalering

Groet,
Henk.

Everything should be as simple as possible, but not simpler.

Dank voor jullie reacties.

Op 1 augustus 2020 17:18:19 schreef Lambiek:
Als je het echt goed wil doen dan moet je op stroom gaan regelen, als het dan halverwegen vastloopt stopt je aandrijving gewoon.

Mee eens, dat zou de ultieme oplossing zijn, maar een beetje té hoog gegrepen voor mijn huidige kennis.

Dan kan het alsnog fout gaan, stel dat het halverwege vast loopt dan kan de boel dus bloedheet worden. Met alle gevolgen vandien.
[...]
Wat maakt dat uit? Al stuur je dat ding 10X aan, open is open en dicht is dicht. Het gaat dan echt niet meer reageren op een aansturing.
[...]
Alles is mogelijk, maar heeft het ook zin. :) Met wat extra bedrading kun je een terugkoppeling maken, maar dan nog als het vastloopt heb je niets aan die terugkoppeling.

Ben ik deels met je eens. Wellicht had ik iets meer achtergrond moeten schetsen omtrent de toepassing en reeds aanwezige mechanismen. Het betreft een zonnegordijn dat over horizontaal gespannen draden getrokken wordt met een touw dat over katrollen loopt. In dit touw zit een lus waarbij trekken aan de linker/rechter kant zorgt voor open/dicht gaan van het gordijn. Dit touw laat ik met een bepaald aantal windingen om een pvc buis (32mm doorsnee) lopen zodat er voldoende grip is tussen pvc-buis en touw om te trekken, maar zal bij te grote uitgeoefende kracht (mocht het gordijn blijven steken) het touw slippen t.o.v. de pvc-buis. De pvc buis zit op een stuk draadeind dat als centrale as dient en aan de as van de motor gekoppeld zit.
Om te voorkomen dat de schakeling alsnog uit alle macht probeert een eindpunt te bereiken (terwijl er halverwege een blokkade is), wordt de schakeling (vanuit software) een x-aantal seconden aangestuurd voor openen/sluiten waarbij x net iets groter is dan typisch nodig is om te openen/sluiten. De eindschakelaar zorgt dat er nooit voorbij de uiteinden getrokken wordt.
Status "geopend" staat "sluiten" toe en status "gesloten" staat "openen" toe. Het gordijn vertrekt vanuit een positie waarin 1 eindschakelaar actief is, gedurende de beweging zijn er geen eindschakelaars actief en na de actie is de andere eindschakelaar actief. Wanneer deze sequentie niet waargenomen wordt, is er iets mis en sta ik vanuit de software geen geautomatiseerde aansturing meer toe en vindt er notificatie plaats zodat gecheckt kan worden wat er aan de hand is.

Op 1 augustus 2020 21:38:34 schreef electron920:
Met de getekende schakeling signaleer je of open/dicht/geen van beiden maar niet welke schakelaar gesloten is.
Als je op de GPIO 3 niveaus kan signaleren dus bijvoorbeeld 0 V, 1.5 V, 3 V dan kan het met deze schakeling ook en in dat geval weet je welke schakelaar gesloten is :P

Ontwerpje eindschakelaar signalering [bijlage]

Groet,
Henk.

Dankjewel Henk. Eens kijken of ik snap wat er gebeurt:
Transistor T1 (en analoog T2) wordt continue voorzien van 5V en staat open zodat er stroom door het relais zou kunnen lopen als eindschakelaar S1 (S2) gesloten wordt. Wanneer deze open staat, is GPIO-in via R2 (R3) verbonden met de aarde en zal 0V registreren. Wanneer de eindschakelaar gesloten wordt, komt er 5V aan de rechterkant van R2 te staan. Samen met R1 vormt dit een spanningsdeler voor GPIO-in waarbij U_{GPIO-in} = 5.0V * R1 / (R1+R2) = 4.9V.

Ik heb de volgende vragen:
1) Als T1 continue open staat, waarvoor dient die transistor dan nog ipv het relais direct naar aarde te laten lopen?
2) Zou voor 0-3V op GPIO niet een veel kleinere weerstand R1 nodig zijn (3.0=5.0*R1/(R1+470Ω) -> R1=705Ω)?
3) Ik zie nog even niet waar die halvering precies door komt; de subcircuits voor beide relais (en R2/R3) staan niet in serie maar parallel.

Hier overigens jouw schema in simulatie: http://tinyurl.com/y58qz8kr (met run/stop rechtsboven kan de simulatie stopgezet worden voor minder visuele afleiding)

Lambiek

Special Member

Op 2 augustus 2020 09:53:54 schreef gjdv:
Wellicht had ik iets meer achtergrond moeten schetsen omtrent de toepassing en reeds aanwezige mechanismen.

Dat scheelt meestal wel ja. :)

In dit touw zit een lus waarbij trekken aan de linker/rechter kant zorgt voor open/dicht gaan van het gordijn. Dit touw laat ik met een bepaald aantal windingen om een pvc buis (32mm doorsnee) lopen zodat er voldoende grip is tussen pvc-buis en touw om te trekken, maar zal bij te grote uitgeoefende kracht (mocht het gordijn blijven steken) het touw slippen t.o.v. de pvc-buis.

En hier ga je mijns inziens al fout. Stel dat je op de ene kant van je pvc buis al iets slip hebt, dan trekt de boel al scheef. Plus dat het geheel dan al zwaarder gaat lopen.

De pvc buis zit op een stuk draadeind dat als centrale as dient en aan de as van de motor gekoppeld zit.
Om te voorkomen dat de schakeling alsnog uit alle macht probeert een eindpunt te bereiken (terwijl er halverwege een blokkade is), wordt de schakeling (vanuit software) een x-aantal seconden aangestuurd voor openen/sluiten waarbij x net iets groter is dan typisch nodig is om te openen/sluiten. De eindschakelaar zorgt dat er nooit voorbij de uiteinden getrokken wordt.

Dit is al helemaal not done, je bent met positioneren bezig en dat doe je niet op tijd. Zoiets gaat altijd fout. Plaats nu gewoon eindschakelaars en doe het niet op tijd.

Stel dat het recht blijft lopen, maar het loopt net iets zwaarder dan de vorige keer. Dan gaat je gordijn dus niet helemaal dicht of open.

Sorry dat ik zo reageer, maar ik heb ervaring met besturingen en positioneren van dingen. Ik probeer je een hoop ellende te besparen.

Ik zou het zo doen, maar ja wie ben ik.

Mee eens, dat zou de ultieme oplossing zijn, maar een beetje té hoog gegrepen voor mijn huidige kennis.

Valt reuze mee hoor, met een lage weerstand van bijv.0.01E kun je de stroom al goed meten. Je haalt het signaal naar een analoge ingang en je verwerkt het in de software. De weerstand moet wel de stroom aankunnen natuurlijk, maar meestal is een 25Watt type wel goed.

En je zou bij je profiel wat meer gegevens over je zelf in kunnen vullen, dat scheelt voor ons ook. Dan weten we een beetje met wie we te maken hebben en wat je eventueel kunt. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Ha gjdv,

Dat heb je goed die transistoren zijn ook helemaal niet nodig maar ja dan blijft er helemaal niets meer van jou idee over :+

Tekening vervanging werking eindstop

Als je een 3,3 V voeding gebruikt vervalt de spanningsdeler.
Maar dan ben je er nog niet hetgeen @Lambiek aangeeft welke motor gebruik je en is deze motor geschikt om linksom/rechtsom te draaien :?
Ook voor de eindschakelaars geldt een vertraging dus op welke positie worden deze gemonteerd.
Mijn inziens kan de signalering los van de besturing staan en geeft alleen een interrupt commando naar de controller.
Op deze manier kunnen ook de relais vervallen en wordt softwarematig de motor stil gezet.

Groet,
Henk.

Everything should be as simple as possible, but not simpler.

Op 2 augustus 2020 12:00:24 schreef electron920:
... dan blijft er helemaal niets meer van jou idee over :+

Dat maakt niet uit :). Zo wordt het een heel stuk simpeler. Voor de relais heb ik 5V nodig (ivm beperkte stroomsterkte van de 3.3V output van de Raspberry Pi) maar GPIO slikt maar 3 (vandaar dat ik dat initieel gescheiden hield), maar met een spanningsdeler moet dat ook goed komen. Bedankt voor de adviezen!

Hiermee kan ik verder testen met mijn proefopstelling en daarna de daadwerkelijk plaatsing realiseren.

Op 2 augustus 2020 10:28:42 schreef Lambiek:
[...]
Dit is al helemaal not done, je bent met positioneren bezig en dat doe je niet op tijd. Zoiets gaat altijd fout. Plaats nu gewoon eindschakelaars en doe het niet op tijd.

Ik denk dat we wat langs elkaar heen praten, want ik wil juist eindschakelaars gebruiken. Echter, met slechts eindschakelaars ben je gevoelig voor het geval er halverwege iets blokkeert omdat dan de motor door zal blijven draaien omdat de eindstop nog niet bereikt is. Om die reden maximeer ik bovenop het gebruik van eindschakelaars de tijd die de motor kan draaien.

Sorry dat ik zo reageer, maar ik heb ervaring met besturingen en positioneren van dingen. Ik probeer je een hoop ellende te besparen.

Ik zou het zo doen, maar ja wie ben ik.

Je advies wordt zeker op prijs gesteld en in overweging genomen.

mel

Golden Member

Neem eindschakelaars in combinatie met een looptijd.. Als de schakelaar er eerder is dan de looptijd timeout, is het goed.
Anders loopt er ergens iets vast , en zou er een storingsmelding moeten komen.

u=ir betekent niet :U bent ingenieur..