Offline
Зарегистрирован: 25.05.2019
Вот скетч:
#include «dht.h»
#define dht_apin A0 // Analog Pin sensor is connected to
dht DHT;
int relepin — 4;
int relepin2 — 3;
void setup(){
pinMode(relepin, OUTPUT);
pinMode(relepin2, OUTPUT);
Serial.begin(9600);
delay(500); / / Delay to let system boot
Serial.println(«DHT11 Humidity & temperature Sensornn»);
delay(1000 ); / / Wait before accessing Sensor
} / / end «setup()»
void loop(){
/ / Start of Program
DHT.read11(dht_apin);
Serial.print(«Current humidity = «);
Serial.print(DHT.humidity);
Serial.print(«%»);
Serial.print(«temperature = «);
Serial.print(DHT.temperature);
Serial.println(«C «);
delay(2000); / / Wait 5 seconds before accessing sensor again.
if(DHT.temperature < 18.00) digitalWrite(relepin, LOW);
else digitalWrite(relepin, HIGH);
if(DHT.humidity < 70.00) digitalWrite(relepin2, LOW);
else digitalWrite(relepin2, HIGH);
/ / Fastest should be once every two seconds.
} / / end loop()
ВОТ ошибка:
C:Users836D~1AppDataLocalTemparduino_modified_sketch_667312sketch_may26a.ino:1:17: fatal error: dht.h: No such file or directory
#include «dht.h»
^
compilation terminated.
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
Sign in
to your account
Closed
FlorentSms opened this issue
Oct 1, 2017
· 12 comments
Comments
Good evening,
Being a beginner in the arduino, I am currently experiencing a problem with my program. I try to read the data sent by a DHT11 type sensor.
I have correctly installed the library that you put online. I verified that it’s in the Arduino libraries folder and I have checked that the Arduino IDE visualizes it well.
But when I try to upload the program, that’s what he tells me:
https://puu.sh/xNwjj/e0bf912c99.png
https://puu.sh/xNwn6/1ad8fc18a3.png
https://puu.sh/xNwpB/23ace6dcb7.png
I think my library is well installed but I have the impression that it doesn’t recognize it.
I hope you can help me.
Good night.
Florent
@FlorentSms Can you delete the folder labeled DHT and download it through the Arduino IDE. The folder is not normally labeled just simply DHT as you show in your libraries folder. I don’t think that’s the issue but just to be on the safe side, I would remove the folder that you downloaded and said that you correctly installed. After you remove that folder go into Manage Libraries and search for DHT Sensor library and download it through the IDE. Try to upload it again to your Arduino after that is complete and report back if you are still having issues. The problem that you are having is normally related to something simple like it was not properly installed or that there are more than one copies of the DHT.h file floating around in your libraries folder.
Here is a picture of the Manage Libraries screen and the one you want to download to verify what you are after.

Also as an aside, you aren’t using the same library as this one, you are using the SimpleDHT library so if my idea fixes your problem that is possibly a start. The SimpleDHT code is hosted at the following link I believe, https://github.com/winlinvip/SimpleDHT
Hello @geofbaum ,
I have try your solutions but i have, for the 2 solutions, the same problem.
Thanks in advance.
Florent.
@FlorentSms Can you upload an image of what the files in your DHT library folder look like. I just want to check to make sure capitalization or if somehow the files are misnamed somehow.
Hi, could you solve your problem?
Adafruit_AM2320_sensor_library/Adafruit_AM2320.h:41:29: fatal error: Adafruit_Sensor.h: No such file or directory
@FlorentSms Can you delete the folder labeled DHT and download it through the Arduino IDE. The folder is not normally labeled just simply DHT as you show in your libraries folder. I don’t think that’s the issue but just to be on the safe side, I would remove the folder that you downloaded and said that you correctly installed. After you remove that folder go into Manage Libraries and search for DHT Sensor library and download it through the IDE. Try to upload it again to your Arduino after that is complete and report back if you are still having issues. The problem that you are having is normally related to something simple like it was not properly installed or that there are more than one copies of the DHT.h file floating around in your libraries folder.
Here is a picture of the Manage Libraries screen and the one you want to download to verify what you are after.
yeah i see and when i do it as you said, i also get the same error
delete DHT folder in libraries then install it via Arduino IDE and still get that error and don’t have any file DHT.h floating around my sketch
help me please, graceful and tks so much <3 @geofbaum
Arduino: 1.8.13 (Windows Store 1.8.42.0) (Windows 10), Board: «Arduino Uno»
sketch_nov10a:1:10: fatal error: dht.h: No such file or directory
#include «dht.h»
compilation terminated.
exit status 1
dht.h: No such file or directory
This report would have more information with
«Show verbose output during compilation»
option enabled in File -> Preferences.
Puede ser porque falta una librería Adafruit Unified Sensor, esta viene al instalar todo desde el administrador de bibliotecas

Puede ser porque falta una librería Adafruit Unified Sensor, esta viene al instalar todo desde el administrador de bibliotecas
You Rock Arely! This worked
-
Всем привет!
Недавно купил датчик dht11 но не могу загрузить код в плату.9//Тестировалось на Arduino IDE 1.0.5
#include <dht11.h> // Добавляем библиотеку DHT11
dht11 DHT; // Объявление переменной класса dht11
#define DHT11_PIN 4 // Датчик DHT11 подключен к цифровому пину номер 4void setup(){
Serial.begin(9600); // Скорость работы порта
Serial.println(«DHT TEST PROGRAM «); // Выводим текст
Serial.print(«LIBRARY VERSION: «); // Выводим текст
Serial.println(DHT11LIB_VERSION);
Serial.println(); // Пустая строка
}void loop(){
int chk;
;
// Мониторинг ошибок
chk = DHT.read(DHT11_PIN); // Чтение данных
switch (chk){
case DHTLIB_OK:
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.println(«Checksum error, t«);
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.println(«Time out error, t«);
break;
default:
Serial.println(«Unknown error, t«);
break;
}
// Выводим показания влажности и температуры
Serial.print(«Humidity = «);
Serial.print(DHT.humidity, 1);
Serial.print(«, Temp = «);
Serial.println(DHT.temperature,1);
delay(1000);
}Все библиотеки у меня есть…
Выдает ошибку:
Arduino: 1.8.5 (Windows Store 1.8.10.0) (Windows 10), Плата:»Arduino/Genuino Uno»C:UsersbrastDocumentsArduinodhtdht.ino:2:73: fatal error: dht11.h: No such file or directory
#include <dht11.h> // Добавляем библиотеку DHT11
^
compilation terminated.
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno. -
Ну как же «все библиотеки есть», если компилятор пишет, что dht11.h нет. Либо вы установили библиотеку неправильно.
Последнее редактирование: 12 ноя 2017
Саня_76 и arkadyf нравится это.
Skip to content
При подключении датчика влажности и температуры (DHT11 temp and humidity) — появляется ошибка в Arduino:

C:UsersСила МыслиDesktopDocumentsArduinoTemp and humidity DHT11Temp_and_humidity_DHT11Temp_and_humidity_DHT11.ino:1:17: fatal error: dht.h: No such file or directory
compilation terminated.
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno.
Ошибка говорит о том, что отсутствует библиотека dht.h в Arduino. Для установки библиотеки переходим Скетч -> Подключить библиотеку -> Управлять библиотеками

В поиске вводим dht и устанавливаем библиотеку DHT

Важным моментом также является то, как библиотека DHT подключается к проекту
Например вместо
#include <DHT.h>
а надо
#include <dht.h>
или наоборот.
Также устанавливаем библиотеку Adafruit Unified Sensor, чтобы исключить ошибку
sketchDHT_U.h:36:29: fatal error: Adafruit_Sensor.h: No such file or directory

Данная библиотека подключается так
#include <Adafruit_Sensor.h>
Часто бывает так, что встроенная библиотека тоже не подходит и необходимо найти ту библиотеку, которая подойдет к датчику на стороннем сайт в виде zip архива. В нашем случае подошла библиотека DHT-sensor-library. Чтобы eё загрузить в Arduino Скетч -> Подключить библиотеку -> Добавить .ZIP библиотеку и указываем путь до библиотеки.

В итоги датчик DHT11 temp and humidity стал правильно давать показания температуры и влажности.

1920
СОДЕРЖАНИЕ ►
- Произошла ошибка при загрузке скетча в Ардуино
- programmer is not responding
- a function-definition is not allowed arduino ошибка
- expected initializer before ‘}’ token arduino ошибка
- ‘что-то’ was not declared in this scope arduino ошибка
- No such file or directory arduino ошибка
- Compilation error: Missing FQBN (Fully Qualified Board Name)
Ошибки компиляции Arduino IDE возникают при проверке или загрузке скетча в плату, если код программы содержит ошибки, компилятор не может найти библиотеки или переменные. На самом деле, сообщение об ошибке при загрузке скетча связано с невнимательностью самого программиста. Рассмотрим в этой статье все возможные ошибки компиляции для платы Ардуино UNO R3, NANO, MEGA и пути их решения.
Произошла ошибка при загрузке скетча Ардуино
Самые простые ошибки возникают у новичков, кто только начинает разбираться с языком программирования Ардуино и делает первые попытки загрузить скетч. Если вы не нашли решение своей проблемы в статье, то напишите свой вопрос в комментариях к этой записи и мы поможем решить вашу проблему с загрузкой (бесплатно!).
avrdude: stk500_recv(): programmer is not responding
Что делать в этом случае? Первым делом обратите внимание какую плату вы используете и к какому порту она подключена (смотри на скриншоте в правом нижнем углу). Необходимо сообщить Arduino IDE, какая плата используется и к какому порту она подключена. Если вы загружаете скетч в Ардуино Nano V3, но при этом в настройках указана плата Uno или Mega 2560, то вы увидите ошибку, как на скриншоте ниже.

Такая же ошибка будет возникать, если вы не укажите порт к которому подключена плата (это может быть любой COM-порт, кроме COM1). В обоих случаях вы получите сообщение — плата не отвечает (programmer is not responding). Для исправления ошибки надо на панели инструментов Arduino IDE в меню «Сервис» выбрать нужную плату и там же, через «Сервис» → «Последовательный порт» выбрать порт «COM7».
a function-definition is not allowed here before ‘{‘ token
Это значит, что в скетче вы забыли где-то закрыть фигурную скобку. Синтаксические ошибки IDE тоже распространены и связаны они просто с невнимательностью. Такие проблемы легко решаются, так как Arduino IDE даст вам подсказку, стараясь отметить номер строки, где обнаружена ошибка. На скриншоте видно, что строка с ошибкой подсвечена, а в нижнем левом углу приложения указан номер строки.

expected initializer before ‘}’ token / expected ‘;’ before ‘}’ token
Сообщение expected initializer before ‘}’ token говорит о том, что вы, наоборот где-то забыли открыть фигурную скобку. Arduino IDE даст вам подсказку, но если скетч довольно большой, то вам придется набраться терпения, чтобы найти неточность в коде. Ошибка при компиляции программы: expected ‘;’ before ‘}’ token говорит о том, что вы забыли поставить точку с запятой в конце командной строки.
‘что-то’ was not declared in this scope
Что за ошибка? Arduino IDE обнаружила в скетче слова, не являющиеся служебными или не были объявлены, как переменные. Например, вы забыли продекларировать переменную или задали переменную ‘DATA’, а затем по невнимательности используете ‘DAT’, которая не была продекларирована. Ошибка was not declared in this scope возникает при появлении в скетче случайных или лишних символов.

Например, на скриншоте выделено, что программист забыл продекларировать переменную ‘x’, а также неправильно написал функцию ‘analogRead’. Такая ошибка может возникнуть, если вы забудете поставить комментарий, написали функцию с ошибкой и т.д. Все ошибки также будут подсвечены, а при нескольких ошибках в скетче, сначала будет предложено исправить первую ошибку, расположенную выше.
exit status 1 ошибка компиляции для платы Arduino
Данная ошибка возникает, если вы подключаете в скетче библиотеку, которую не установили в папку libraries. Например, не установлена библиотека ИК приемника Ардуино: fatal error: IRremote.h: No such file or directory. Как исправить ошибку? Скачайте нужную библиотеку и распакуйте архив в папку C:Program FilesArduinolibraries. Если библиотека установлена, то попробуйте скачать и заменить библиотеку на новую.

Довольно часто у новичков выходит exit status 1 ошибка компиляции для платы arduino uno /genuino uno. Причин данного сообщения при загрузке скетча в плату Arduino Mega или Uno может быть огромное множество. Но все их легко исправить, достаточно внимательно перепроверить код программы. Если в этом обзоре вы не нашли решение своей проблемы, то напишите свой вопрос в комментариях к этой статье.
missing fqbn (fully qualified board name)
Ошибка возникает, если не была выбрана плата. Обратите внимание, что тип платы необходимо выбрать, даже если вы не загружаете, а, например, делаете компиляцию скетча. В Arduino IDE 2 вы можете использовать меню выбора:
— список плат, которые подключены и были идентифицированы Arduino IDE.
— или выбрать плату и порт вручную, без подключения микроконтроллера.
Одна из самых неприятных ошибок — это ошибка компиляции для платы Аrduino Nano, с которой вам придется столкнуться не раз.
Содержание
- Синтаксические ошибки
- Ошибки компиляции плат Arduino uno
- Ошибка exit status 1 при компиляции для плат uno, mega и nano
- Ошибки библиотек
- Ошибки компилятора Ардуино
- Основные ошибки
- Ошибка: «avrdude: stk500_recv(): programmer is not responding»
- Ошибка: «a function-definition is not allowed here before ‘{‘ token»
- Ошибка: «No such file or directory / exit status 1»
- Ошибка: «expected initializer before ‘}’ token / expected ‘;’ before ‘}’ token»
- Ошибка: «… was not declared in this scope»
Синтаксические ошибки
Ардуино – одна из наиболее комфортных сред для начинающих инженеров, в особенности программистов, ведь им не приходится проектировать свои системы управления и делать множество других действий.
Сразу же при покупке они получают готовый набор библиотек на С99 и возможность, по необходимости, подтянуть необходимые модули в опен-соурс источниках.
Но и здесь не избежать множества проблем, с которыми знаком каждый программист, и одна из самых неприятных – ошибка компиляции для платы Аrduino nano, с которой вам придется столкнуться не раз. Что же эта строчка означает, какие у неё причины появления, и главное – как быстро решить данную проблему?
Для начала стоит немного окунуться в теорию, чтобы вы понимали причину возникновения данной строчки с текстом и не грешили лишний раз, что Ардуино уно не видит компьютер.
Как несложно догадаться, компиляция – приведение кода на языке Си к виду машинного (двоичного) и преобразование множественных функций в простые операции, чтобы те смогли выполняться через встроенные операнды процессора. Выглядит всё достаточно просто, но сам процесс компиляции происходит значительно сложнее, и поэтому ошибка во время проведения оной может возникать по десяткам причин.

Все мы уже привыкли к тому, что код никогда не запускается с первого раза, и при попытке запустить его в интерпретаторе вылезает десяток ошибок, которые приходится оперативно править. Компилятор действует схожим образом, за исключением того, что причины ошибок указываются далеко не всегда. Именно поэтому рекомендуется протестировать код сначала в среде разработки, и лишь затем уже приступать к его компиляции в исполняемые файлы под Ардуино.
Мы узнали, к чему приводит данный процесс, давайте разберёмся, как он происходит:
- Первое, что делает компилятор – подгружает все инклуднутые файлы, а также меняет объявленные дефайны на значения, которое для них указано. Это необходимо затем, чтобы не нужно было по нескольку раз проходиться синтаксическим парсером в пределах одного кода. Также, в зависимости от среды, компилятор может подставлять функции на место их объявления или делать это уже после прохода синтаксическим парсером. В случае с С99, используется второй вариант реализации, но это и не столь важно.
- Далее он проверяет первичный синтаксис. Этот процесс проводится в изначальном компилируемом файле, и своеобразный парсер ищет, были ли описаны приведенные функции ранее, подключены ли необходимые библиотеки и прочее. Также проверяется правильность приведения типов данных к определенным значениям. Не стоит забывать, что в С99 используется строгая явная типизация, и вы не можете засунуть в строку, объявленную integer, какие-то буквенные значения. Если такое замечается, сразу вылетает ошибка.
- В зависимости от среды разработки, иногда предоставляется возможность последний раз протестировать код, который сейчас будет компилироваться, с запуском интерпретатора соответственно.
- Последним идет стек из различных действий приведения функций, базовых операнд и прочего к двоичному коду, что может занять какое-то время. Также вся структура файлов переносится в исполняемые exe-шники, а затем происходит завершение компиляции.
Как можно увидеть, процесс не так прост, как его рисуют, и на любом этапе может возникнуть какая-то ошибка, которая приведет к остановке компиляции. Проблема в том, что, в отличие от первых трех этапов, баги на последнем – зачастую неявные, но всё ещё не связанные с алгоритмом и логикой программы. Соответственно, их исправление и зачистка занимают значительно больше времени.
А вот синтаксические ошибки – самая частая причина, почему на exit status 1 происходит ошибка компиляции для платы Аrduino nano. Зачастую процесс дебагинга в этом случае предельно простой.

Вам высвечивают ошибку и строчку, а также подсказку от оператора EXCEPTION, что конкретно не понравилось парсеру. Будь то запятая или не закрытые скобки функции, проблема загрузки в плату Аrduino возникнет в любом случае.
Решение предельно простое и логичное – найти и исправить непонравившийся машине синтаксис. Зачастую такие сообщения вылезают пачками, как на этапе тестирования, так и компилирования, поэтому вы можете таким образом «застопорить» разработку не один раз.
Не стоит этого страшиться – этот процесс вполне нормален. Все претензии выводятся на английском, например, часто можно увидеть такое: was not declared in this scope. Что это за ошибка arduino – на самом деле ответ уже скрыт в сообщении. Функция или переменная просто не были задекларированы в области видимости.
Ошибки компиляции плат Arduino uno
Другая частая оплошность пользователя, которая порождает вопросы вроде, что делать, если Аrduino не видит порт, заключается в том, что вы попросту забываете настроить среду разработки. IDE Ардуино создана под все виды плат, но, как мы указывали, на каждом контроллере помещается лишь ограниченное количество библиотек, и их наполнение может быть различным.
Соответственно, если в меню среды вы выбрали компиляцию не под тот МК, то вполне вероятно, что вызываемая вами функция или метод просто не будет найдена в постоянной памяти, вернув ошибку. Стандартно, в настройках указана плата Ардуино уно, поэтому не забывайте её менять. И обратная ситуация может стать причиной, по которой возникает проблема загрузки в плату на Аrduino uno.
Ошибка exit status 1 при компиляции для плат uno, mega и nano
И самое частое сообщение, для пользователей уно, которое выскакивает в среде разработки – exit 1. И оно же самое дискомфортное для отладки приложения, ведь тут необходимо учесть чуть ли не ядро системы, чтобы понять, где же кроется злополучный баг.
В документации указано, что это сообщение указывает на то, что не запускается ide Аrduino в нужной конфигурации, но на деле есть ещё десяток случаев, при которых вы увидите данное сообщение. Однако, действительно, не забывайте проверять разрядность системы, IDE и просматривать, какие библиотеки вам доступны для обращения на текущий момент.
Ошибки библиотек
Если произошла ошибка при компиляции скетча Ардуино, но не выводилось ни одно из вышеописанных сообщений, то можете смело искать баг в библиотеках МК. Это наиболее неприятное занятие для большинства программистов, ведь приходится лазить в чужом коде, но без этого никак.
Ведь банально причина может быть в устаревшем синтаксисе скачанного плагина и, чтобы он заработал, необходимо переписать его практически с нуля. Это единственный выход из сложившейся ситуации. Но бывают и более банальные ситуации, когда вы подключили библиотеку, функции из которой затем ни разу не вызвали, или просто перепутали название.
Ошибки компилятора Ардуино
Ранее упоминался финальный стек действий, при прогонке кода через компилятор, и в этот момент могут произойти наиболее страшные ошибки – баги самого IDE. Здесь конкретного решения быть не может. Вам никто не запрещает залезть в ядро системы и проверить там всё самостоятельно, но куда эффективнее будет откатиться до предыдущей версии программы или, наоборот, обновиться.
Основные ошибки
Ошибка: «avrdude: stk500_recv(): programmer is not responding»
Смотрим какая у нас плата? Какой порт используем? Сообщаем ардуино о правильной плате и порте. Возможно, что используете Nano, а указана Mega. Возможно, что указали неверный порт. Всё это приводит к сообщению: «programmer is not responding».
Решение:
В Arduino IDE в меню «Сервис» выбираем плату. В меню «Сервис → Последовательный порт» выбираем порт.
Ошибка: «a function-definition is not allowed here before ‘{‘ token»
Забыли в коде программы (скетча) закрыть фигурную скобку }.
Решение:
Обычно в Ардуино IDE строка с ошибкой подсвечивается.
Ошибка: «No such file or directory / exit status 1»
Подключаемая библиотека отсутствует в папке libraries.
Решение:
Скачать нужную библиотеку и скопировать её в папку программы — как пример — C:Program FilesArduinolibraries. В случае наличия библиотеки — заменить файлы в папке.
Ошибка: «expected initializer before ‘}’ token / expected ‘;’ before ‘}’ token»
Забыли открыть фигурную скобку {, если видим «initializer before». Ошибка «expected ‘;’ before ‘}’ token» — забыли поставить точку с запятой в конце командной строки.
Решение:
Обычно в Ардуино IDE строка с ошибкой подсвечивается.
Ошибка: «… was not declared in this scope»
Arduino IDE видит в коде выражения или символы, которые не являются служебными или не были объявлены переменными.
Решение:
Проверить код на использование неизвестных выражений или лишних символов.
17 июля 2018 в 13:23
| Обновлено 7 ноября 2020 в 01:20 (редакция)
Опубликовано:
Статьи, Arduino
I am having a problem with is Arduino code. It is a project called the Segment LED show temperature & humidity. The Arduino board that I am using is a Uno Freaduino 2016 board. Connecting to it is a 7-segment display with 4 pins: GND, CLK, DIO, VCC and a temperature and humidity sensor to the pin analog 0 (A0).
But that part is fine it is the code. I am using the Arduino program to write it but there is an error.
The error:
Arduino: 1.8.2 (Windows 10), Board: "Arduino/Genuino Uno"
E:Code examplesCoding examplesArduinoSegment_LED_Show_Temperatures_HumiditySegment_LED_Show_Temperatures_Humidity.ino:3:19: fatal error: DHT11.h: No such file or directory
#include "DHT11.h"
^
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino Uno.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
The code:
//variables
#include "DHT11.h"
#include "TM1637.h"
#define CLK4
#define DIO5
TM1637 tm1637(CLK, DIO);
DHT11 dht11(A0);
void setup() {
tm1637.init();
tm1637.set(BRIGHT_TYPICAL);
}
void loop() {
dht11.start();
tm1637.display(3,12);
tm1637.display(2, (dht11.DHT11data)[2] % 10);
tm1637.display(1, (dht11.DHT11data)[2] % 100 / 10);
delay(1000);
tm1637.clearDisplay();
tm1637.display(3, (dht11.DHT11data)[0] % 10);
tm1637.display(2, (dht11.DHT11data)[0] % 100 / 10);
delay(1000);
}