Hi there!
I keep getting these "not declared in this scope" errors, even though I am declaring these in the setup function, (which I thought made them global). But I've included them in the setup function or brfore the setup fonction and I get the same errors regardless It's like the compiler can't see them What am I doing wrong?
Thanks!
ERRORS:
C:\Users\Japper\Documents\Arduino\RobotGlove\RobotGlove\RobotGlove.ino: In function 'void loop()':
C:\Users\Japper\Documents\Arduino\RobotGlove\RobotGlove\RobotGlove.ino:34:7: error: 'Zbutton' was not declared in this scope
if (Zbutton == 1) // if z button is pressed 'Enter joystick CALIBRATION MODE'
^~~~~~~
C:\Users\Japper\Documents\Arduino\RobotGlove\RobotGlove\RobotGlove.ino:36:5: error: 'calmode' was not declared in this scope
calmode = 1; // calibration mode on
^~~~~~~
C:\Users\Japper\Documents\Arduino\RobotGlove\RobotGlove\RobotGlove.ino:36:5: note: suggested alternative: 'calloc'
calmode = 1; // calibration mode on
^~~~~~~
calloc
C:\Users\Japper\Documents\Arduino\RobotGlove\RobotGlove\RobotGlove.ino:39:7: error: 'calmode' was not declared in this scope
calmode = 0; // calibration mode off
^~~~~~~
C:\Users\Japper\Documents\Arduino\RobotGlove\RobotGlove\RobotGlove.ino:39:7: note: suggested alternative: 'calloc'
calmode = 0; // calibration mode off
^~~~~~~
calloc
C:\Users\Japper\Documents\Arduino\RobotGlove\RobotGlove\RobotGlove.ino:41:6: error: 'Cbutton' was not declared in this scope
Cbutton = 0; // reset c button state to NOT PRESSED
^~~~~~~
C:\Users\Japper\Documents\Arduino\RobotGlove\RobotGlove\RobotGlove.ino: At global scope:
C:\Users\Japper\Documents\Arduino\RobotGlove\RobotGlove\RobotGlove.ino:46:9: error: expected constructor, destructor, or type conversion before '(' token
While (calmode == 1) // while inCALIBRATION MODE. read the nunchuk and move the servo with the Y joystick position
^
C:\Users\Japper\Documents\Arduino\RobotGlove\RobotGlove\RobotGlove.ino:55:9: error: expected constructor, destructor, or type conversion before '(' token
While (calmode == 0) // while CALIBRATION MODE is OFF
^
C:\Users\Japper\Documents\Arduino\RobotGlove\RobotGlove\RobotGlove.ino:65:2: error: 'Zbutton' does not name a type
Zbutton = 0; // reset Z BUTTON state to "NOT PRESSED'
^~~~~~~
C:\Users\Japper\Documents\Arduino\RobotGlove\RobotGlove\RobotGlove.ino:66:2: error: 'Cbutton' does not name a type
Cbutton = 0; // reset C BUTTON state to 'NOT PRESSED'
^~~~~~~
C:\Users\Japper\Documents\Arduino\RobotGlove\RobotGlove\RobotGlove.ino:68:1: error: 'daPayload' does not name a type
daPayload=nunchuck_get_data(); // get more nunchuk data
^~~~~~~~~
C:\Users\Japper\Documents\Arduino\RobotGlove\RobotGlove\RobotGlove.ino:69:22: error: expected constructor, destructor, or type conversion before ';' token
nunchuk_print_data(); // go print the nunchuk data to the serial monitor for debugging ourposes
^
C:\Users\Japper\Documents\Arduino\RobotGlove\RobotGlove\RobotGlove.ino:70:5: error: expected declaration before '}' token
}
^
Multiple libraries were found for "Servo.h"
Used: C:\Users\Japper\Documents\Arduino\libraries\Servo
Not used: C:\Users\Japper\AppData\Local\Arduino15\libraries\Servo
exit status 1
Compilation error: 'Zbutton' was not declared in this scope
CODE:
```
#include <Servo.h>
#include <Wire.h>
///////////////////////////////
// ----RobotGlove.ino ==== //
//////////////////////////////
Servo servo; // Define servo
void setup() {
int nunchuk_buf[6]; // array to storenunchuk data,
int MaxServ = 0; // maximum servo pos
int MinServ = 0; // minimum servo pos
int ServPos = 0; // actual servo pos
int calmode = 0; // 1 =RUN mode, 0 = CALIBRATE mode
int Zbutton = 0; // nunchuk Z BUTTON, 1 = pressed, 0= not pressed
int Cbutton = 0; // nunchuk C BUTTON, 1 = pressed, 0= not pressed
int daPayload; // data received from nunchuk, 0= failed , 2= succedded
Wire.begin();
servo.attach(11); // Set servo to digital pin 11
}
//------------------------------- END OF SETUP --------------------------------
void loop()
{
Wire.beginTransmission(0x52); // transmit to nunchuk device 0x52
Wire.write(0x40); // send the nunchuk memory address
Wire.write(0x00); // send the nunchuk a zero to request data.
Wire.endTransmission(); // stop transmitting
Serial.begin(19200); // Set up serial port fot thr serial monitor for debugging purposes
if (Zbutton == 1) // if z button is pressed 'Enter joystick CALIBRATION MODE'
{
calmode = 1; // calibration mode on
}
else {
calmode = 0; // calibration mode off
Zbutton = 0; // reset z button state to NOT PRESSED
Cbutton = 0; // reset c button state to NOT PRESSED
}
}
While (calmode == 1) // while inCALIBRATION MODE. read the nunchuk and move the servo with the Y joystick position
{
daPayload=nunchuck_get_data(); // go get the nunchuk data
nunchuk_print_data(); // go print the nunchuk data to the serial monitor for debugging ourposes
delay(500); // allow for settling time
if (Cbutton == 1) // if c button is pressed 'Exit joystick CALIBRATION MODE', and enter RUN MODE where the servo is continually { // cycled between the maximum to minimum automatically based on CALIBEATION MODE measured limits
calmode = 0;
}
While (calmode == 0) // while CALIBRATION MODE is OFF
{
daPayload=nunchuck_get_data(); // get more data from the nunchuk
nunchuk_print_data(); // set to print the newnunchuk data to the serial monitor for debugging purposes
delay(500); // wait for settling time
if (Zbutton == 1) // if z button is pressed 'Enter joystick CALIBRATION MODE again'
{
calmode = 1; // CALIBRATION MODE is ON
}
}
Zbutton = 0; // reset Z BUTTON state to "NOT PRESSED'
Cbutton = 0; // reset C BUTTON state to 'NOT PRESSED'
daPayload=nunchuck_get_data(); // get more nunchuk data
nunchuk_print_data(); // go print the nunchuk data to the serial monitor for debugging ourposes
}
delay(500); // allow for settling time
} // ======================= END OF LOOP=============
```