Arduino ide未在作用域中声明问题

Arduino ide未在作用域中声明问题,arduino,arduino-ide,Arduino,Arduino Ide,您好,我正在为坦克制作无线电控制器,但操纵杆代码有问题。每次当我在Serial.print('JR')中遇到相同的问题时('JR'未在此范围内声明);线路。我对arduino没有太多的经验,所以解决这个问题很容易。有人能帮我吗? ---------------------------------------------------------------------------------------------------------------------------------------

您好,我正在为坦克制作无线电控制器,但操纵杆代码有问题。每次当我在Serial.print('JR')中遇到相同的问题时('JR'未在此范围内声明);线路。我对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);

}
#定义K10 14
#定义K11 15
#定义jrya2
#定义JRX A3
#定义JLY A4
#定义JLX A5
无效设置(){
pinMode(K10,输入\上拉);
pinMode(K11,输入\上拉);
pinMode(JRY,输入);
pinMode(JRX,输入);
pinMode(JLY,输入);
pinMode(JLX,输入);
bool K10Run=false;
bool K11Run=false;
int JR=5;
int JL=5;
Serial.begin(9600);
}
void循环(){
如果(数字读取(K10)=低){
bool K10Run=true;
}否则{
bool K10Run=false;
}
如果(数字读取(K11)=低){
bool K11Run=true;
}否则{
bool K11Run=false;
}
如果(模拟读取(JRY)<1100){//
JR=1;//przód
}否则如果(模拟读数(JRY)>1900){
JR=2;//tył
}否则如果(模拟读取(JRX)<1100){
JR=3;//卢沃
}否则如果(模拟读数(JRX)>1900){
JR=4;//普拉沃
}否则{
JR=5;//停止
}
if(模拟读数(JLY)<1100){
JL=1;//przód
}否则如果(类比读数(JLY)>1900){
JL=2;//tył
}否则如果(模拟读取(JLX)<1100){
JL=3;//lewo
}否则如果(模拟读取(JLX)>1900){
JL=4;//prawo
}否则{
JL=5;//停止
}
连续打印(JR);
串行打印(“\t”);
串行打印(JL);
串行打印(“\t”);
串行打印(K10Run);
串行打印(“\t”);
串行打印(K11Run);
串行打印(“\t”);
延迟(100);
}

您的问题是在void设置中将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);

}
#定义K10 14
#定义K11 15
#定义jrya2
#定义JRX A3
#定义JLY A4
#定义JLX A5
bool K10Run=false;
bool K11Run=false;
int JR=5;
int JL=5;
无效设置(){
pinMode(K10,输入\上拉);
pinMode(K11,输入\上拉);
pinMode(JRY,输入);
pinMode(JRX,输入);
pinMode(JLY,输入);
pinMode(JLX,输入);
Serial.begin(9600);
}
void循环(){
如果(数字读取(K10)=低){
K10Run=true;
}否则{
K10Run=false;
}
如果(数字读取(K11)=低){
K11Run=真;
}否则{
K11Run=假;
}
如果(模拟读取(JRY)<1100){//
JR=1;//przód
}否则如果(模拟读数(JRY)>1900){
JR=2;//tył
}否则如果(模拟读取(JRX)<1100){
JR=3;//卢沃
}否则如果(模拟读数(JRX)>1900){
JR=4;//普拉沃
}否则{
JR=5;//停止
}
if(模拟读数(JLY)<1100){
JL=1;//przód
}否则如果(类比读数(JLY)>1900){
JL=2;//tył
}否则如果(模拟读取(JLX)<1100){
JL=3;//lewo
}否则如果(模拟读取(JLX)>1900){
JL=4;//prawo
}否则{
JL=5;//停止
}
连续打印(JR);
串行打印(“\t”);
串行打印(JL);
串行打印(“\t”);
串行打印(K10Run);
串行打印(“\t”);
串行打印(K11Run);
串行打印(“\t”);
延迟(100);
}

JR
JL
仅在
设置中定义,但您试图在
循环中引用它们。您可能希望查找“C++中的变量范围”,以了解有关变量如何工作的基本信息。