(Код ультразвукового датчика: такого файла или каталога нет)

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

#include <RCSwitch.h>
#include <Ultrasonic.h>

Ultrasonic ultrasonic(11,10);
RCSwitch mySwitch = RCSwitch();

int i;

void setup() {
    mySwitch.enableTransmit(4);  
}

void loop() {  
    i = ultrasonic.Ranging(CM);
    mySwitch.send(i, 24);
    delay(100); 
}

Arduino: 1.8.7 (Windows 7), плата: «Arduino/Genuino Uno»

433 МГц-ЖК-передатчик уровня воды: 2:24: ошибка: Ultrasonic.h: Нет такого файл или каталог

компиляция прекращена.

статус выхода 1 Ultrasonic.h: такого файла или каталога нет

В этом отчете будет больше информации, если будет указано «Показать подробный вывод». во время компиляции» включена в меню «Файл» -> «Настройки».

, 👍0

Обсуждение

Вы установили библиотеку?, @gre_gor

Я добавил ультразвуковую библиотеку, но у меня та же ошибка., @user50090

Спасибо за все, моя проблема решена, загрузите ультразвуковой код здесь https://www.arduinolibraries.info/libraries/ultrasonic. Я нашел другую ультразвуковую библиотеку, решающую мою первую проблему (Ultrasonic.h: нет такого файла или каталога), но затем возникла еще одна ошибка. .. он говорит (класс Ultrasonic 'не имеет члена с именем 'Ranging').... за это время я изменил часть своего кода и теперь работает хорошо, мой код после решения включает в себя Ultrasonic Ultrasonic(11,10); // (ПИН триггера, ПИН эхо) RCSwitch mySwitch = RCSwitch(); интервал я; void setup() {mySwitch.enableTransmit(4); } void Loop() { Ультразвуковой ультразвуковой (11,10,3000); // (Три, @aras


3 ответа


1

Это означает то, что написано:

Ultrasonic.h: такого файла или каталога нет

Файл Ultrasonic.h не найден.

Все в вашем коде, начинающееся с #include..., обычно является библиотекой. Это сторонние программы, которые вам необходимо получить и установить в соответствующее место (см. Установка дополнительных библиотек Arduino). ).

Некоторые библиотеки включены в состав IDE, а некоторые доступны через « менеджер библиотек» в IDE. Однако большинство из них это не так, и вам придется привыкнуть находить эти библиотеки и устанавливать их.

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

,

1

Такая ошибка означает, что Arduino IDE (при условии, что вы ее используете) не нашла «Ultrasonic.h» в папке с именем «libraries» в папке скетча Arduino. (Некоторые библиотеки содержатся в других местах исполняемого файла IDE, но размещение дополнительных библиотек в «.../libraries» упрощает поиск и обслуживание).

Перейти к Файл | Настройки (в Windows или Linux) или Arduino | Настройки (Mac). Верхнее поле этого диалогового окна — это путь к папке вашего скетча. В этой папке должна быть папка под названием «Библиотеки».

В папке «Библиотеки» должна быть папка для каждой библиотеки, поэтому в этом случае должна быть папка с именем «Ultrasonic», содержащая файлы «Ultrasonic.h» и «Ultrasonic.cpp». Там могут быть и другие элементы, например, папка «Примеры», файл «keywords.txt» (помогает IDE раскрашивать синтаксис), текстовый файл с примечаниями к выпуску и т. д., но важной структурой является

[path/to/your/sketch/folder]
     libraries
         Ultrasonic
              Ultrasonic.h
              Ultrasonic.cpp
         someotherlibrary
              someotherlibrary.h

и т. д.

,

файлы .h и .cpp библиотеки могут находиться в подпапке src, если используется «новый» формат библиотеки., @Juraj

Действительно - спасибо, что указали на это. Вышеупомянутое следует принять за минимальную базовую структуру., @JRobert


0

Я нашел другую ультразвуковую библиотеку, решающую мою первую проблему (Ultrasonic.h: нет такого файла или каталога), но затем появилась еще одна ошибка... она говорит (класс Ultrasonic' не имеет члена с именем 'Ranging').... за это время я изменил часть своего кода и теперь работает хорошо

мой код после решения

#include <RCSwitch.h> 
#include <Ultrasonic.h>

Ultrasonic ultrasonic(11,10); // (Триггерный ПИН, Эхо-ПИН)
RCSwitch mySwitch = RCSwitch();

int i;

void setup() {
  mySwitch.enableTransmit(4);  
}

void loop() {
Ultrasonic ultrasonic(11,10,3000); // (Trig PIN, Echo PIN, Max.TimeOut в мкс)
  mySwitch.send(3000 ,24);
  delay(100); 
}
,