Hello there. I'm working on an arduino nano project, however I am completely new to arduino programing and have a problem.
I am trying to use a for loop the following way:
for (LValue = 0; LValue < 16; LValue++){}
For what I understand, it should be increasing LValue by 1 and running the code inside it until LValue reaches 15 and then the loop should end. But with my code inside it doesn't. If I add Serial.println(LValue); to the loop, LValue is 0, then 2 and remains 2 forever. Nothing inside the loop has anything to do with LValue. Please tell me what I'm missing because it's driving me crazy.
Thank you in advance.
P. S. here's the entire code if that helps:
void setup() {
// put your setup code here, to run once:
#define US_0 2
#define US_1 3
#define US_2 4
#define US_3 5
#define LS_0 12
#define LS_1 11
#define LS_2 10
#define LS_3 9
#define EN_1 8
#define EN_2 7
#define EN_3 6
#define SIG_1 A1
#define SIG_2 A2
#define SIG_3 A3
#define BTN A0
pinMode(US_0, OUTPUT);
pinMode(US_1, OUTPUT);
pinMode(US_2, OUTPUT);
pinMode(US_3, OUTPUT);
pinMode(LS_0, OUTPUT);
pinMode(LS_1, OUTPUT);
pinMode(LS_2, OUTPUT);
pinMode(LS_3, OUTPUT);
pinMode(EN_1, OUTPUT);
pinMode(EN_2, OUTPUT);
pinMode(EN_3, OUTPUT);
Serial.begin(9600);
Serial.println("Start");
}
void loop() {
// put your main code here, to run repeatedly:
int UValue = 0;
int LValue;
if (analogRead(BTN) > 1000){
Serial.println("btn");
int Delay = 50;
int RNumber;
digitalWrite(EN_1, HIGH);
digitalWrite(EN_2, HIGH);
digitalWrite(EN_3, HIGH);
delay(Delay);
int LNumber = 1 ; //Number of left pin
RNumber = 1 ; //Number of right pin
//----------
for (UValue = 0; UValue < 16; ++UValue){
Serial.println("uv");
if (UValue = 1){
digitalWrite(US_0, LOW);
digitalWrite(US_1, LOW);
digitalWrite(US_2, LOW);
digitalWrite(US_3, LOW);
Serial.println("uv1");
}
else if (UValue = 2){
digitalWrite(US_0, HIGH);
digitalWrite(US_1, LOW);
digitalWrite(US_2, LOW);
digitalWrite(US_3, LOW);
Serial.println("uv2");
}
else if (UValue = 3){
digitalWrite(US_0, LOW);
digitalWrite(US_1, HIGH);
digitalWrite(US_2, LOW);
digitalWrite(US_3, LOW);
Serial.println("uv3");
}
else if (UValue = 4){
digitalWrite(US_0, HIGH);
digitalWrite(US_1, HIGH);
digitalWrite(US_2, LOW);
digitalWrite(US_3, LOW);
}
else if (UValue = 5){
digitalWrite(US_0, LOW);
digitalWrite(US_1, LOW);
digitalWrite(US_2, HIGH);
digitalWrite(US_3, LOW);
}
else if (UValue = 6){
digitalWrite(US_0, HIGH);
digitalWrite(US_1, LOW);
digitalWrite(US_2, HIGH);
digitalWrite(US_3, LOW);
}
else if (UValue = 7){
digitalWrite(US_0, LOW);
digitalWrite(US_1, HIGH);
digitalWrite(US_2, HIGH);
digitalWrite(US_3, LOW);
}
else if (UValue = 8){
digitalWrite(US_0, HIGH);
digitalWrite(US_1, HIGH);
digitalWrite(US_2, HIGH);
digitalWrite(US_3, LOW);
}
else if (UValue = 9){
digitalWrite(US_0, LOW);
digitalWrite(US_1, LOW);
digitalWrite(US_2, LOW);
digitalWrite(US_3, HIGH);
}
else if (UValue = 10){
digitalWrite(US_0, HIGH);
digitalWrite(US_1, LOW);
digitalWrite(US_2, LOW);
digitalWrite(US_3, HIGH);
}
else if (UValue = 11){
digitalWrite(US_0, LOW);
digitalWrite(US_1, HIGH);
digitalWrite(US_2, LOW);
digitalWrite(US_3, HIGH);
}
else if (UValue = 12){
digitalWrite(US_0, HIGH);
digitalWrite(US_1, HIGH);
digitalWrite(US_2, LOW);
digitalWrite(US_3, HIGH);
}
else if (UValue = 13){
digitalWrite(US_0, LOW);
digitalWrite(US_1, LOW);
digitalWrite(US_2, HIGH);
digitalWrite(US_3, HIGH);
}
else if (UValue = 14){
digitalWrite(US_0, HIGH);
digitalWrite(US_1, LOW);
digitalWrite(US_2, HIGH);
digitalWrite(US_3, HIGH);
}
else if (UValue = 15){
digitalWrite(US_0, LOW);
digitalWrite(US_1, HIGH);
digitalWrite(US_2, HIGH);
digitalWrite(US_3, HIGH);
}
else if (UValue = 16){
digitalWrite(US_0, HIGH);
digitalWrite(US_1, HIGH);
digitalWrite(US_2, HIGH);
digitalWrite(US_3, HIGH);
Serial.println("uv16");
}
RNumber = 1;
for (LValue = 0; LValue < 16; LValue++){ // HERE IT IS !!!
Serial.println("lv");
Serial.println(LValue);
if (LValue = 1){
digitalWrite(LS_0, LOW);
digitalWrite(LS_1, LOW);
digitalWrite(LS_2, LOW);
digitalWrite(LS_3, LOW);
Serial.println("lv1");
}
else if (LValue = 2){
digitalWrite(LS_0, HIGH);
digitalWrite(LS_1, LOW);
digitalWrite(LS_2, LOW);
digitalWrite(LS_3, LOW);
Serial.println("lv2");
}
else if (LValue = 3){
digitalWrite(LS_0, LOW);
digitalWrite(LS_1, HIGH);
digitalWrite(LS_2, LOW);
digitalWrite(LS_3, LOW);
}
else if (LValue = 4){
digitalWrite(LS_0, HIGH);
digitalWrite(LS_1, HIGH);
digitalWrite(LS_2, LOW);
digitalWrite(LS_3, LOW);
}
else if (LValue = 5){
digitalWrite(LS_0, LOW);
digitalWrite(LS_1, LOW);
digitalWrite(LS_2, HIGH);
digitalWrite(LS_3, LOW);
}
else if (LValue = 6){
digitalWrite(LS_0, HIGH);
digitalWrite(LS_1, LOW);
digitalWrite(LS_2, HIGH);
digitalWrite(LS_3, LOW);
}
else if (LValue = 7){
digitalWrite(LS_0, LOW);
digitalWrite(LS_1, HIGH);
digitalWrite(LS_2, HIGH);
digitalWrite(LS_3, LOW);
}
else if (LValue = 8){
digitalWrite(LS_0, HIGH);
digitalWrite(LS_1, HIGH);
digitalWrite(LS_2, HIGH);
digitalWrite(LS_3, LOW);
}
else if (LValue = 9){
digitalWrite(LS_0, LOW);
digitalWrite(LS_1, LOW);
digitalWrite(LS_2, LOW);
digitalWrite(LS_3, HIGH);
}
else if (LValue = 10){
digitalWrite(LS_0, HIGH);
digitalWrite(LS_1, LOW);
digitalWrite(LS_2, LOW);
digitalWrite(LS_3, HIGH);
}
else if (LValue = 11){
digitalWrite(LS_0, LOW);
digitalWrite(LS_1, HIGH);
digitalWrite(LS_2, LOW);
digitalWrite(LS_3, HIGH);
}
else if (LValue = 12){
digitalWrite(LS_0, HIGH);
digitalWrite(LS_1, HIGH);
digitalWrite(LS_2, LOW);
digitalWrite(LS_3, HIGH);
}
else if (LValue = 13){
digitalWrite(LS_0, LOW);
digitalWrite(LS_1, LOW);
digitalWrite(LS_2, HIGH);
digitalWrite(LS_3, HIGH);
}
else if (LValue = 14){
digitalWrite(LS_0, HIGH);
digitalWrite(LS_1, LOW);
digitalWrite(LS_2, HIGH);
digitalWrite(LS_3, HIGH);
}
else if (LValue = 15){
digitalWrite(LS_0, LOW);
digitalWrite(LS_1, HIGH);
digitalWrite(LS_2, HIGH);
digitalWrite(LS_3, HIGH);
}
else if (LValue = 16){
digitalWrite(LS_0, HIGH);
digitalWrite(LS_1, HIGH);
digitalWrite(LS_2, HIGH);
digitalWrite(LS_3, HIGH);
Serial.println("lv16");
}
delay(Delay);
digitalWrite(EN_1, LOW);
delay(Delay);
if (analogRead(SIG_1) > 5){
Serial.println(LNumber);
Serial.println(RNumber);
Serial.println(analogRead(SIG_1));
Serial.println("---");
}
if (analogRead(SIG_2) > 5){
Serial.println(LNumber + 1);
Serial.println(RNumber);
Serial.println(analogRead(SIG_2));
Serial.println("---");
}
if (analogRead(SIG_3) > 5){
Serial.println(LNumber + 2);
Serial.println(RNumber);
Serial.println(analogRead(SIG_3));
Serial.println("---");
}
++RNumber;
digitalWrite(EN_1, HIGH);
digitalWrite(EN_2, LOW);
delay(Delay);
if (analogRead(SIG_1) > 5){
Serial.println(LNumber);
Serial.println(RNumber);
Serial.println(analogRead(SIG_1));
Serial.println("---");
}
if (analogRead(SIG_2) > 5){
Serial.println(LNumber + 1);
Serial.println(RNumber);
Serial.println(analogRead(SIG_2));
Serial.println("---");
}
if (analogRead(SIG_3) > 5){
Serial.println(LNumber + 2);
Serial.println(RNumber);
Serial.println(analogRead(SIG_3));
Serial.println("---");
}
++RNumber;
digitalWrite(EN_2, HIGH);
digitalWrite(EN_3, LOW);
delay(Delay);
if (analogRead(SIG_1) > 5){
Serial.println(LNumber);
Serial.println(RNumber);
Serial.println(analogRead(SIG_1));
Serial.println("---");
}
if (analogRead(SIG_2) > 5){
Serial.println(LNumber + 1);
Serial.println(RNumber);
Serial.println(analogRead(SIG_2));
Serial.println("---");
}
if (analogRead(SIG_3) > 5){
Serial.println(LNumber + 2);
Serial.println(RNumber);
Serial.println(analogRead(SIG_3));
Serial.println("---");
}
++RNumber;
digitalWrite(EN_3, HIGH);
}
++LNumber;
++LNumber;
++LNumber;
}
Serial.println("End");
delay(10000);
}
}