Was not declared in this scope что за ошибка arduino
Перейти к содержимому

Was not declared in this scope что за ошибка arduino

  • автор:

Arduino.ru

ЕвгенийП аватар

Вам же сказали «как положено». Идите в ЭТОТ раздел форума и ищите там тему про вставку кода, если сами не в состоянии слово code в шапке окна сообщения разглядеть.

  • Войдите на сайт для отправки комментариев

Пт, 04/05/2018 — 21:32
Зарегистрирован: 26.05.2017

я ж вам написал — вставьте код правильно! Кому нафик нужно читать эту простыню?

По делу — так и не увидел, где у вас обьявлена переменная results. Похоже, что нигде. Поэтому и ошибка.

Сдается мне, что вы этот код либо где-то скопировали неправильно, либо собрали из двух-трех других, плохо понимая, что вы делаете.

  • Войдите на сайт для отправки комментариев

Пт, 04/05/2018 — 21:34

Ворота аватар

Зарегистрирован: 10.01.2016
Viktor911 пишет:

«‘results’ was not declared in this scope поскажите что имеется ввиду?

Viktor911 пишет:

я новичек если че)

  • Войдите на сайт для отправки комментариев

Пт, 04/05/2018 — 21:37
Зарегистрирован: 04.05.2018

абсолютно верно вам сдается. написал с книжки к машине, плохо понимая что к чему. то что данная команда не возвращает в начало ясно, где не дописал? вроде все перепроверил, ничего не пропустил.

  • Войдите на сайт для отправки комментариев

Пт, 04/05/2018 — 21:56
Зарегистрирован: 26.05.2017
Viktor911 пишет:

то что данная команда не возвращает в начало

э-э-э, похоже у тебя еще и с английским проблемы, и в программировании ты не сечешь. Тогда я даж не знаю, чем тебе помочь. «Даннная команда» никуда возвращать не должна. Тебе компьютер пишет, что переменнная results не обьявлена — но, похоже, для тебя это ничего не значит.

Я для тебя вижу три варианта:

1) Если прокатит — скопировать код еще раз и хорошенько проверить, чтоб ничего не потерять.

2) Начать изучение программирования с более простоых программ — если не бросишь, через полгода-год дорастешь до уровня этого кода.

3) Забить на это дело

  • Войдите на сайт для отправки комментариев

Пт, 04/05/2018 — 22:02
Зарегистрирован: 04.05.2018

#include #include #include #define RECV_PIN 12 IRrecv irrecv(RECV_PIN); #define IR_Go 0x00ff629d #define IR_Back 0x00ffa857 #define IR_Left 0x00ff22dd #define IR_Right 0x00ffc23d #define IR_Stop 0x00ff02fd #define IR_Servo_L 0x00ff6897 #define IR_Servo_R 0x00ff9867 #define IR_Speed_UP 0x00ffb04f #define IR_Speed_DOWN 0x00ff30cf #define IR_XunJi_Mode 0x00ff18e7 #define IR_Self_Control 0x00ff7a85 #define IR_IR_Control 0x00ff10ef #define IR_Bluetooth_Control 0x00ff38c7 #define IR_ESC 0x00ff52ad ////////////////// #define SensorLeft 6 #define SensorMiddle 9 #define SensorRight 11 unsigned char SL; unsigned char SM; unsigned char SR; int inputPin=A0; int outputPin=A1; unsigned char Bluetooth_val; LiquidCrystal_I2C lcd(0x27,16,2); #define Lpwm_pin 5 #define Rpwm_pin 10 int pinLB=2; int pinLF=4; int pinRB=7; int pinRF=8; unsigned char Lpwm_val=250; unsigned char Rpwm_val=250; int Car_state=0; int servopin=3; int myangle; int pulsewidth; unsigned char DuoJiao=60; void Sensor_IO_Config() < pinMode(SensorLeft,INPUT); pinMode(SensorMiddle,INPUT); pinMode(SensorRight,INPUT); >void Sensor_Scan(void) < SL = digitalRead(SensorLeft); SM = digitalRead(SensorMiddle); SR = digitalRead(SensorRight); >void servopulse(int servopin,int myangle) < pulsewidth=(myangle*11)+500; digitalWrite(servopin,HIGH); delayMicroseconds(pulsewidth); digitalWrite(servopin,LOW); delay(20-pulsewidth/1000); >void Set_servopulse(int set_val) < for(int i=0;i<=10;i++) servopulse(servopin,set_val); >void M_Control_IO_config(void) < pinMode(pinLB,OUTPUT); pinMode(pinLF,OUTPUT); pinMode(pinRB,OUTPUT); pinMode(pinRF,OUTPUT); pinMode(Lpwm_pin,OUTPUT); pinMode(Rpwm_pin,OUTPUT); >void Set_Speed(unsigned char Left,unsigned char Right) < analogWrite(Lpwm_pin,Left); analogWrite(Rpwm_pin,Right); >void advance() < digitalWrite(pinRB,LOW); digitalWrite(pinRF,HIGH); digitalWrite(pinLB,LOW); digitalWrite(pinLF,HIGH); Car_state=1; show_state(); >void turnR() < digitalWrite(pinRB,LOW); digitalWrite(pinRF,HIGH); digitalWrite(pinLB,HIGH); digitalWrite(pinLF,LOW); Car_state=4; show_state(); >void turnL() < digitalWrite(pinRB,HIGH); digitalWrite(pinRF,LOW); digitalWrite(pinLB,LOW); digitalWrite(pinLF,HIGH); Car_state=3; show_state(); >void stopp() < digitalWrite(pinRB,HIGH); digitalWrite(pinRF,HIGH); digitalWrite(pinLB,HIGH); digitalWrite(pinLF,HIGH); Car_state=5; show_state(); >void back() < digitalWrite(pinRB,HIGH); digitalWrite(pinRF,LOW); digitalWrite(pinLB,HIGH); digitalWrite(pinLF,LOW); Car_state=2; show_state(); >void show_state(void) < lcd.setCursor(0,1); switch(Car_state) < case 1:lcd.print("Go ");Serial.print("\r\n GO"); break; case 2:lcd.print("Back ");Serial.print("\r\n Back"); break; case 3:lcd.print("Left ");Serial.print("\r\n Left"); break; case 4:lcd.print("Right ");Serial.print("\r\n Right"); break; case 5:lcd.print("Stop ");Serial.print("\r\n Stop"); break; default: break; >> void LCD1602_init(void) < lcd.init(); delay(10); lcd.backlight(); lcd.clear(); >void Show_V(unsigned char V) < lcd.setCursor(11,0); lcd.print("V= "); lcd.setCursor(13,0); lcd.print(V,DEC); Serial.print("\n Speed= "); Serial.print(V,DEC); >void Show_DuoJiao(unsigned char Jiao) < lcd. setCursor(6,1); lcd.print("C= "); lcd.setCursor(8,1); lcd.print(Jiao,DEC); Serial.print("\n JiaoDu= "); Serial.print(Jiao,DEC); >void Xunji_Mode(void) < lcd.setCursor(0,0); lcd.print("Xunji_Mode "); Sensor_Scan(); if(SM==HIGH) < if(SL==LOW&SR==HIGH) < turnR(); >else if(SR==LOW&SL==HIGH) < turnL(); >else < advance(); >> else < if(SL==LOW&SR==HIGH) < turnR(); >else if(SR==LOW&SL==HIGH) < turnL(); >else < back(); delay(100); stopp(); >> > void Self_Control(void) < int H; lcd.setCursor(0,0); lcd.print("Self_Ctr "); Show_V(Lpwm_val); Set_servopulse(DuoJiao); Show_DuoJiao(DuoJiao); H=Ultrasonic_Ranging(1); delay(300); if(Ultrasonic_Ranging(1)<35) < stopp(); delay(100); back(); delay(50); >if(Ultrasonic_Ranging(1)<60) < stopp(); delay(100); Set_servopulse(5); Show_DuoJiao(5); int L=ask_pin_L(2); delay(300); Set_servopulse(177); Show_DuoJiao(177); int R=ask_pin_R(3); delay(300); if(ask_pin_L(2)>ask_pin_R(3)) < back(); delay(100); turnL(); delay(400); stopp(); delay(50); Set_servopulse(DuoJiao); Show_DuoJiao(DuoJiao); H=Ultrasonic_Ranging(1); delay(500); >if(ask_pin_L(2) <=ask_pin_R(3)) < back(); delay(100); turnR(); delay(400); stopp(); delay(50); Set_servopulse(DuoJiao); Show_DuoJiao(DuoJiao); H=Ultrasonic_Ranging(1); delay(300); >if(ask_pin_L(2) <35&&ask_pin_R(3)<35) < stopp(); delay(50); back(); delay(50); >> else < advance(); >> int Ultrasonic_Ranging(unsigned char Mode) < int old_distance; digitalWrite(outputPin,LOW); delayMicroseconds(2); digitalWrite(outputPin,HIGH); delayMicroseconds(10); digitalWrite(outputPin,LOW); int distance=pulseIn(inputPin,HIGH); distance=distance/58; if(Mode==1) < lcd. setCursor(11,1); lcd.print("H= "); lcd.setCursor(13,1); lcd.print(distance,DEC); Serial.print("\n H= "); Serial.print(distance,DEC); return distance; >else return distance; > int ask_pin_L(unsigned char Mode) < int old_Ldistance; digitalWrite(outputPin,LOW); delayMicroseconds(2); digitalWrite(outputPin,HIGH); delayMicroseconds(10); digitalWrite(outputPin,LOW); int Ldistance=pulseIn(inputPin,HIGH); Ldistance=Ldistance/58; if(Mode==2) < lcd. setCursor(11,1); lcd.print("L= "); lcd.setCursor(13,1); lcd.print(Ldistance,DEC); Serial.print("\n L= "); Serial.print(Ldistance,DEC); return Ldistance; >else return Ldistance; > int ask_pin_R(unsigned char Mode) < int old_Rdistance; digitalWrite(outputPin,LOW); delayMicroseconds(2); digitalWrite(outputPin,HIGH); delayMicroseconds(10); digitalWrite(outputPin,LOW); int Rdistance=pulseIn(inputPin,HIGH); Rdistance=Rdistance/58; if(Mode==3) < lcd. setCursor(11,1); lcd.print("R= "); lcd.setCursor(13,1); lcd.print(Rdistance,DEC); Serial.print("\n R= "); Serial.print(Rdistance,DEC); return Rdistance; >else return Rdistance; > void IR_Control(void) < unsigned long Key; lcd.setCursor(0,0); lcd.print("IR_Ctr "); while(Key!=IR_ESC) < if(irrecv.decode(&results)) < Key=results.value; switch(Key) < case IR_Go:advance(); break; case IR_Back:back(); break; case IR_Left:turnL(); break; case IR_Right:turnR(); break; case IR_Stop:stopp(); break; case IR_Servo_L:if(DuoJiao<=180)< DuoJiao+=10; Set_servopulse(DuoJiao); Show_DuoJiao(DuoJiao);>break; case IR_Servo_R:if(DuoJiao-10>=0) < DuoJiao-=10; Set_servopulse(DuoJiao); Show_DuoJiao(DuoJiao);>break; case IR_Speed_UP:if(Rpwm_val+10 <=250&&Rpwm_val+10<=250)< Lpwm_val+=10;Rpwm_val+=10; Set_Speed(Lpwm_val,Rpwm_val); Show_V(Lpwm_val); >break; case IR_Speed_DOWN:if(Rpwm_val-10>=0&&Rpwm_val-10>=0) < Lpwm_val-=10;Rpwm_val-=10; Set_Speed(Lpwm_val,Rpwm_val); Show_V(Lpwm_val); >break; default: break; > irrecv.resume(); > > lcd.clear(); lcd.setCursor(0,0); lcd.print(" Wait Signal "); stopp(); > void Bluetooth_Control() < lcd.setCursor(0,0); lcd.print("xaxaxaxaxaxaxax"); if(Serial.available()) < Bluetooth_val=Serial.read(); switch(Bluetooth_val) < case'U':advance(); break; case'D':back(); break; case'L':turnL(); break; case'R':turnR(); break; case'S':stopp(); break; >> > void setup() < pinMode(servopin,OUTPUT); LCD1602_init(); M_Control_IO_config(); Set_Speed(Lpwm_val,Rpwm_val); Set_servopulse(DuoJiao); pinMode(inputPin,INPUT); pinMode(outputPin,OUTPUT); Serial.begin(9600); lcd.setCursor(0,0); lcd.print(" Wait Signal "); stopp(); >void loop() < if(irrecv.decode(&results)) < if(results.value==IR_XunJi_Mode) < while(IR_XunJi_Mode) < XunJi_Mode(); >> if(results.value==IR_Self_Control) < while(IR_Self_Control) < Self_Control(); >> if(results.value==IR_IR_Control) < while(IR_IR_Control) < IR_Control(); >> if(results.value==IR_Bluetooth_Control) < while(IR_Bluetooth_Control) < Bluetooth_Control(); >> irrecv.resume(); > delay(10); >
  • Войдите на сайт для отправки комментариев

Ошибки компиляции и их решения, для плат Arduino

Первые ошибки, которые определяются отладчиком – это синтаксические ошибки. Их же легче всего исправить. Неправильный синтаксис в Arduino IDE выделяется строкой, в которой допущена неточность. Нужно разобраться – это ошибка в написании служебного слова, случайно удалена важная функция, не хватает закрывающейся скобки или неправильно отделены комментарии.

Для определения ошибки внимательно просмотрите строку-подсказку и внесите необходимые изменения. Ниже мы приведем примеры наиболее часто встречающихся синтаксических ошибок компиляции кода:

  • Ошибка “expected initializer before ‘>’ token” говорит о том, что случайно удалена или не открыта фигурная скобка.
  • Ошибка “a function-definition is not allowed here before ‘ – аналогичная предыдущей и указывает на отсутствие открывающейся скобки, например, открывающих скобок в скетче только 11, а закрывающих 12.
  • Уведомление об ошибке “undefined reference to “setup” получите в случае переименования или удаления функции “setup”.
  • Ошибка “undefined reference to “loop” – возникает в случае удаления функции loop. Без команд этой функции компилятор запустить программу не сможет. Для устранения надо вернуть каждую из команд на нужное место в скетче.
  • Ошибка “… was not declared in this scope” обозначает, что в программном коде обнаружены слова, которые написаны с ошибкой (например, которые обозначают какую-то функцию) или найдены необъявленные переменные, методы. Подобная ошибка возникает также в случае случайного удаления значка комментариев и текст, который не должен восприниматься как программа, читается IDE.

Ошибки компиляции и их решения, для плат Arduino, синтаксические ошибки картинка

Ошибки библиотек

Большое количество ошибок возникает на уровне подключения библиотек или неправильного их функционирования. Наиболее известные:

  • “fatal error: … No such file or directory”. Такое сообщение вы получите, если необходимую в скетче библиотеку вы не записали в папку libraries. Сообщение об ошибке в одном из подключенных файлов может означать, что вы используете библиотеку с ошибками или библиотеки не совместимы. Решение – обратиться к разработчику библиотеки или еще раз проверить правильность написанной вами структуры.
  • “redefinition of void setup” – сообщение возникает, если автор библиотеки объявил функции, которые используются и в вашем коде. Чтобы исправить – переименуйте свои методы или в библиотеке.

Ошибки компилятора

Нестабильность в работе самого компилятора тоже могут возникать при отладке программы. Вариантов выхода из данной ситуации может быть несколько, например, установить последнюю версию компилятора. Иногда решением может быть наоборот, возвращение до более старой версии. Тогда используемая библиотека может работать корректно.

Ошибки компиляции при работе с разными платами — Uno, Mega и Nano

В Arduino можно писать программы под разные варианты микроконтроллеров. По умолчанию в меню выбрана плата Arduino/Genuino Uno. Если забудете о том что нужно указать нужную плату – в вашем коде будут ссылки на методы или переменные, не описанные в конфигурации “по умолчанию”.

Вы получите ошибку при компиляции “programmer is not responding”. Чтобы исправить ее – проверьте правильность написания кода в части выбора портов и вида платы. Для этого в Ардуино IDE в меню «Сервис» выберите плату. Аналогично укажите порт в меню “Сервис” – пункт «Последовательный порт».

Ошибка exit status 1

В среде разработки такое сообщение можно увидеть во многих случаях. И хотя в документации данная ошибка указывается как причина невозможности запуска IDE Аrduino в нужной конфигурации, на самом деле причины могут быть и другие. Для того, чтобы найти место, где скрывается эта ошибка можно “перелопатить” действительно много. Но все же стоит сначала проверить разрядность системы и доступные библиотеки.

Выдает ошибка was not declared in this scope

SoftwareSerialWithHalfDuplex bt(9, 10); // RX, TX
int i;
void setup()
// Open serial communications and wait for port to open:
Serial.begin(9600);
// set the data rate for the SoftwareSerial port
bt.begin(9600);
>

void loop() // run over and over
i=bt.read();
if(i == -1 || i == 98 || i == 48 || i == 61 || i == 35)
delay(1);
>
else
print(i);
return(0);
>
int print(int i)
Serial.println(i);
>
выдает ошибку ‘print’ was not declared in this scope

Дополнен 7 лет назад
Дополнен 7 лет назад
Ошибка в том, что в Arduino есть команда ptint()
Голосование за лучший ответ
Язык указывать не надо?
Илья БелокопытовЗнаток (253) 7 лет назад
Arduino программируют на c++

Shalafi Мудрец (15046) НА АРДУИНО ЕСТЬ С++??О! У них там чо, памяти много стало. А вообще, учи анлийский. *** was not declared in this scope означает, что ты вызываешь функцию, или обращаешься к переменной, которой нет. Ошибся в названии, перечитай документацию.

подвинте функцию int print(int i) выше, за функцию void loop(). Или создайтё прототип в начале. Компилятор ругается из за того что print обнаруживается внутри функции loop позже чем объявляется, а должно быть всё наоборот.

Илья БелокопытовЗнаток (253) 7 лет назад

ошибка не в этом, в языке ардуино есть команда print() можно исправить на printh() все будет работать

Максим Касперски Мастер (1446) Если в нём есть эта функция, то для чего вы объявляете её снова? Хотя вряд-ли ошибка была бы именно такой. Может вы где-то неправильно написали какое-то название?

У меня несколько ошибок «was not declared in this scope» в коде C++, что делать?

это исходный код программы, хотел написать что-то вроде чата на сокетах. Я попытался скомпилировать код, но он мне выдал несколько ошибок «was not declared in this scope». Вот вывод компилятора:

server.cpp: In function ‘void connecter()’: server.cpp:24:24: error: ‘stopServerRunning’ was not declared in this scope 24 | signal(SIGINT, stopServerRunning); // Это предложение используется для выключения сервера при вводе Ctrl + C | server.cpp:26:9: error: ‘connfd’ was not declared in this scope 26 | connfd = accept(sockfd, NULL, NULL); | ^~~~~~ server.cpp:26:25: error: ‘sockfd’ was not declared in this scope; did you mean ‘socket’? 26 | connfd = accept(sockfd, NULL, NULL); | ^~~~~~ | socket server.cpp: In function ‘void listener()’: server.cpp:39:15: error: ‘buff’ was not declared in this scope 39 | bzero(buff, BUFFSIZE); | ^~~~ server.cpp:41:14: error: ‘connfd’ was not declared in this scope 41 | recv(connfd, buff, BUFFSIZE - 1, 0); | ^~~~~~ server.cpp: In function ‘void sender()’: server.cpp:54:21: error: ‘buff’ was not declared in this scope 54 | scanf("%s", buff); | ^~~~ server.cpp:55:14: error: ‘connfd’ was not declared in this scope 55 | send(connfd, buff, strlen(buff), 0); | ^~~~~~

я думаю, что все эти ошибки идут из одной проблемы, но не могу понять откуда

  • Вопрос задан более года назад
  • 1165 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *