[Problem solved] Last boolean in array of 5 behaving weirdly
hey, people,
i've got problem weirdly behaving boolean in array (or i'm doing rong): last boolean in array of 5 booleans gives me random numbers when print serial monitor.
hardware: 5 keys different resistors hooked parallel between 5v , gnd , fed a0 complete pulldown resistor. in short, analog 5 key input thingy.
the first 2 keys switch through menu of 5 items, 3rd key toggles boolean corresponding item. booleans have been declared array of 5. whenever key pressed, desired work done , sketch prints relevant information serial monitor except:
the first 4 booleans work nicely, last 1 contains *random numbers* (and really, random!)
now on sm, relevant numbers 182, 24, 131 contained tuer[5] boolean:
if 5th item selected , press 3rd key boolean tuer[5] after "tuer-status:" randomly set 0 or 1 , won't toggle; last number, supposed display same boolean gives me 19 or 20.
what gives? missing? i'm doing rong hey, started out less week ago... half dozen free internets can tell me why last 1 of 5 bools in array messes up!
greetings germany
daskraut
i've got problem weirdly behaving boolean in array (or i'm doing rong): last boolean in array of 5 booleans gives me random numbers when print serial monitor.
hardware: 5 keys different resistors hooked parallel between 5v , gnd , fed a0 complete pulldown resistor. in short, analog 5 key input thingy.
the first 2 keys switch through menu of 5 items, 3rd key toggles boolean corresponding item. booleans have been declared array of 5. whenever key pressed, desired work done , sketch prints relevant information serial monitor except:
the first 4 booleans work nicely, last 1 contains *random numbers* (and really, random!)
code: [select]
int taster=a0;
int tasterwert=0;
int taste=0;
int item=1;
boolean tuer[5]={0,0,0,0,0};
void setup()
{
serial.begin(9600);
serial.print("item: ");
serial.println(item);
serial.println();
}
int input()
{
tasterwert=analogread(taster);
//map won't work, selected rong resistor values
if(tasterwert>925 && tasterwert<935) taste=1;
else if(tasterwert>505 && tasterwert<515) taste=2;
else if(tasterwert>290 && tasterwert<300) taste=3;
else if(tasterwert>165 && tasterwert<175) taste=4;
else if(tasterwert>85 && tasterwert<95) taste=5;
return taste;
}
void loop()
{
while(analogread(taster)!=0)
{
input();
if(taste==2) item=item+1;
if(taste==1) item=item-1;
if(item==6) item=1;
if (item==0) item=5;
serial.print("tasterwert: ");
serial.println(tasterwert);
serial.print("taste: ");
serial.println(taste);
serial.print("item: ");
serial.println(item);
//here toggle booleans in array
if(taste==3) tuer[item] = !tuer[item];
serial.print("tuer-status: ");
//here weirdness item 5
serial.println(tuer[item]);
serial.println();
serial.println("tuer-status 1-5: ");
serial.println(tuer[1]);
serial.println(tuer[2]);
serial.println(tuer[3]);
serial.println(tuer[4]);
//here more weirdiousity item 5
serial.println(tuer[5]);
serial.println();
delay(500);
}
}
now on sm, relevant numbers 182, 24, 131 contained tuer[5] boolean:
quote
tasterwert: 512
taste: 2
item: 2
tuer-status: 0
tuer-status 1-5:
0
0
0
0
182
tasterwert: 512
taste: 2
item: 3
tuer-status: 0
tuer-status 1-5:
0
0
0
0
24
tasterwert: 930
taste: 1
item: 2
tuer-status: 0
tuer-status 1-5:
0
0
0
0
131
if 5th item selected , press 3rd key boolean tuer[5] after "tuer-status:" randomly set 0 or 1 , won't toggle; last number, supposed display same boolean gives me 19 or 20.
what gives? missing? i'm doing rong hey, started out less week ago... half dozen free internets can tell me why last 1 of 5 bools in array messes up!
greetings germany
daskraut
in arduino world arrays 0 based. taste should 0 4 not 1 5.
Arduino Forum > Using Arduino > Programming Questions > [Problem solved] Last boolean in array of 5 behaving weirdly
arduino
Comments
Post a Comment