I would like to reference some variables in a for loop:
int R1 = 0;
int R2 = 1;
int R3 = 2;
int R4 = 3;
int R5 = 4;
int R6 = 5;
int R7 = 6;
int R8 = 7;
void setup() {
}
void loop() {
for (int i = 1; i < 9;) {
int x = R(i);
if (x > 0) {
Serial.print(x);
delay(200);
} else {
Serial.println("nothing");
}
} i++;
}
I want int x to refernce the global variables R1-8 whilst incrementing the for loop,
is it possible to do it in a for loop?
Google ‘Arduino array’.
The Arduino programming language Reference, organized into Functions, Variable and Constant, and Structure keywords.
byte r[] = {0,1,2,3,4,5,6,7};
i++; Why ?
for (int i = 1; i < 9; i++)
pcbbc
May 1, 2020, 5:18pm
3
larryd:
i++; Why ?
Indeed.
And certainly not outside of the for loop!
larryd:
Google ‘Arduino array’.
i++; Why ?
Don't really know - i was looking to implement a break if the condition wasn't met.
this is what ive got so far:
void engineSettings() {
int R[7];
int R2[7];
simc.println("AT+CMGR=1");
delay(1000);
if (simc.find("#")) {
TTL = simc.parseInt();
Serial.println(TTL);
TTH = simc.parseInt();
Serial.println(TTH);
TTC = simc.parseInt();
Serial.println(TTC);
CDR = simc.parseInt();
Serial.println(CDR);
CYL = simc.parseInt();
Serial.println(CYL);
MCD = simc.parseInt();
Serial.println(MCD);
LBT = simc.parseInt();
Serial.println(LBT);
//EEPROM WRITE
}
if (simc.find("1AUTO")) {
BH1 = simc.parseInt();
BM1 = simc.parseInt();
EH1 = simc.parseInt();
EM1 = simc.parseInt();
for (int i = 0; i < 7;) {
R[i] = simc.parseInt();
if (R[i] > 0 && R[i] < 8) {
i++;
} else {
simc.print("AT+CALA=\"");simc.print(BH1);simc.print(":");simc.print(BM1);simc.print(":00\""",1"); simc.print(",");simc.println(R[0]);
simReply();
simc.print("AT+CALA=\"");simc.print(EH1);simc.print(":");simc.print(EM1);simc.print(":00\""",3"); simc.print(",");simc.println(R[0]);
simReply();
break;
}
}
simc.print("AT+CALA=\"");simc.print(BH1);simc.print(":");simc.print(BM1);simc.print(":00\""",1");
for (int i = 0; i < 7;) {
if (R[i] > 0 && R[i] < 8) {
simc.print(",");simc.print(R[i]);
} else {
break;
}
simc.println();
simReply();
} simc.print("AT+CALA=\"");simc.print(EH1);simc.print(":");simc.print(EM1);simc.print(":00\""",3");
for (int i = 0; i < 7;) {
if (R[i] > 0 && R[i] < 8) {
simc.print(",");simc.print(R[i]);
} else {
break;
}
simc.println();
simReply();
}
it has compiled but its chewing up the memory, is there any way to combine the serial.prints?
int R[8] = {0, 1, 2, 3, 4, 5, 6, 7};
void setup() {
Serial.begin(9600);
}
void loop() {
for (int i = 0; i < 8; i++) {
int x = R[i];
if (x > 0) {
Serial.println(x);
delay(200);
} else {
Serial.println("nothing");
}
}
}