@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