Hi!
First of all, I apologize for my English, I'm from Portugal.
I'm a newbie on Arduino, and I am trying to build a Motorcycle Current Gear Indicator with a 7-segment display, 3 sensors (pedal +; pedal -; Neutral).
I've written this code but my arduino hasn't arrived yet, could you see if the code makes sense for the purpose?
Thank you all
/*
MOTORCYCLE SHIFT INDICATOR
by Filipe Dias
Pins:
D2 - 7 (A)
D3 - 6 (B)
D4 - 4 (C)
D5 - 2 (D)
D6 - 1 (E)
D7 - 9 (F)
D8 - 10 (G)
D9 - 5 (DP)
D10 - Neutral Switch
D11 - Sensor +
D12 - Sensor -
*/
void setup() {
// Define Pins
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, INPUT_PULLUP);
pinMode(11, INPUT_PULLUP);
pinMode(12, INPUT_PULLUP);
// All leds test
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
delay(1000);
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(1000);
}
void loop(){
byte mudanca=7;
// Display waiting for neutral, all leds off
while (mudanca=7){
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
if (digitalRead(10)==LOW){
byte mudanca = 0;
delay(100);
break;
}
}
// Neutral position
while (byte mudanca=0){
if(digitalRead(11)==LOW){
byte mudanca = 2;
delay(100);
break;
}
if(digitalRead(12)==LOW){
byte mudanca = 1;
delay(100);
break;
}
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
}
// 1st Gear
while (byte mudanca=1){
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
if(digitalRead(10)==LOW){
byte mudanca = 0;
delay(100);
break;
}
}
// 2nd Gear
while (byte mudanca=2){
if(digitalRead(11)==LOW){
byte mudanca = 3;
delay(100);
break;
}
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
if(digitalRead(10)==LOW){
byte mudanca = 0;
delay(100);
break;
}
}
// 3rd Gear
while (byte mudanca=3){
if(digitalRead(11)==LOW){
byte mudanca = 4;
delay(100);
break;
}
if(digitalRead(12)==LOW){
byte mudanca = 2;
delay(100);
break;
}
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
}
// 4th Gear
while (byte mudanca=4){
if(digitalRead(11)==LOW){
byte mudanca = 5;
delay(100);
break;
}
if(digitalRead(12)==LOW){
byte mudanca = 3;
delay(100);
break;
}
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
}
// 5th Gear
while (byte mudanca=5){
if(digitalRead(11)==LOW){
byte mudanca = 6;
delay(100);
break;
}
if(digitalRead(12)==LOW){
byte mudanca = 4;
delay(100);
break;
}
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
}
// 6th Gear
while (byte mudanca=6){
if(digitalRead(12)==LOW){
byte mudanca = 5;
delay(100);
break;
}
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
}
}