BeneluxSpoor.net forum
Vraag en antwoord => Elektronica en analoog => Topic gestart door: MMTB op 04 May 2010, 11:55:23
-
Goedenmiddag,
Voor mijn trambaan wil ik werkende Duitse tramseinen gaan plaatsen. Het seinstelsel werkt grotendeels met het Nederlandse stoplichtstelsel en is daardoor niet rechtstreeks aanstuurbaar door Koploper. Het enige wat ik wil is dat het sein even op groen springt en na 10 seconden op oranje en dan terug naar permanent rood. Het is in feite niet meer dan een looplicht wat je activeert met een logische actie in koploper. Nu heb ik al nagevraagd of het mogelijk was met een OM32, maar hiervoor werd geadviseerd om te wachten tot de OC32 met lichtorgelfuncties.
Nu kan het volgens mij ook simpeler door een looplichtschakeling te maken die door een schakeldecoder door Koploper wordt geactiveerd. Nu is mijn kennis op het gebied van schakelingen beperkt en ik kwam al snel uit op meerdere timers en relais per schakeling. Heeft iemand een idee hoe ik dit eenvoudig kan oplossen?
Wat moet de schakeling kunnen:
Permanent rood > groen 10 sec > oranje 2 seconden > permanent rood.
Het mooist zou zijn als je de groenfase met een potmeter nog enigszins kunt bijstellen per sein.
Alvast bedankt!
Mark
-
Nu kan het volgens mij ook simpeler door een looplichtschakeling te maken die door een schakeldecoder door Koploper wordt geactiveerd. Nu is mijn kennis op het gebied van schakelingen beperkt en ik kwam al snel uit op meerdere timers en relais per schakeling. Heeft iemand een idee hoe ik dit eenvoudig kan oplossen?
Een Velleman looplicht kitje aanschaffen bij de plaatselijke elektronica zaak?
-
Daar heb ik al naar zitten kijken, maar bij dit soort zelfbouw modules kan je niet verschillende tijden opgeven tussen de het verspringen van het lampjes. 9 van de 10 hebben een vast patroon en de ik wil graag dat de groenfase langer duurt dan de oranje fase.
Gr, Mark
-
... Permanent rood > groen 10 sec > oranje 2 seconden > permanent rood.
... ik wil graag dat de groenfase langer duurt dan de oranje fase.
Hoi Mark,
Een beetje looplicht heeft tien uitgangen. Zorg er voor dat het looplicht telkens maar één cyclus doorloopt en dan weer stopt. Koploper kan vast wel een signaal genereren wat de start van de cyclus moet markeren, en dat moet je dan aansluiten op de start van je looplicht schakeling.
Sluit 5 uitgangen via diodes aan op je groene ledje, de volgende op de gele en de rest op de rode. Stel nu de kloktijd in op 2 seconden en je hebt wat je zoekt.
Groets, Hans
-
Dank je wel hans!
Ik heb gezocht naar een schema voor een 10 kanaals looplicht en ik kwam het volgende tegen: http://www.circuitsonline.net/schakelingen/14/lichteffecten/looplicht.html (http://www.circuitsonline.net/schakelingen/14/lichteffecten/looplicht.html)
Als ik nu de verbinding van het laatste kanaal naar de reset weglaat, blijft dan het looplicht stil staan, of gaat hij dan helemaal uit? Hier zou je volgens mij iets aan kunnen hangen van een relais, zodat hij naar permanent rood schakelt. Of zit ik iets mafs te bedenken?
Groeten, Mark
-
Ik wil wel even kijken of ik een dergelijk iets in een klein micro-controllertje kan schieten, ledjes schakelen is niet zo moeilijk. Zal er zo eens naar kijken. Er zijn vast meer mensen die zoiets zoeken...
-
@ Sander306: Tams heeft van die kleine schakelingen, waar ze telkens de microcontroller vervangen en dan hebben de 5 uitgangen weer een andere functie. Het zou handig zijn als zo'n microcontroller hier in zou passen. Je heb dan tevens een functietoets als input.
http://www2.conrad.nl/goto.php?artikel=210160
Gr, Mark
-
Dat moet wel te doen zijn. Ik heb nog een aantal van die kleine pic's liggen. Ik ga het eerst eens proberen op dat microchip demo board met een 20 pins monster, als dat werkt moet het te doen zijn de code zo om te bouwen dat het werkt in een kleinere versie.
Nu eens kijken of ik de datasheets van dat tams ding kan vinden...
gr,
Sander
-
... Als ik nu de verbinding van het laatste kanaal naar de reset weglaat, blijft dan het looplicht stil staan, of gaat hij dan helemaal uit? Hier zou je volgens mij iets aan kunnen hangen van een relais, zodat hij naar permanent rood schakelt. Of zit ik iets mafs te bedenken?
Hoi Mark,
Ik weet het niet precies meer, maar hij blijft dan bij de eerste of de laatste pen hangen. Als je daar dus in ieder geval rood op zet (plus op de resterende pennen waar geen groen of geel aan hangt), dan hoef je zelfs niks met relais te doen.
Groets, Hans
-
Wat dacht je hier van? In een pic12f675, past dus in een tams-licht-print.
http://www.youtube.com/watch?v=oYsU8xjZ3Nk
/*
Project: Tramlicht
Datum: 4-mei-2010
Programmeur: Sander Brugmans
Aanpassingen: Geen
*/
#include <pic.h>
__CONFIG(UNPROTECT & BORDIS & MCLRDIS & PWRTEN & WDTDIS & INTIO);
void delay(long i){
while(i--);
}
void main(void){
GPIO = 0x08;
TRISIO = 0x08;
ANSEL = 0x00;
char puls = 0;
while (1){
if (GPIO3 == 1){
delay(1000);
if (GPIO3 == 1)
puls++;
}
if (puls == 0)
GPIO = 0x01;
else{
GPIO = 0x04;
delay(150000);
GPIO = 0x02;
delay(40000);
GPIO = 0x01;
puls = 0;
}
}
}
-
Hallo Sander,
Dat is precies wat ik zoek! (y)
Ik neem aan dat het looplicht één loop maakt als je de functieuitgang van een puls voorziet? Als ik zo het filmpje bekijk gaat de geelfase wel erg snel. Zou je deze tijd kunnen verdubbelen?
Groeten, Mark
-
Mark,
Als je naar de code van Sander kijkt, dan lijkt me dat je de geelfase eenvoudig kunt verlengen door de waarde tussen haakjes achter delay te verhogen (in het onderste stukje code).
Groeten, Marcel
-
Marcel,
Volgens mij geeft deze schakeling het nederlandse stoplicht weer. Er wordt gezocht naar een duitse variant. Dus iets meer aanpassen.
Groeten,
Gerard van der Sel
-
Als je naar de code van Sander kijkt, dan lijkt me dat je de geelfase eenvoudig kunt verlengen door de waarde tussen haakjes achter delay te verhogen (in het onderste stukje code).
Groeten, Marcel
Daar zat ik later ook aan te denken, alleen kan ik zelf geen pics programmeren.
@ Gerard: Het tramlicht moet ook het nederlandse stoplichtstelsel hebben en daardoor is het verlengen van de delay voldoende.
Groeten, Mark
-
http://www.youtube.com/watch?v=SxAbVczb0KE
Dit beter?
Aanpassen kan inderdaad door de waarde achter de delay te verhogen. In de nieuwe versie is nog het een en ander aangepast, zo blijft hij groen als de input "1" blijft nadat de tijd verstreken is.
/*
Project: Tramlicht
Datum: 4-mei-2010
Programmeur: Sander Brugmans
*/
#include <pic.h>
__CONFIG(UNPROTECT & BORDIS & MCLRDIS & PWRTEN & WDTDIS & INTIO);
void delay(long i){
while(i--);
}
void main(void){
GPIO = 0x00; // Poort A = laag
TRISIO = 0x08; // A0, 1, 2, 4 & 5 zijn output, A3 is input
ANSEL = 0x00; // Geen analoog in
char puls = 0;
while (1){
if (GPIO3 == 1){ // Beetje debounce
delay(1000);
if (GPIO3 == 1)
puls++;
}
if (puls == 0)
GPIO = 0x01; // Rode LED
else{
GPIO = 0x04; // Groene LED
delay(250000); // Vertraging
while(GPIO3 == 1); // Zolang er op port RA3 een 1 wordt aangeboden blijft het groen
GPIO = 0x02; // Gele/oranje LED
delay(80000); // Vertraging
GPIO = 0x01; // Rode LED
puls = 0; // Clear puls
}
}
}
Als er nog iemand een duitse versie wil hoor ik het wel.
-
Hallo Sander,
Dank je wel! Zo is het precies wat ik mijn gedachte had.
Is het mogelijk dat je een aantal microcontrolers kan programeren die ik in mijn tams bouwsetjes kan zetten? (Tegen betaling uiteraard)
Alvast bedankt!
Mark
-
Ik heb er nu 3 liggen, die kunnen morgen nog op de bus. Als je er meer nodig hebt moet ik die even bestellen (bij Dick Best, €1,58).
-
Als je er in totaal 10 kan programeren, dan kan ik weer heel wat jaren voorruit. Ik stuur je wel even een PM.
Groeten, Mark
-
Nog even het een en ander aangepast en dit is het uiteindelijke resultaat:
http://www.youtube.com/watch?v=sUbOI65EDFQ
/*
Project: Tramsein
Datum: 10-mei-2010
Programmeur: Sander Brugmans
GPIO0 = TAMS_JP3.1 = rode LED
GPIO1 = TAMS_JP3.2 = gele LED
GPIO2 = TAMS_JP3.3 = groene LED
GPIO3 = TAMS_JP2 = input
GPIO4 = TAMS_JP3.4 = rode LED overweg
GPIO5 = TAMS_JP3.5 = rode LED overweg
*/
#include <pic.h>
__CONFIG(UNPROTECT & BORDIS & MCLRDIS & PWRTEN & WDTDIS & INTIO); // Basis instellingen
char puls, pulsrt = 0;
char sec2 = 0;
char sec1 = 0;
char overweg = 0;
char r, o, g, ow0, ow1 = 0;
char tmr1count = 0;
char tmr0count = 0;
//-----------------------------------------------------------------------------------------------------
// Delay
void delay(long i){
while(i--);
}
//-----------------------------------------------------------------------------------------------------
// Interrupts
void interrupt vector(void){
if (T0IF == 1){
T0IF = 0;
tmr0count++;
if (tmr0count == 15){
tmr0count = 0;
sec1 = !sec1;
}
TMR0 = 0x00;
}
if (TMR1IF == 1){
TMR1IF = 0;
tmr1count++;
if (tmr1count == 4){
sec2 = 1;
GIE = 0;
PEIE = 0;
PIE1 = 0;
T1CON = 0b00110100;
tmr1count = 0;
}
else
TMR1H = 0x0B; // timer 1 (0,5sec) laden)
TMR1L = 0xDB;
GIE = 1;
PEIE = 1;
PIE1 = 1;
T1CON = 0b00110101;
}
}
//-----------------------------------------------------------------------------------------------------
// Main
void main(void){
GPIO = 0x00; // Poort A = laag
TRISIO = 0x08; // A0, 1, 2, 4 & 5 zijn output, A3 is input
ANSEL = 0x00; // Geen analoog in
r = 1; // Rode LED is aan
TMR0 = 0x00;
OPTION = 0b11000111;
T0IE = 1;
while (1){
GPIO0 = r;
GPIO1 = o;
GPIO2 = g;
GPIO4 = ow0;
GPIO5 = ow1;
puls = 0;
if (GPIO3 == 1){ // Beetje debounce
delay(2000);
if (GPIO3 == 1)
puls = 1;
}
pulsrt = GPIO3;
if (puls && r){
r = 0; // Rode LED is uit
g = 1; // Groene LED is aan
sec2 = 0; // 2 seconde flag naar 0
overweg =1;
TMR1H = 0x0B; // timer 1 (0,5sec) laden)
TMR1L = 0xDB;
GIE = 1;
PEIE = 1;
PIE1 = 1;
T1CON = 0b00110101;
}
if (sec2 && g && !pulsrt){
g = 0; // Groene LED is uit
o = 1; // Oranje LED is aan
sec2 = 0; // 2 seconde flag naar 0
TMR1H = 0x0B; // timer 1 (0,5sec) laden)
TMR1L = 0xDB;
GIE = 1;
PEIE = 1;
PIE1 = 1;
T1CON = 0b00110101;
}
if (sec2 && o){
o = 0; // Oranje LED is uit
r = 1; // Rode LED is aan
sec2 = 0; // 2 seconde flag naar 0
overweg = 0;
}
if (overweg && sec1){
ow0 = 1;
ow1 = 0;
}
if (overweg && !sec1){
ow0 = 0;
ow1 = 1;
}
if (!overweg){
ow0 = 0;
ow1 = 0;
}
if (pulsrt)
tmr1count = 0;
}
}
-
Sander ik denk dat MMTB er 1010 wil hebben (y)
-
Hoi Sander,
Ik heb gisteren mijn eerste (proef) tramsein binnen gekregen, dus dat komt mooi uit.
http://www.modellbahnwerk.de/shop/Verkehrsampeln-in-H0/Bus-Srassenbahnampel.html
Ik heb het filmpje en de code bekeken en het ziet er super uit! De knipperlichten gaan mooi langzaam aan en uit, alleen zou je de oranjefase met 1 seconden willen verlengen? Dat is hij helemaal af. Ik zal bij Conrad de benodige Tams printjes gaan bestellen.
Heel erg bedankt!!
Groeten, Mark
-
...alleen zou je de oranjefase met 1 seconden willen verlengen?
De oranjefase, dat is toch Koninginnedag? ;D
Bij verkeerslichten heet die kleur geel, net als bij spoorseinen.
De meest gebruikelijke lengte voor de geelfase bij verkeerslichten is 2 seconden.
-
Ik verwar het altijd met oranje, maar geel is natuurlijk de juiste benaming. Ik vond de 2 seconden in het filmpje net te kort, vandaar mijn wens van 3 seconden. Het tramsein zelf werkt met symbolen in plaats van kleuren, maar de opzet is gelijk aan een nederlands stoplicht. (zie link in mijn vorige post)
Groeten, Mark
-
De oranjefase, dat is toch Koninginnedag? ;D
Bij verkeerslichten heet die kleur geel, net als bij spoorseinen.
De meest gebruikelijke lengte voor de geelfase bij verkeerslichten is 2 seconden.
Klaas,
Dan gaan we toch even mierenn*uken, officieel wordt de kleur aangeduid met amber.
Gr,
Bart
-
Merkwaardig dat er steeds weer mensen opduiken met desinformatie.
Ik heb 10 jaar lang onderhoud gedaan aan verkeersinstallaties. In die tijd veel handleidingen gezien en vakliteratuur gelezen.
De benaming amber ben ik alleen tegengekomen in Engelstalige geschriften. In het Nederlands werd altijd zonder uitzondering de benaming geel gebruikt. Ook de verkeersdeskundige in wiens opdracht ik werkte bevestigde dat geel de enig juiste benaming is voor die kleur.