Arduino projekt - Vägkorsning

Boostrar, dekodrar, signaler, m.m. Montering av dekodrar i lok. Datorprogram och programmering.
Användarvisningsbild
daniel
Inlägg: 3549
Blev medlem: 2012-05-08, 10:15

Re: Arduino projekt - Vägkorsning

Inlägg av daniel »

FreddePettersson skrev:Man får ta en IR diod, montera i bädden, lätt vinklad, montera Fotocell 5 mm därifrån mellan samma slipers och sedan låta ljuset studsa om det finns rullande material ovanför, tänker jag rätt?
Ja. Det finns en artikel i Modelljärnvägsmagasinet. Jag tror den heter något i stil med "Hastighetsmätarmodul" och den är skriven av Niclas Westerlund i MMM. Det är en modul med fotoceller i spåret.

Mvh Daniel
Användarvisningsbild
FreddePettersson
Inlägg: 773
Blev medlem: 2012-05-09, 02:16
Ort: Värnamo
Kontakt:

Re: Arduino projekt - Vägkorsning

Inlägg av FreddePettersson »

Jag har skickat ett PM till Nicke om dessa sensorer, han är tydligen inte så ofta på Modulsyd sidan
Någon som kan ge honom en "hint" om att jag söker honom på MMM forumet?

/Fredrik
Medlem i Värnamo Modelljärnvägsförening
Medlem i FREMO
Medlem i ModulSyd

Bygger modelljärnväg i modulform:
Byggtrådar:
Kristineberg Lastplats område
Endlösa Tråd & Metall - en slutmodul
Kristineberg Västra
Användarvisningsbild
LLJ
Inlägg: 4297
Blev medlem: 2012-05-08, 10:27

Re: Arduino projekt - Vägkorsning

Inlägg av LLJ »

Hittade detta http://home.online.no/~hakrist/railroad ... tector.pdf
Kanske kan vara användbart?

Blir bomstyrningen (den mekaniska delen) en egen konstruktion?
För att signalerna skall uppträda korrekt, behövs givare både då bommarna är helt uppe och fullt nere, dvs det går åt två IO till detta (troligen vet du detta redan)

/Lars
Användarvisningsbild
daniel
Inlägg: 3549
Blev medlem: 2012-05-08, 10:15

Re: Arduino projekt - Vägkorsning

Inlägg av daniel »

@Fredrik: Du har fått Niclas epost på mail.

Mvh Daniel
Användarvisningsbild
LLJ
Inlägg: 4297
Blev medlem: 2012-05-08, 10:27

Re: Arduino projekt - Vägkorsning

Inlägg av LLJ »

Hittade en "DIY" lösning som verkar väldigt intressant:
http://www.rmweb.co.uk/community/index. ... iy-ir-dot/

/Lars
Användarvisningsbild
FredrikB
Inlägg: 138
Blev medlem: 2012-05-09, 02:16
Ort: Drammen, Norge

Re: Arduino projekt - Vägkorsning

Inlägg av FredrikB »

LLJ skrev:Indikering via strömavkänning är sämre lösning om loket går sist eller vid längre motorvagnståg.
Är det dags att börja tubba folk till att installera motstånd enligt NEM 624 i sina vagnar? Automatik av den här sorten lär bara bli vanligare.

Mvh

Fredrik
Användarvisningsbild
LLJ
Inlägg: 4297
Blev medlem: 2012-05-08, 10:27

Re: Arduino projekt - Vägkorsning

Inlägg av LLJ »

Blir nog svårt att genomföra.
Om man skall kräva motståndsaxlar då kan man även kräva RP25 hjulprofil och en viss typ av koppel när man ändå är igång.

/Lars
Användarvisningsbild
FreddePettersson
Inlägg: 773
Blev medlem: 2012-05-09, 02:16
Ort: Värnamo
Kontakt:

Re: Arduino projekt - Vägkorsning

Inlägg av FreddePettersson »

LLJ skrev:Hittade detta http://home.online.no/~hakrist/railroad ... tector.pdf
Kanske kan vara användbart?

Blir bomstyrningen (den mekaniska delen) en egen konstruktion?
För att signalerna skall uppträda korrekt, behövs givare både då bommarna är helt uppe och fullt nere, dvs det går åt två IO till detta (troligen vet du detta redan)

/Lars
Detta blir samma lösning som på Kryklebäcken där allt funkar!

Mvh
Fredrik
Medlem i Värnamo Modelljärnvägsförening
Medlem i FREMO
Medlem i ModulSyd

Bygger modelljärnväg i modulform:
Byggtrådar:
Kristineberg Lastplats område
Endlösa Tråd & Metall - en slutmodul
Kristineberg Västra
Användarvisningsbild
FreddePettersson
Inlägg: 773
Blev medlem: 2012-05-09, 02:16
Ort: Värnamo
Kontakt:

Re: Arduino projekt - Vägkorsning

Inlägg av FreddePettersson »

@Prgrammering support sökes

Hur läser Arduino signalen från Loconet kortet från LLJ?
Man ska ju lägga till någon kod, kan någon förbarna sig att förklara hur man ska göra , eller vad man hitta info om detta?

Skulle vilja bolla lite kod efter ha försökt få till det hela
skriver en if..else sats, men vid kompilering klagar den på else satsen
har försökt läsa annan kod för att försöka se felet, men hittar det inte så jag bifogar mitt lilla projekt som med kod i fritext
/* Roadcrossing Kristineberg
Fredrik Pettersson
2012-11-03 
Writen for Arduino UNO R3
Version 1
*/

// Setup pin 
//INPUTS
int IR_D1 = 2; //IR sensor D1. Signal module MS1. Main track.
int IR_D2a = 3; //IR sensor D2a. Module section 1. Track 2 - Main track.
int IR_D2b = 4; //IR sensor D2b. Module section 1. Track 3 - Alternative track.
int IR_D3a = 5; //IR sensor D3a. Module section 2. Track 2 - Main track.
int IR_D3b = 6; //IR sensor D3b. Module section 2. Track 3 - Alternative track.
int IR_D4 = 7; //IR sensor D4. Module section 4. Main track.
int CrossingSafe = 8; // Signal from Servo drive, Crossing safe INPUT
int LocalOperation = 9; // Crossing free for local operation

//OUTPUTS
int ActivateCrossing = 13; //Signal to activate Servo drive Down and set outputs to signals, OUTPUT.

//Variables
int IncomingTrack;
int IncoimngAltTrack;


//Variables that will change
int IR_D1_State = 0;
int IR_D2a_State = 0;
int IR_D2b_State = 0;
int IR_D3a_State = 0;
int IR_D3b_State = 0;
int IR_D4_State = 0;
int CrossingSafe_State = 0;
int ActivateCrossing_State =0;
int LocalOperation_State = 0;



void setup() {
  //intialize the IR sensors as a inputs
  pinMode(IR_D1, INPUT);
  pinMode(IR_D2a, INPUT);
  pinMode(IR_D2b, INPUT);
  pinMode(IR_D3a, INPUT);
  pinMode(IR_D3b, INPUT);
  pinMode(IR_D4, INPUT);
  pinMode(CrossingSafe, INPUT);
  pinMode(LocalOperation, INPUT);
  
// intialize OUTPOTS
  pinMode(ActivateCrossing, OUTPUT);
}

void loop() {

 // Checking sensors for detaction of any trains, check of sensors
 IR_D1_State = digitalRead (IR_D1);
 IR_D2a_State = digitalRead (IR_D2a);
 IR_D2b_State = digitalRead (IR_D2b);
 IR_D3a_State = digitalRead (IR_D3a);
 IR_D3b_State = digitalRead (IR_D3b);
 IR_D4_State = digitalRead (IR_D4);
 
 //Check actual state of Local Operation enabled
 LocalOperation_State = digitalRead(LocalOperation);
 
 //Setting signals thru Loconet depending on Crossing status
CrossingSafe = digitalRead (CrossingSafe);
if (CrossingSafe_State == HIGH); {
  //Set signals "V-signal" and "DöSkalle" to Safe Crossing thru Loconet device.
  //
}
else
 {//Set signals to normal state thure Locont device.
 //
}

 
 // Case 1 - train detected incoming from LEFT , Modulesection 1 MS1
 if (IR_D1_State == HIGH && ActivateCrossing_State == LOW);
 {
 IncomingTrack = 100; //Set value for incoming maintrack Left.
 }
 
 // Case 2 - train detected from RIGHT, Modulsection 4.
 if (IR_D4_State == HIGH && ActivateCrossing_State == LOW);
 {
   IncomingTrack = 400; // Set value for incoming maintrack Right.
 }

 //Determine track and if Local operation is active.
 if (IncomingTrack) == 100; //Main track from LEFT.
 {
   if(IR_D2a_State == HIGH); //Main track from LEFT
   {
   IncomingTrack = 120;
   }
 }
 else
 {
   if (IR_D2b_State == HIGH && LocalOperating_State == HIGH);
 {
   IncomingTrack = 123; 
   else
   {
     IncomingTrack = 120;
   }
 }


Amatör programmerare Pettersson
Medlem i Värnamo Modelljärnvägsförening
Medlem i FREMO
Medlem i ModulSyd

Bygger modelljärnväg i modulform:
Byggtrådar:
Kristineberg Lastplats område
Endlösa Tråd & Metall - en slutmodul
Kristineberg Västra
Användarvisningsbild
LLJ
Inlägg: 4297
Blev medlem: 2012-05-08, 10:27

Re: Arduino projekt - Vägkorsning

Inlägg av LLJ »

Hej.

Tag bort semikolonen bakom parentesen på alla if-satser.

Du "slösar" med minne genom att använda variabler för att definiera I/O.
Det är inget problem vid små program, men när de blir lite större så måste man tänka på allt.

prova att skriva:
#define IR_D1 2
#define IR_D2a 3
#define IR_D2b 4
osv
Då stoppar kompilatorn in rätt värden utan att minne används.

OBS! inget semikolon på #define raderna.


För att använda LocoNet så måste man ladda hem några kodbibliotek och packa upp dem i rätt bibliotek i arduino-trädet, samt inkludera biblioteken i koden. LocoNet använder I/O D7 och D8.
I ditt fall vore det nog enklare att utgå från ett LocoNet exempel och lägga till din kod för styrning av vägövergången.

/Lars
Skriv svar

Återgå till "El, elektronik och programvara"