Met 1 pin drukknop en led hoe op te lossen

hallo allemaal,

Heeft iemand een idee hoe dit op te lossen is.
Ik heb een schakel tableau van de spoorwegen en en hiermee zijn wissels te schakelen.

Dit wil ik in zijn geheel met een arduino mega of 2 gaan aansturen.

Nu is het geheel in blokjes opgebouwd en heeft ieder blokje een aantal aansluitingen.

Bij een wissel aan stuur blokje heb ik het volgende probleem.
Dit blokje heeft een 2 tal drukknoppen en een 2 tal lampjes (dient om de wissel op te zetten en de huidige stand van de wissel weer te geven)

Nu het probleem het blokje heeft maar 3 aansluitingen, een massa, en 2 aansluitingen die naar de wissel magneten gaan en aan de wissel zit dan weer de midden aansluiting aan de +

Is er een mogelijkheid zowel de led de status te laten aangeven en de schakelaar ook kan worden uitgelezen met de arduino?

Ik heb het niet kunnen vinden, ben benieuwd of hier iemand een creatieve oplossing weet zonder dat ik de blokjes moet gaan verbouwen.

PS de schakelaars staan parallel over de lampjes.
Groetjes adriaan

klinkt alsof je relais moet aansturen. GOogle Arduino relais en kijk dan naar afbeeldingen.

vergeet niet een diode over de "wissel" te zetten.

Hoi Rob,

Het is geen relay maar een wissel motor voor de modeltrein baan.

met een drukknop bekrachtig je een magneetspoel, er zitten 2 magneetspoelen in de wissel.

groetjes adriaan

Aha, je bedoelt met een korte druk op knop 1 zet de wissel in de ene stand, en een korte druk op knop 2 zet hem in de andere stand.

Dan zou het aansluitschema nog steeds op een relais lijken. Echter je moet het niet als een relais aansturen, maar slechts een korte puls.

void setWissel(int pin1, int pin2, int stand) // stand = 0 of 1
{
  if (stand == 0) 
  {
    digitalWrite(pin1, HIGH);
    delay(100);
    digitalWrite(pin1, LOW);
  }
  else
  {
    digitalWrite(pin2, HIGH);
    delay(100);
    digitalWrite(pin2, LOW);
  }
}

Daar kun je natuurlijk en mooiere Wissel class van maken.

Hoi Rob,

dat klopt wel en de code is bekend, maar dat is niet het probleem.

het probleem is de led/lampje die de terugmelding van de stand van de wissel geeft.

zie bijlage voor schema tekening van het interne van het blokje.

gr adriaan

2015-05-10 21-40-10.387.jpg

In de wissel zitten nog twee eindafschakelaars die zorgen dat er een ledje gaat branden.
even uitleggen.
je drukt op een knopje1 dan gaat de spoel aan, en wordt de stroom uitgezet door de wissel.
die led in dat knopje gaat uit, maar de leds zitten onderling verwisseld. hihi dus je drukt op een knopje dan gaat de stroom uit maar in de andere gaat deze juist aan, en dus gaat ledje branden.
de spanning zal ongeveer 12 Volt moeten zijn om het ledje aan te laten gaan (er zit een weerstandje bij het ledje.

voor de ledjes zul je dus een optocoupler in de + lijn moeten zetten of een andere oplossing met bijvoorbeeld een driver of een transistor. dat komt vooral door de ledjes, die meoeten een + zien.
Nu de detectie van de drukknop, er wordt dan direct naar aarde geschakeld.
dat kan door met een optocoupler die over de led staat met een serieweerstand van 1kiloohm te kijken, je zet heel even de led aan, als optocoupler aan is dan is schakelaar open, anders wordt de optocoupler kortgesloten door de schakelaar.

Hallo Shooter,

interessant idee, tekstueel kan ik je idee niet helemaal omzetten in een schema.

bestaat de mogelijkheid dat je een schema tekent en deze hier post, dan heb ik een idee waar je naar toe wilt.

wat er in het blokje zit wil ik eigenlijk niet aan tornen, dus alles zou buiten het blokje moeten plaats vinden.

blokje heeft dus maar 3 aansluitingen.

ik ben benieuwd.

Groetjes adriaan

Hoi.

Wanneer je inschakelt en nog niets bediend hebt, brand er dan al een lampje ?
En is dat altijd hetzelfde,of is dat degene die je het laatst geactiveerd hebt ?

Je kunt het lampje, schakleaar en de spoel op dezelfde draad aansluiten, zeer zeker als het lampje een LED is.
Die LED heeft er dan een weerstand voor zitten zodat de stroom door de LED niet te hoog word, want anders gaat ie kapot.
Als je dan de plus op de spoel zet, en de min op het LEDje (heb je zelf aangegeven), dan gaat er stroom door de spoel, de LED en diens weerstand.
Maar die weerstand beperkt de stroom (de spoel doet daar ook een heel klein beetje aan mee, want het blijft een verbruiker).
Het LEDje gaat dan aan, maar omdat de stroom teveel beperkt word, gaat de spoel niet aantrekken.
Wanneer je dan een schakelaar over de LED en de weerstand heen zet, en die indrukt, dan gaat de LED tijdens het indrukken uit, maar de spoel gaat wel aantrekken.
Na het loslaten van de druktoets gaat de LED dan weer aan, en de spoel trekt niet langer aan.
In geval van zo’n wissel zou het kunnen zijn dat dat zo ontworpen is en dat er alleen iets aangetrokken moet worden als de wissel omgezet moet worden (dus tijdens het fysieke bewegen).

Maar op die manier krijg je dus twee lampjes die altijd branden.
Dat is niet zo als, zoals shooter aangaf de LEDs bij de andere schakelaar zitten, en de schakelaar ingedrukt blijft na de eerste keer drukken.
In dat geval moet er weer een mechanische verbinding zitten tussen de schakelaars, die schakelaar A uitschakelt als schakelaar B word ingedrukt en vice versa.

Met de Arduino alleen kun je wat ik boven beschreef niet nabootsen.
Voor het laten aantrekken van de spoel heb je sowieso een transistor (+ weerstand + diode) nodig.
Die transistor’s Collector sluit je dan aan op de draad voor spoel A of B (je hebt dus 2 transistor setjes nodig), en de andere kant, de Emitter sluit je aan op de min.
De basis op de weerstand en de andere kant van de weerstand aan de uitgang van je Arduino.
De min moet je nog net zo goed op de bestaande aansluiting van je drukknop kastje aansluiten, anders zal het lampje niet meer branden.

Je kunt zo dan dus met 1 draadje zorgen dat een spoel word bekrachtigd, en tegelijkertijd een LED uit gaat.
Als de spoel niet word bekrachtigd, zal de LED dus branden.

Als dit niet de manier is hoe je schakeling nu werkt, moeten we meer weten over die schakeling.
Je kunt al meer te weten komen als je beschikt over een multimeter, die is in dit geval heel behulpzaam om er achter te komen hoe de vork in de steel zit, zonder die vork te slopen.

even een fritzing gemaakt.
origineel kan niet via dit forum wel via arduinoforum.nl
en uiteraard via email.

wisselsturing.zip (187 KB)

oja denk eraan dat er door de spoel van een wisselaandrijving heel makkeleijk 1 ampere loopt dus dat wordt weer een apart verhaal.

Dit plaatje kan gewoon getoond worden hoor.
Ik heb de naam (omdat die anders openbaar leesbaar zou zijn) wel even aangepast naar de betreffende forumnaam.

Ik zie in de tekening een optocoupler die aangestuurd word door de Arduino, en die de LED aan kan zetten, en de schakelaar vrijgeeft.
En ik zie een optocoupler die door de andere word aangestuurd en (naar µP ?) schijnbaar aan de Arduino terugmeldt dat ie zojuist de andere heeft geschakeld.
En dat maal twee.

Ik vermoed dat de 1 K weerstanden R4 en R6 eigenlijk meer bedoeld zijn om de spoel weer te geven, en dus geen echte weerstanden moeten zijn.

Volgens mij onderbreken U1 en U2 (telkens de eerste optocoupler) op die plaats het functioneren van de originele schakelaars en moeten beide bediend worden om de wissel om te zetten.
En nu raak ik de weg even kwijt of dat wel de bedoeling was.
Kan carfreak nog eens uit de doeken doen wat ook weer de bedoeling was ?

In het eerste bericht is een fotootje toegevoegd van de wissel, die foto had ik gemist.
Op de foto staat het typenummer, en aan de hand daarvan is het ding dus terug te vinden.
Dan is het een kwestie van even zoeken om foto's van het interne van het ding te vinden.
Daarop is te zien dat er inderdaad een schakelaar in zit die ervoor zorgt dat de spoel niet te lang bekrachtigd word.
Er is ook te zien dat de spoelen eigenlijk 1 spoel met middenaftakking is.
Die constructie houdt zeer waarschijnlijk wel in dat je maar een vrij kort pulsje moet geven, en niet de volle stroom continu door die spoel moet jagen.

De lampjes zijn dus wel waarschijnlijk tegenovergesteld aangesloten zoals shooter al meldde.

als je de bovenste aanzet dan gaat de led aan. simpel klaar.
als de schakelaar dicht staat en de bovenste aan dan zal de onderste niet aan zijn.
De bovenste moet heel even aan om te detecteren of de onderste aan/uit is. Bij aan dan is schakelaar open, en bij uit is de schakelaar dicht.
dit kan in zeer korte tijd, en dus zal de led niet te zien zijn.

En Mas3 je hebt gelijk maar dat gaat over de wissel zelf en niet over dat stuurblokje, dat is een onderdeel van een soort tableau waar je verkleind je sporenplan in kan maken.

carfreak: Je hebt dus 2 ingangen en 2 uitgangen nodig per blokje.
dat is natuurlijk wat veel, dus een matrix lijkt mij een logische volgende stap.
de weerstanden zitten of bij de led ingebouwd (want anders maakt 16 Volt ze kapot, en de bovenste zijn er om de stroom te beperken als de schakelaar dicht staat.

Het is maar een snelle oplossing hoor, er zijn slimmere te bedenken, maar dan heb je externe elektronica zoals een flipflop nodig.

Hallo Shooter en Mas3,

ik zie goede ideeën voorbijkomen, hierbij nog even een volledige uitleg wat ik wil gaan doen.

Het blokje is oorspronkelijk bedacht voor het direct aansturen van wisselmotor spoelen op 16Volt AC.
in het blokje zit een gloeilampje.

Waar ik naar toe wil:

De lampjes worden vervangen door Led's ( dit ivm stroomverbruik en aansturing door Arduino 5 volt )

De Arduino moet dus de leds sturen en de terugverende drukschakelaars lezen.
De arduino stuurt dan mijn wissels aan over Loconet ( door een uitgang hoog of laag te maken stuurt deze een zelf ontworpen servobediening aan die dan weer de wisseltong in de betreffende stand beweegt.)
Op deze Servobediening zit een dubbelpolig relay die dan zowel het puntstuk van de wissel polariseert als de terugmelding doet van de wisselstand weer naar loconet. ( dit om ervoor te zorgen dat als de wissel handmatig wordt omgezet de stand van de wissel ook weer wordt teruggemeld op het paneel )

Ik had het eerst niet zo complex willen omschrijven voor de eenvoud van van het geheel.

Nu de werking van het blokje in originele configuratie met de spoelen en direct aangesloten op de wissel met 16 volt AC:

Als de voeding wordt ingeschakeld zal er altijd 1 lampje branden, en wel het lampje die de stand van de wissel aangeeft.
Het lampje is in het blokje zo opgenomen dat deze kruislings wordt weergegeven.
Dus als je de bijlage bij de eerste Post bekijkt is bij het gele knopje het onderste lampje een "setje" en het groene knopje het bovenste lampje een "setje" bovenste drukknopje staat parallel over het onderste lampje, en vv.

Als men nu de wissel wil omzetten drukt men dus eigenlijk het drukknopje die over het brandende lampje zit ( kortsluit het lampje ) ( wisselspoel wordt bekrachtigd tot eindafschakeling en het andere lampje krijgt weer spanning via de Spoel )

De gewenste werking met arduino is dus gelijk aan bovenstaande alleen dan arduino gestuurd en de lampjes zijn vervangen door led's

Misschien dat deze uitleg iets meer beeld geeft.

Naar mijn idee gaat de schakeling van shooter wel werken.( alleen aanpassen naar 5 volt gebruik.
ps de lampjes worden vervangen door led's als het kan zonder weerstand in het blokje daar er geen ruimte voor is in het blokje.

ik hoor het graag weer,

Groetjes Carfreak

Tja als je toch in de blokjes gaat rommelen, dan inderdaad de lampjes vervangen, alhoewel
hoeft niet echt hoor.
maar lampjes zijn niet richtinggevoelig dus die kun je aansluiten hoe je wilt.

dan kun je de schakeling ook omdraaien en heb je geen optocouplers etc nodig.
dan gaat het ook met een ULN2003 of zo.
laat de blokjes maar eerst eens even heel, ik zal eens denken.

zo als het lampjes zijn dan kan het ook op deze manier.
probleem is dat er met 16 Volt gewerkt wordt.

als je de lampjes vervangt door ledjes dan heb je nog maar 5 Volt nodig en worden de stromen ook een stuk kleiner.
is wel een flink gepriegel. dan zou ik trouwens voor rood/groene kiezen dan kun je nog beter zien of de wissel goed staat. dus als deze beweegt dan worden beide ledjes geel.

Uiteraard is het ook goed te doen met losse componenten en zelf de blokjes maken, maar ja dat is te simpel denken.

wisselsturingVersie2.zip (213 KB)

wisselsturingVersie2_schem.pdf (334 KB)

Hallo Shooter,

in het vorige bericht had ik al aangegeven dat alles naar 5 volt wordt gebracht en de wisselspoelen niet meer van toepassing zijn ( dit worden servo's die door een eigen ontworpen schakeling worden bediend)

Alles wordt dus 5 volt en met led's

groetjes adriaan

met leds is het inderdaad een stuk simpeler.

wissel.ino (287 Bytes)

foutje bedankt.

wissel.zip (5.78 KB)

de servos zijn ook prima te sturen met een arduino hoor, dan heb je geen apart ding nodig.