Arduino ide not declared in scope 问题
Arduino ide not declared in scope problem
你好,我正在为坦克制作无线电控制器,但我对操纵杆代码有疑问。每次当我在 Serial.print('JR') 中遇到同样的问题时 ('JR' was not declared in this scope);线。我对arduino没有太多经验,所以很容易解决问题。有人可以帮我吗?
---------------------------------------------- ---------------------------------------------- ---------------------------------------------- ---------------------------------------------- ----------
#define K10 14
#define K11 15
#define JRY A2
#define JRX A3
#define JLY A4
#define JLX A5
void setup() {
pinMode(K10, INPUT_PULLUP);
pinMode(K11, INPUT_PULLUP);
pinMode(JRY, INPUT);
pinMode(JRX, INPUT);
pinMode(JLY, INPUT);
pinMode(JLX, INPUT);
bool K10Run = false;
bool K11Run = false;
int JR = 5;
int JL = 5;
Serial.begin(9600);
}
void loop() {
if ( digitalRead(K10) == LOW ){
bool K10Run = true;
} else {
bool K10Run = false;
}
if ( digitalRead(K11) == LOW ){
bool K11Run = true;
} else {
bool K11Run = false;
}
if ( analogRead(JRY) < 1100 ) { //
JR = 1; //przód
} else if ( analogRead(JRY) > 1900 ){
JR = 2; //tył
} else if ( analogRead(JRX) < 1100 ){
JR = 3; //lewo
} else if ( analogRead(JRX) > 1900 ){
JR = 4; //prawo
} else {
JR = 5; //stop
}
if ( analogRead(JLY) < 1100 ) {
JL = 1; //przód
} else if ( analogRead(JLY) > 1900 ){
JL = 2; //tył
} else if ( analogRead(JLX) < 1100 ){
JL = 3; //lewo
} else if ( analogRead(JLX) > 1900 ){
JL = 4; //prawo
} else {
JL = 5; //stop
}
Serial.print(JR);
Serial.print("\t");
Serial.print(JL);
Serial.print("\t");
Serial.print(K10Run);
Serial.print("\t");
Serial.print(K11Run);
Serial.print("\t");
delay(100);
}
您的问题是您在无效设置中将 JR 声明为局部变量。如果要在 void loop() 中使用,则必须将其声明为全局变量。其他的也会有同样的问题,所以你必须对JR、JL、K10等做同样的事情...
您可以试试这个代码:
#define K10 14
#define K11 15
#define JRY A2
#define JRX A3
#define JLY A4
#define JLX A5
bool K10Run = false;
bool K11Run = false;
int JR = 5;
int JL = 5;
void setup() {
pinMode(K10, INPUT_PULLUP);
pinMode(K11, INPUT_PULLUP);
pinMode(JRY, INPUT);
pinMode(JRX, INPUT);
pinMode(JLY, INPUT);
pinMode(JLX, INPUT);
Serial.begin(9600);
}
void loop() {
if ( digitalRead(K10) == LOW ){
K10Run = true;
} else {
K10Run = false;
}
if ( digitalRead(K11) == LOW ){
K11Run = true;
} else {
K11Run = false;
}
if ( analogRead(JRY) < 1100 ) { //
JR = 1; //przód
} else if ( analogRead(JRY) > 1900 ){
JR = 2; //tył
} else if ( analogRead(JRX) < 1100 ){
JR = 3; //lewo
} else if ( analogRead(JRX) > 1900 ){
JR = 4; //prawo
} else {
JR = 5; //stop
}
if ( analogRead(JLY) < 1100 ) {
JL = 1; //przód
} else if ( analogRead(JLY) > 1900 ){
JL = 2; //tył
} else if ( analogRead(JLX) < 1100 ){
JL = 3; //lewo
} else if ( analogRead(JLX) > 1900 ){
JL = 4; //prawo
} else {
JL = 5; //stop
}
Serial.print(JR);
Serial.print("\t");
Serial.print(JL);
Serial.print("\t");
Serial.print(K10Run);
Serial.print("\t");
Serial.print(K11Run);
Serial.print("\t");
delay(100);
}
你好,我正在为坦克制作无线电控制器,但我对操纵杆代码有疑问。每次当我在 Serial.print('JR') 中遇到同样的问题时 ('JR' was not declared in this scope);线。我对arduino没有太多经验,所以很容易解决问题。有人可以帮我吗? ---------------------------------------------- ---------------------------------------------- ---------------------------------------------- ---------------------------------------------- ----------
#define K10 14
#define K11 15
#define JRY A2
#define JRX A3
#define JLY A4
#define JLX A5
void setup() {
pinMode(K10, INPUT_PULLUP);
pinMode(K11, INPUT_PULLUP);
pinMode(JRY, INPUT);
pinMode(JRX, INPUT);
pinMode(JLY, INPUT);
pinMode(JLX, INPUT);
bool K10Run = false;
bool K11Run = false;
int JR = 5;
int JL = 5;
Serial.begin(9600);
}
void loop() {
if ( digitalRead(K10) == LOW ){
bool K10Run = true;
} else {
bool K10Run = false;
}
if ( digitalRead(K11) == LOW ){
bool K11Run = true;
} else {
bool K11Run = false;
}
if ( analogRead(JRY) < 1100 ) { //
JR = 1; //przód
} else if ( analogRead(JRY) > 1900 ){
JR = 2; //tył
} else if ( analogRead(JRX) < 1100 ){
JR = 3; //lewo
} else if ( analogRead(JRX) > 1900 ){
JR = 4; //prawo
} else {
JR = 5; //stop
}
if ( analogRead(JLY) < 1100 ) {
JL = 1; //przód
} else if ( analogRead(JLY) > 1900 ){
JL = 2; //tył
} else if ( analogRead(JLX) < 1100 ){
JL = 3; //lewo
} else if ( analogRead(JLX) > 1900 ){
JL = 4; //prawo
} else {
JL = 5; //stop
}
Serial.print(JR);
Serial.print("\t");
Serial.print(JL);
Serial.print("\t");
Serial.print(K10Run);
Serial.print("\t");
Serial.print(K11Run);
Serial.print("\t");
delay(100);
}
您的问题是您在无效设置中将 JR 声明为局部变量。如果要在 void loop() 中使用,则必须将其声明为全局变量。其他的也会有同样的问题,所以你必须对JR、JL、K10等做同样的事情...
您可以试试这个代码:
#define K10 14
#define K11 15
#define JRY A2
#define JRX A3
#define JLY A4
#define JLX A5
bool K10Run = false;
bool K11Run = false;
int JR = 5;
int JL = 5;
void setup() {
pinMode(K10, INPUT_PULLUP);
pinMode(K11, INPUT_PULLUP);
pinMode(JRY, INPUT);
pinMode(JRX, INPUT);
pinMode(JLY, INPUT);
pinMode(JLX, INPUT);
Serial.begin(9600);
}
void loop() {
if ( digitalRead(K10) == LOW ){
K10Run = true;
} else {
K10Run = false;
}
if ( digitalRead(K11) == LOW ){
K11Run = true;
} else {
K11Run = false;
}
if ( analogRead(JRY) < 1100 ) { //
JR = 1; //przód
} else if ( analogRead(JRY) > 1900 ){
JR = 2; //tył
} else if ( analogRead(JRX) < 1100 ){
JR = 3; //lewo
} else if ( analogRead(JRX) > 1900 ){
JR = 4; //prawo
} else {
JR = 5; //stop
}
if ( analogRead(JLY) < 1100 ) {
JL = 1; //przód
} else if ( analogRead(JLY) > 1900 ){
JL = 2; //tył
} else if ( analogRead(JLX) < 1100 ){
JL = 3; //lewo
} else if ( analogRead(JLX) > 1900 ){
JL = 4; //prawo
} else {
JL = 5; //stop
}
Serial.print(JR);
Serial.print("\t");
Serial.print(JL);
Serial.print("\t");
Serial.print(K10Run);
Serial.print("\t");
Serial.print(K11Run);
Serial.print("\t");
delay(100);
}