Ошибка включения файла при использовании Arduino Nano
Я использую приведенный ниже код для сопряжения сотового телефона Arduino nano и Android, чтобы обеспечить последовательную связь через USB-порт. Я скачал библиотеку фильтров с GitHub https://github.com/JonHub/Filters
Я получаю сообщение об ошибке, в котором говорится, что библиотека не найдена. Я был бы очень признателен за некоторые предложения по этому поводу.
Вот мой код:
//This code is for arduino communicating to android phone through USb serial port.
//For arduino nano
#include <Filters.h> //implements digital filters which mimic the analog filter, keep track of variable statistics in realtime
char data_read; //character datatype takes up to 1 byte of memory
unsigned int analog_out;
unsigned long time;
float filterFrequency = 10.0;
FilterOnePole lowpassFilter( LOWPASS, filterFrequency );//implements digital RC type filter; both highpass and lowpass
void setup()
{
Serial.begin(115200); //open the serial port and set the baud rate for communication
// create a one pole (RC) lowpass filter
}
void loop()
{
}
void serialEvent() { //Used when data is unavailable yet
if (Serial.available()) //checks the number of bytes available for reading from the serial port
{
data_read = Serial.read();
if (data_read == '0') {
Serial.print("#");
//Serial.print("10100");
analog_out = lowpassFilter.input( analogRead(0) );
Serial.print(analog_out + 10000);
Serial.print(":");
//Serial.print("20200");
analog_out = lowpassFilter.input( analogRead(1) );
Serial.print(analog_out + 20000);
Serial.print(":");
//Serial.print("30300");
analog_out = lowpassFilter.input( analogRead(2) );
Serial.print(analog_out + 30000);
Serial.print("p");
}
/*if(data_read == '0' || data_read == '1' || data_read == '2' || data_read == '3' || data_read == '4' || data_read == '5'){
analog_out = lowpassFilter.input( analogRead( data_read-48 ) );
Serial.print((analog_out)+(data_read-48)*10000);
Serial.print(":");
}else if(data_read =='p'){
Serial.print("p");
}*/
}
}
Вот мое сообщение об ошибке:
Arduino: 1.8.5 (Windows 10), Board: "Arduino Nano, ATmega328P"
C:\Users\daphn\Documents\Arduino\Analog_Serial_out\Analog_Serial_out.ino:4:129: fatal error: Filters.h: No such file or directory
#include <Filters.h> //implements digital filters which mimic the analog filter, keep track of variable statistics in realtime
^
compilation terminated.
exit status 1
Error compiling for board Arduino Nano.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
@DaphFab, 👍0
Обсуждение2 ответа
Вы должны поместить папку с библиотечными файлами в папку библиотеки
в папке вашего альбома для рисования. Тогда IDE должна быть в состоянии их найти.
Я думаю, что также есть возможность сохранить их в той же папке, что и ваш файл .ino, но я не знаю, как именно вы должны это сделать.
Я попробовал включить фильтры.файл заголовка h находится в папке main libraries, но я все равно получаю ту же ошибку. Мне интересно, есть ли какая - то ошибка с источником самого заголовочного файла. Обычно, когда я включаю внешние библиотеки, я помещаю их в ту же папку, что и сам код, и он работает., @DaphFab
Я протестировал его с вашим кодом и связанной библиотекой, и он работает для меня. Проверьте настройки IDEs, в которых установлена папка sketchbook, @chrisl
Библиотека-это нечто большее, чем файл .h. Вам нужны ВСЕ файлы, и все они помещены в папку с именем Filters в папке libraries в вашем sketchbook. Ничего другого не годится., @Majenko
@Majenko Что вы подразумеваете под ВСЕМИ файлами?, @DaphFab
@DaphFab Все файлы для библиотеки. Все в этом репозитории github. Все файлы .h, все файлы .cpp и т. Д. Их 11, плюс примеры., @Majenko
Ладно, понял. Я уже делал это раньше. Во всяком случае, я решил эту проблему, изменив "#include <Filters.h>" на " #include "Filters.h", @DaphFab
пожалуйста, объясните, почему вы это сделали, чтобы люди могли решать подобные проблемы в будущем, @jsotola
Вот ваш окончательный ответ.
Вы должны сделать #include следующим образом (с двойными кавычками, а не < > скобками)
#включить "Filters.h"
Это заставит компилятор Arduino искать в папке проекта.
Использование скобок < > сообщает компилятору, что оно находится в области стандартной библиотеки.
Я только что протестировал это с помощью следующего скрипта.
#include "mytest.h"
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
Файл mytest.h
является пустым (в нем нет текста).
Это не сработало бы, пока я не включил бы его, используя метод двойных кавычек.
- avrdude ser_open() can't set com-state
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Какое максимальное энергопотребление Arduino Nano 3.0?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Питание светодиодной ленты - Сколько ампер?
- Arduino nano как клавиатура HID
- Как я могу запитать Arduino Nano от батареи LiPo, желательно 3,7 В
- В чем разница между библиотеками Software Serial? Какая из них совместима с Arduino Nano?
А где вы разместили библиотеку?, @gre_gor
Я включил библиотеку в ту же папку, где сохранил свой код, @DaphFab
Вы читали эти 2 страницы? https://gcc.gnu.org/onlinedocs/gcc-2.95.3/cpp_1.html#SEC6 , https://gcc.gnu.org/onlinedocs/cpp/Search-Path.html, @VE7JRO