MODELLJERNBANEFORENINGEN I NORGE (MJF) - forum

  New Posts New Posts RSS Feed - Open collector-utfordring
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Open collector-utfordring

 Post Reply Post Reply
Author
ses View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem
Avatar

Joined: 09 november 2006
Location: Norway
Status: Offline
Points: 3920
Post Options Post Options   Thanks (0) Thanks(0)   Quote ses Quote  Post ReplyReply Direct Link To This Post Topic: Open collector-utfordring
    Posted: 12 januar 2017 at 20:28
Omsider har jeg begynt å prøve meg på å bruke Arduino. Det er litt skummelt med slik tett og kompakt elektronikk for en som lærte elektronikk gjennom løse transistorer og bare enkle CMOS-porter på 1970-tallet. Så da trodde jeg også at jeg kunne litt basic transistorkoblinger, men jeg har råkt på en liten utfordring som kanskje noen av de mer oppdaterte innen "The Art of Electronics" (jeg har boka med den tittelen av Horowitz & Hill, som har vært til mye hjelp).
Jeg fikk nemlig Arduinonen til å spille ganske fort, og det første programmet ble skrevet etter en tutorial på YouTube: en blinkende LED. Det er jo akkurat slitk vi kan ha bruk for på MJ, så jeg ville gå et skritt videre ved å få denne til å la Skala Designs utmerkede signaler blinke.

Utfordringen, som jeg trodde var enkel å løse, er at utgangene på Arduino Due ligger mellom 0 og 3,3 V, mens Skala Designs signaler drives med +12 V DC: Men signalene er viselig innrettet slik at ledniingene til LED i signalene skal jordes for å lyse. 12 V ligger altså konstant på signalet, og så må man framskaffe jording (0 V) for å signalet til lyse. Men man kan ikke bare sette ledningene fra signalet rett på kortets utgang, for da vil spenningen over LED i signalet variere mellom 12 og 9 V, samt at det er advarsel i Arudino-dokumentasjonen på at portene ikke må ha større spenning på seg enn 3,3 V, og selv om det forsvinner litt spenning fra 12 V gjennom lysdioden og antagelig en seriemotsand, tok jeg ikke sjansen på det. Dessuten ville forskjellen på 12 V og 9 V ikke være nok til at signalet slukker helt.
Så da tenkte jeg at Arduino-porten kunne drive en transistor i open collector modus,  for den koblingen skal teoretisk kunne jorde hva som helst eller la være å jorde. Da tenkte jeg at det ville lys eller ikke-lys. Manualen sier at utportene kan gi mellom 3 og 15 mA, så ved litt konservativ beregning satte jeg en seriemotstand mellom porten og basen på transistoren på 1K (U=RI  3,3 = 1000 x 0,0033) som skal gi maks 3,3 mA.
Dette fungerte nesten helt perfekt. Lyset blinker i signalet, men det slukker ikke helt. La oss si at det er 20 % lys igjen når den skulle vært helt slukket. Problemet er ikke at transistoren ikke går nok i metning, for signalet lyser opp helt ok, men transistoren slukker ikke altså helt. Jeg prøvde meg med en pull-up motstand på 2k2 collectorutgangen mot 12 V for å dra spenningen opp mot 12 V, uten at det syens å ha noen effekt.
Her er koblingsskjemaet. Hva kan jeg gjøre for å få slukket lyset helt når det skal være slukket?


Her er også et videopptak av det blinkende signalet:
https://youtu.be/r-yBk8eIhKk
Svein S
Back to Top
ses View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem
Avatar

Joined: 09 november 2006
Location: Norway
Status: Offline
Points: 3920
Post Options Post Options   Thanks (1) Thanks(1)   Quote ses Quote  Post ReplyReply Direct Link To This Post Posted: 12 januar 2017 at 21:28
Problemet avblåst. Det viste seg at jeg hadde brukt en transistor som hadde annen pinnekonfigurasjon enn forventet (emitter og collector byttet om). Når jeg satt inn en annen transistor (2N3904) virket det hele perfekt.
Svein S
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 12 januar 2017 at 22:56
Hei,

Gratulerer med Arduinoen.  Et par tips :

1. Jeg anbefaler deg å vurdere å kjøpe en Arduino Uno med DIL / prosessor i sokkel, også.  Den er mye rimeligere, og prosessoren kan byttes ut hvis/når du gjør en feilkobling og brenner inn/utgangen. En ekstra løs Arduino UNO prosessor koster 20 - 40 kroner.  Hele korten ca  kr 150 i Norge.

2.  Hvis du skriver mye (Hundrevis av ganger pr. sekund) til Serieporten (Serial .print) kan du få problemer med at ikke PC får kontakt med kortet, slik at du ikke får porgrammert den.  Pass derfor på å bruke DELAY etter skriving,

2. Jeg har styrt signalene direkte fra Arduino UNO (5 Volt) og Chipkit UNO (3.3 Volt).  Jgg styrer de da ved å  trekke utgangen mot 0 Volt.  Jeg er fornøyd med lysstyrken uten å bytte motstand i signalet. 

3. Det bør vel også gå greit å  mate signalene med 5 volt.  Spenningsfallet over LED vil vel redusere spenningen til ca 3.5 Volt - Dette har jeg ikke testet, så ingen garantier her. (Chipkit UNO er 5 Volt tollerant, selv om den opererer på 3.3 Volt).

4. Arduino Teensy er alternative kort,  litt færre innganger i forhold til DUE, men de fleste variantene er 5 Volt tollerante, og de koster omtrent halvparten av DUE.  Teensy er kanskje ikke anbefalt som det første Arduino kortet, men kan være greit å vite om.
Back to Top
StenR View Drop Down
Medlem i MJF
Medlem i MJF


Joined: 19 oktober 2014
Location: Norge
Status: Offline
Points: 341
Post Options Post Options   Thanks (0) Thanks(0)   Quote StenR Quote  Post ReplyReply Direct Link To This Post Posted: 12 januar 2017 at 23:14
Skala design sine signaler fungerer fint med 5v rett fra Arduino UNO og Mega i alle fall. Jeg bruker det...

StenR
Back to Top
ses View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem
Avatar

Joined: 09 november 2006
Location: Norway
Status: Offline
Points: 3920
Post Options Post Options   Thanks (1) Thanks(1)   Quote ses Quote  Post ReplyReply Direct Link To This Post Posted: 14 januar 2017 at 12:45
Da er jeg igang! Prosjektet er å styre signaler og veksler via en modell av et NSI-63 stillverkspanel med riktige funksjoner på stillere. Jeg har gjort dette tidligere ved hjelp av releer. Det tok et halvår og forbruk av ca 50 releer (hadde de liggende), men jeg inser jo at det er betyyyydelig enklere å gjøre logiske endring i software framfor i hardware (releer, diodematriser og ledninger).
Stillerne er koblet til Arduinoen og ca 1/# av LED så langt - nok til å teste ut programmet. Jeg støter stadig på utfordringer som det tar litt tid å komme rundt, men det er jo noe av utfordringen.

Svein S
Back to Top
ses View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem
Avatar

Joined: 09 november 2006
Location: Norway
Status: Offline
Points: 3920
Post Options Post Options   Thanks (0) Thanks(0)   Quote ses Quote  Post ReplyReply Direct Link To This Post Posted: 14 januar 2017 at 23:22
Originally posted by programmeringssporet programmeringssporet wrote:

Hei,

Et par tips :

1. Jeg anbefaler deg å vurdere å kjøpe en Arduino Uno med DIL / prosessor i sokkel, også.  Den er mye rimeligere, og prosessoren kan byttes ut hvis/når du gjør en feilkobling og brenner inn/utgangen. En ekstra løs Arduino UNO prosessor koster 20 - 40 kroner.  Hele korten ca  kr 150 i Norge.

2.  Hvis du skriver mye (Hundrevis av ganger pr. sekund) til Serieporten (Serial .print) kan du få problemer med at ikke PC får kontakt med kortet, slik at du ikke får porgrammert den.  Pass derfor på å bruke DELAY etter skriving,



Hei. Takk for tips, som jeg kanskje kan trenge å ta til meg før jeg ble etterpåklok.
Programmeringen fungerte bra, og jeg var i ferd med å fullføre prosjektet med stillverket med stillere som legger togveier, forriglinger og det hele etter forbildet, også med blinkende signaler, da jeg skulle gjøre det enda litt mer avansert med myk blinking.
Plutselig ville i kortet motta programmet. No device found på USB-porten. Jeg googlet nettet og fant at dette var et kjent problem, men ingen av løsningsforslagene der (de jeg har vett på å skjønne hva innebar) hjalp. Så det er jo det du beskriver i punkt 2 over, men jeg skriver ikke til serieporten, så derfor faller det kanskje ikke under det?
Jeg har resatt maskinen (iMac) også, og forsøkt "Erase" i 3 sekunder på kortet, og "Reset" også. Kan det være kortet som er gåent? Men det har jo gått bra med ca 50 opplastinger av programmet og stillverket har stått og gått helt fint i flere timer før det.
Så nå vet jeg ikke annet enn å bestille et nytt kort, eller to. Da sier du at Ardunio Uno er billigere. Men 14 porter i stedet for 54 er ganske mye mindre, og jeg trenger opp mot 60 porter for dette enkle stillverket (med 6 signaler med forsignaler). Stillverket drives med 3,3 V regulert DC, så alt skulle være innenfor det trygge.

Svein S
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 14 januar 2017 at 23:51
Hei,

Min erfaring er at uten direkt feilkobling, blir det sjelden eller aldri fysiske feil på kortet.  Mye vanligere er feil på USB driver på PC, elller overskrevet bootloader på kortet. 

Har du vært inne på file/preferences og satt "show verbose output during" upload.
Da vil du se hvordan den søker etter usb porter.

Har du prøvd en annen usb port på PC'en, en annen usb kabel, En annen PC ?

Sjekk også hva som skal til for å reinstallerer bootloader på DUE kortet - jeg har gjort det på flere forskjellige kort i slike situasjoner men ikke med DUE.

Ser at du har kommet langt med prosjektet ditt, så det er kanskje uaktuelt å bytte til UNO nå, men en mulighet kan være en uno og et servo driver kort.  Da får du 16 ekstra PWM utganger som du kan koble LED til. Dette kortet kan også være lurt sammen med en DUA, fordi du kan få 5Volt ut også da.

https://www.adafruit.com/product/815

Hvis du trenger flere innganger, bruker jeg gjerne en MCP23017 (se bloggen min ang. den).

Fordelene med flere kort er lavere kosrnader når noe går istykker.



Edited by programmeringssporet - 14 januar 2017 at 23:55
Back to Top
Per Hilton View Drop Down
Veteran
Veteran


Joined: 29 november 2005
Location: Norway
Status: Offline
Points: 135
Post Options Post Options   Thanks (0) Thanks(0)   Quote Per Hilton Quote  Post ReplyReply Direct Link To This Post Posted: 15 januar 2017 at 12:29
Da jeg skulle få liv i et gammelt NSI-panel (1:1) jeg har på veggen, fant jeg ikke noe passende drivekort, så jeg laget et selv.  Hvert kort er 55x40mm, har 48 utganger, og styres fra en SPI-buss.  Flere kort kan kobles i kjede.

Kortet er lagt ut i Eagle (gratis), og produsert hos OSH park (nesten gratis).  Det er fullt mulig å lage flere, om noen skulle være interessert.

Lampedriverne er Texas' TPIC6C596, de har open-drain utganger som tåler 33 volt eller 100mA.  I forhold til Arduino Due er ulempen at driverne krever 5 volt logikkspenning.





Back to Top
ses View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem
Avatar

Joined: 09 november 2006
Location: Norway
Status: Offline
Points: 3920
Post Options Post Options   Thanks (0) Thanks(0)   Quote ses Quote  Post ReplyReply Direct Link To This Post Posted: 15 januar 2017 at 13:59
JEg har prøvd flere av USB-portene på iMac-en, uten hell. Men når jeg skfitet til en annen maskin til en liten, men nyere, Mac Air fikk jeg kontakt med kortet igjen. Jeg prøvde den så på nytt igjen på den første maskinen, men uten hell, så tilbake til Air-en igjen, og den virket.

Men hvorfor virket det en stund på iMac-en? Kan jeg risikere det samme på den andre maskinen at det virker en stund bare?
USB-kabelen min er litt lang (1,5 m). Kan det være et poeng å prøve en kortere kabel? JEg har effekt av det med eksterne disker, at iMac-en krever kort kabel mens Air-en klare lange kabler. Spenningsfall? Men Arduinoen har også ekstern strømforsyning uten at det gjør noe forskjell om den er på eller ikke.
Svein S
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 15 januar 2017 at 17:09
Hei,

Jeg tror det viktigste er å unngå å fjerne usb ledningen mellom MAC'en og Arduinoen.  På min Windows PC må jeg som regel omstarte maskinen hvis jeg tar ut og inn av den samme USB pluggen.

En ny Arduino vil sansynligvis få ny driver - slik at den bør fungere på den første MAC'en din (en stund?).

Foreslår at du forsøker å avinstallere driveren på den første MAC'en.  Her er en oppskrift jeg fant, ikke for Arduino men for noe annen - så du må nok finne et annet drivernavn :

Please follow the instructions below:

1.) First, go to Terminal. You can access this by opening a new Finder window. On its left pane, navigate to Applications.

If it says Finder besides the Apple icon, choose Go from one of the menu options and click on Applications.

2.) Inside the Applications folder, search for Utilities possibly located at the very bottom.

3.) Under Utilities, locate the Terminal application and double-click on its icon to open it.

4.) On the Terminal window, input cd/System/Library/Extensions after the rectangular cursor.

5.) For the next prompt, enter this line: kextunload ProlificUSBSerial.kext.

6.) Lastly, type this command: rm -r ProlificUSBSerial.kext.

Back to Top
ses View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem
Avatar

Joined: 09 november 2006
Location: Norway
Status: Offline
Points: 3920
Post Options Post Options   Thanks (0) Thanks(0)   Quote ses Quote  Post ReplyReply Direct Link To This Post Posted: 15 januar 2017 at 22:23
Originally posted by programmeringssporet programmeringssporet wrote:

Hei,

Jeg tror det viktigste er å unngå å fjerne usb ledningen mellom MAC'en og Arduinoen. 



Er det av samme grunn som man alltid bør løse ut eksterne disker o.l. i software og ikke bare fysisk koble de fra USB-en?

Men man jo koble arudnio og usb-ledningen fra når arudinoen skal brukes til det den er tiltenkt og ikke lenger står i utviklingsmodus. Holder det å slå av maskinen, og så koble fra?


Edited by ses - 15 januar 2017 at 22:25
Svein S
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 15 januar 2017 at 23:42
Nei ikke helt - disker bør lukkes for å unngå korrupte filsystemer / behov for å kjøre recovery ved re-mounting.

Jeg tror at hvis du alltid skrur av PC'en før du plugger ut kabelen vil eliminere problemet ditt.  Jeg tror mange av tilfellene mine har oppstått når jeg var inne i terminalvinduet i Arduino IDE da jeg plugget ut Arduinoen.
Back to Top
ses View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem
Avatar

Joined: 09 november 2006
Location: Norway
Status: Offline
Points: 3920
Post Options Post Options   Thanks (0) Thanks(0)   Quote ses Quote  Post ReplyReply Direct Link To This Post Posted: 15 januar 2017 at 23:47
Takk. Da prøver jeg det.
Svein S
Back to Top
TrondH View Drop Down
Viderekommen
Viderekommen


Joined: 18 august 2016
Status: Offline
Points: 29
Post Options Post Options   Thanks (0) Thanks(0)   Quote TrondH Quote  Post ReplyReply Direct Link To This Post Posted: 16 januar 2017 at 20:04
Originally posted by ses ses wrote:


USB-kabelen min er litt lang (1,5 m). Kan det være et poeng å prøve en kortere kabel?

Jeg har en Arduino Mega som ikke fungerer med den ene lange USB kabelen jeg har koplet til maskinen, men fungerer fint med en annen litt kortere.  Men den lange fungerer med noen andre UNOer.

Jeg har ingen god forklaring på det annet enn at både kabel og Arduino må ligge akkurat på grensen av det tillatte for USB spesifikasjonen og sammen så vil de ikke.


Edited by TrondH - 16 januar 2017 at 20:04
Back to Top
ses View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem
Avatar

Joined: 09 november 2006
Location: Norway
Status: Offline
Points: 3920
Post Options Post Options   Thanks (0) Thanks(0)   Quote ses Quote  Post ReplyReply Direct Link To This Post Posted: 16 januar 2017 at 21:38
Da blir det kjøpt kort kabel i morgen.
Svein S
Back to Top
ses View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem
Avatar

Joined: 09 november 2006
Location: Norway
Status: Offline
Points: 3920
Post Options Post Options   Thanks (0) Thanks(0)   Quote ses Quote  Post ReplyReply Direct Link To This Post Posted: 20 januar 2017 at 00:27
Da er første del av dette prosjektet ferdig. Dvs. at stillverket er programmert ferdig med Arduinoen, stillerer som de skal i følge NSI-63-typen ved NSB/JBC/Bane NOR, signalindikatorene lyser og blinker (mykt) som de skal, og det er forriglinger som hindrer visse operasjoner etter de regler som gjelder for NSI-63-stillverk i virkeligheten. Jeg har laget en liten videosnutt av hvordan stillverket betjenes:

https://youtu.be/5pTzDnMWQhA
Svein S
Back to Top
SveinR View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem


Joined: 03 november 2004
Location: Norway
Status: Offline
Points: 1215
Post Options Post Options   Thanks (0) Thanks(0)   Quote SveinR Quote  Post ReplyReply Direct Link To This Post Posted: 20 januar 2017 at 09:58
Hei Svein,
 
Stilig prosjekt.
 
Noen spørsmål. Hvorfor bruker du en Arduino Due og en Mega?
Og har du tenkt å ha en "hjerne" og la denne styre både signaler i stillverk og anlegg? Evt bruke to og ha kun en signal bus mellom stillverk og anlegg?

Bruker du noen spesielle pwm kommandoer for blinkingen til LED?  Jeg har god erfaring med å ha forskjellig opp og neddimmingstid for å få en mer forbildelik blinking. 
SoftPWM er ett tips her
Mvh

-SveinR



Det finnes en skiftetraktor til alt

Back to Top
ses View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem
Avatar

Joined: 09 november 2006
Location: Norway
Status: Offline
Points: 3920
Post Options Post Options   Thanks (0) Thanks(0)   Quote ses Quote  Post ReplyReply Direct Link To This Post Posted: 20 januar 2017 at 11:40
Det var mange vanskelige spørsmål. Wink

Jeg fikk en Arduino Due i hånden for et år siden fra en i TMJK som sa jeg burde prøve den. Så har den ligget et år, delvis i angst for hvordan koble den til riktig uten at kortet ødelegges med så lav spenning som 3,3 volt, delvis fordi jeg trodde jeg måtte ha god tid og ro rundt meg for å gå inn i en for meg helt ny teknologi. Så reiste kona bort fire dager rundt sist helg, så da tok jeg mot til meg til å begynne å lese meg opp om Arduino, laste ned programmer for å kunne programmere den, samt se på noen nyttig snutter på YouTube om hvordan komme igang med Arduino.

Det viste seg atskillig enklere enn fryktet, og da programmeringsspråket var svært likt det jeg nesten bruker daglig (PHP), følte jeg meg plutselig veldig hjemme når jeg skulle begynne på programmeringen. A Due har 54 digitale porter, og det passer prosjektet stillverksstyring veldig bra. Jeg tronger riktignok noen flere, men det er nok til å teste ut grunnlegnnede ting ved stillverket og dens forriglinger, så da bruker man hva man haver, altså en A Due. Du spør om Mega, men det har jeg ikke brukt.

Arduino ligner i mangt på det gamle C/MRI-systemet til Bruce Chubb (publisert i MR i 1985), som jeg har bygget to sysetmer med tilbake på 1990-tallet, så derfor har jeg så langt holdt meg til erfaringer og teknikker derfra fordi disse kunne overføres direkte til Arduino med separate porter. Seriell kommunikasjon får komme senere, hvis det blir nødvendig.

Når det gjelder blinkingen, er den ordnet digitalt ved å hakke opp signalet som sendes til porten på LED til en signallampe som skal kunne blinke. Det er altså ikke et analogt signal, men et høyfrekvent digital signal som framstår for øyet som myk blinking. Jeg laget det som en funksjon som brukes av alle lamper som skal blinke, som sier om lampa skal ha strømpuls på den runden i den evige loopen, eller ikke. Alle lamper som skal blinke forespør så denne funksjon, så dette er en kodemessig lite plasskrevende greie og kan henges på så mange lamper som ønskelig. For øvrig bruker ikke hele programmet som styrer stillverket mer enn ca 8 % av minnekapasiteten på Arduinoen. Blinkefrekvens og fasong er generert fra en sinuskurve som er kappet litt i toppen slik at lampa er på litt lenger enn den er helt slukket. Men det er lett å justere på den avkappingen, og jeg prøvde meg fram med litt forskjellige verdier til jeg fant en som jeg synes virket grei nok. Jeg valgte en sinuskurve fordi det er en egen funksjon i skriptet som gir sinus av en vinkel, og den er en myk kurve. Kanskje burde signalformen være noe mer trapesformet med avrundinger?
Svein S
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 20 januar 2017 at 22:16
Gratulerer,

Jeg syntes det er veldig interessant at også du ble overasket over hvor enkelt/effektivt det er å utvikle på Arduino, sammenlignet med tradisjonelle løsninger.

Jeg håper du vil distribuere koden på en eller annen måte så jeg og andre kan lære av dette, både hvordan Arduino fungerer, men også hvordan et norsk stillverk skal fungere.
God ide å bruke sinus funksjon, jeg lagde en tabell hvor jeg eksperimenterte med forskjellige verdier i en tabell for dimmingen. 

Jeg err også interresant å vite om du bruker Hardware PWM ( analogWrite(pin,cycle) ) SoftPWM eller andre metoder som f.eks. "bit-banging"/ gjør PWM funksjonen rett i programmet.

En litt stilig funksjon som jeg har lagt merke til, er at når et signal skifter fra f.eks. grønt til rødt, skjer dette uavhengig av blinkingen. f.eks. signalet tenner rødt blinkene, et kort
øyeblikk etter skifter det til grønt, slik at det røde blinket blir unormalt kort.  Har du fått til dette ? (dette har jeg sett på en del signaler langs linjen - men ser ut som er borte på nyere signalanlegg ?)

For mitt bruk / hjemmeanlegg er det sansynligvis også behov for å sette stillverk i fjernstyringsmodus, slik at man kan styre dette fra f.eks. JMRI. Har du tanker / behov for dette ?

Forøvrig du bruker 8 prosent av programminnet på DUE.  DUE har 512KB programminne, UNO har kun 32KB, så du hadde kanskje støtt mot taket der.
Back to Top
ses View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem
Avatar

Joined: 09 november 2006
Location: Norway
Status: Offline
Points: 3920
Post Options Post Options   Thanks (0) Thanks(0)   Quote ses Quote  Post ReplyReply Direct Link To This Post Posted: 20 januar 2017 at 23:22
Nei, jeg bruker ikke PWM. Blant annet fordi jeg har ikke satt meg inn i hva det er - så langt. Jeg prøvde å tenke rent digitalt hele veien, og tok det som en utfordring å lage en ren digital løsning på å få til den blinkingen. Denne løsningen har vel den fordelen at den kan brukes på enhver digital utgang. Det er vel et begrenset antall med PWM-utganger? 8? (Har ikke kortet for hånden akkurat nå.) På denne stasjonen er det 10 lamper som skal blinke.

JEg er litt usikker på hva du mener med skiftet fra rødt til grønt skjer uavhengig av blinken. Hos meg vil det i hvert fall være slik at signalbildet skifter uavhengig av hvor i blinkfasen man er. Så hvis det skjer på stigende blink, vil vel den andre lampen overta lysstyrken akkurat der den første er millisekundet før. Blinkingen styres av en tabell med 1000 rader. Jeg prøvde meg med 100 først, men da så man flimringen ganske tydelig. Men loopen er så rask at den skjer på under millisekundet, virker det som (jeg kan sikkert regne ut det, og sende det tilbake til IDE som en printet verdi hvert sekund eller noe slikt under testing.)
Svein S
Back to Top
ses View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem
Avatar

Joined: 09 november 2006
Location: Norway
Status: Offline
Points: 3920
Post Options Post Options   Thanks (0) Thanks(0)   Quote ses Quote  Post ReplyReply Direct Link To This Post Posted: 20 januar 2017 at 23:30
Fjernstyring. Ja, vi planlegger å kunne fjernstyre stasjonen fra en sentral PC, og JMRI har vært nevnt som løsning. Siden vi (TMJK) har en moderne utgave av C/MRI også liggende, ser vi for oss muligheten og la PC-en styre den, som har utganger og innganger som enten kan kobles direkte opp mot Arduinoer i lokalstillverkene, eller at kanskje også fikser en seriell løsning med en bus langs anlegget. Men tanken er at vi skal ha inn en nøkkelbryter i stillverket som kan sette det enten i lokal eller fjernstyrt modus, slik som i virkeligheten.

Det skal også være en kommunikasjon mellom stillverkene langs banen, slik at man kan bare stille togvei ut på linjen dersom den er ledig, dvs at togvei fra nabostasjonen ikke er lagt. Det er egne blå lamper i virkeligheten som indikerer (nesten) dette. Er togvei lagt fra nabostasjonen vil en blå LED lyse langs sporet på panelet i retning av den stasjonen. Slik sikrer vi sikker togframførsel mellom stasjonene ved bare å benytte stillverkets innebygde forriglinger.
Svein S
Back to Top
StenR View Drop Down
Medlem i MJF
Medlem i MJF


Joined: 19 oktober 2014
Location: Norge
Status: Offline
Points: 341
Post Options Post Options   Thanks (0) Thanks(0)   Quote StenR Quote  Post ReplyReply Direct Link To This Post Posted: 21 januar 2017 at 09:46
Jeg driver med noe lignende, men med et forenklet sikringssystem foreløpig. Har ikke fått på plass tilbakemeldingsmoduler, så har en tilstandsmaskin som bare sjekker om sporveksler og lys ligger i en "lovlig" tilstand, og hvis noe er ulovlig faller sikringssystemet i normalstilling. Jeg har planer om å utvide til "the real deal", men tiden har ikke strukket til ennå. 

Jeg har brukt Kina-klone Mega 2560, da den er billig og har nok HW PWM til å drive en stasjon (15PWM utganger). Softblink med PWM er ganske greitt. Jeg har ingen krav om at blinket må ha gått ferdig før signalet bytter tilstand. 

Jeg har lekt med tanken om å sette opp et GitHub prosjekt, dels for å få litt hjelp da tiden ikke strekker til. Har brukt Eclipse som IDE, brukt C++ 11 features og programmert objektorientert. Koden er sånn passe leselig...

Edit: Like greitt å hoppe i det. Show your code er det vel et prinsipp som heter. Kanskje dere finner noe nyttig her https://github.com/StenRoar/norway_railroad_signals . Soft-blink logikken er i bulbs.h . Og hvis dere finner på noe lurt, så kan dere vel bare sende en pull request... Flere hoder tenker jo gjerne bedre enn ett. 

StenR

 


Edited by StenR - 21 januar 2017 at 10:24
Back to Top
Odd Joar Jansen View Drop Down
Viderekommen
Viderekommen


Joined: 30 januar 2016
Location: Norge
Status: Offline
Points: 93
Post Options Post Options   Thanks (0) Thanks(0)   Quote Odd Joar Jansen Quote  Post ReplyReply Direct Link To This Post Posted: 21 januar 2017 at 21:00
Veldig bra prosjekt.
Håper det kommer en super-artikkel i MJ-bladet om dette.
Om det tekniske har jeg ingenting å komme med, men når TXP betjener stillerapparatet (legger togvei og kanskje også skiftevei) høres en slags surre/ringe-lyd fra stillerapparatet. Denne lyden varer ca. 2-3 sekunder, omtrent den tiden det tar for sporveksler å legge seg i riktig posisjon. Altså, signalene kommer ikke opp med en gang bryterne betjenes, men kommer opp etter ca. 2-3 sekunder.
Om denne lyden (og "forsinkelsen" på 2-3 sekunder) kommer når bare sporveksel-bryterne betjenes er jeg usikker på.
Back to Top
ses View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem
Avatar

Joined: 09 november 2006
Location: Norway
Status: Offline
Points: 3920
Post Options Post Options   Thanks (0) Thanks(0)   Quote ses Quote  Post ReplyReply Direct Link To This Post Posted: 21 januar 2017 at 23:18
Det ligger flere tidsforsinkeler inne på virkelighetens stillverk. Det er mulig jeg legger inn noen av disse, men kanskje i noe redusert tidslengde.

Ja, dette blir det artikler i MJ-Bladet om.
Svein S
Back to Top
Odd Joar Jansen View Drop Down
Viderekommen
Viderekommen


Joined: 30 januar 2016
Location: Norge
Status: Offline
Points: 93
Post Options Post Options   Thanks (0) Thanks(0)   Quote Odd Joar Jansen Quote  Post ReplyReply Direct Link To This Post Posted: 22 januar 2017 at 10:07
Veldig bra.
Ser frem til artikkel i MJ-bladet, etterhvert.
Back to Top
StenR View Drop Down
Medlem i MJF
Medlem i MJF


Joined: 19 oktober 2014
Location: Norge
Status: Offline
Points: 341
Post Options Post Options   Thanks (0) Thanks(0)   Quote StenR Quote  Post ReplyReply Direct Link To This Post Posted: 22 januar 2017 at 18:20
Fin video! En ting... Hvis man har passering over avvik (ca 1:50 uti), skal begge lampene på forsignalet for utkjør blinke (det som er montert på innkjørhovedsignalet)? Visste at forsignalet for innkjørhovedsignalet var slik, men var ikke klar over at forsignalet for utkjør var likt. 

Edit: Sjekket signalforskriften. Visst skal det være slik. Man lærer noe hver dag. En bug mindre i mitt eget program :-) 

StenR


Edited by StenR - 22 januar 2017 at 18:49
Back to Top
ses View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem
Avatar

Joined: 09 november 2006
Location: Norway
Status: Offline
Points: 3920
Post Options Post Options   Thanks (0) Thanks(0)   Quote ses Quote  Post ReplyReply Direct Link To This Post Posted: 22 januar 2017 at 21:16
Ja, da fant du svaret selv. Forsignalet gjenspeiler alltid hovedsignalet, og én grønn i hovedsignaler skal ha gul og grønn i forsignal. Jeg har en slags huskeregel selv, og den er at en grønn er mindre grønt enn to grønne, dvs at man må kjøre saktere, for over avvikveksel er det (normalt) redusert hastighet. Tilsvarende er forsignalet som har gult (varsom) i tillegg til grønt (kjør) kan også forstås som hastighetsdempende: kjør, men med varsomhet.
Svein S
Back to Top
 Post Reply Post Reply

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 12.05
Copyright ©2001-2022 Web Wiz Ltd.

This page was generated in 0,078 seconds.