не проходит компилирование
- Войдите на сайт для отправки комментариев
Пнд, 20/01/2014 - 23:40
сижу неделю и не могу продвинуться, хотел повторить Инкубатор под управлением Ардуино УНО, автор tamerlan37 . Но при компиляции программы зависаю на строке 15
DHTdht(DHTPIN, DHTTYPE); не могу понять в чем ошибка, пробовал и другие программы схожие, результат тот же.
int led2 = 4;// "таймер переворот" int led3 = 2;// нагреватель int led4 = 5;//туманогенератор #include <DS1307RTC.h> #include <Time.h> #include <Wire.h> #include <LiquidCrystal.h> #include "DHT.h" #define DHTPIN 3 // куда подключен термодатчик #define DHTTYPE DHT11 // DHT 11 используемый термодатчик //#define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht(DHTPIN, DHTTYPE); LiquidCrystal lcd(8, 9, 10, 11, 12, 13); void setup() { Serial.begin(9600); dht.begin(); while (!Serial) ; // wait for serial delay(200); pinMode(led2, OUTPUT);// сигнал "таймер" pinMode(led3, OUTPUT);// сигнал нагрева pinMode(led4,OUTPUT);//сигнал туманогенератора Serial.println("DS1307RTC Read Test"); Serial.println("-------------------"); lcd.begin(16, 2); // печатаем первую строку lcd.print("Inkubator" ); lcd.setCursor(1, 1); delay(500); // печатаем вторую строку lcd.print("tamerlan-1"); delay(500); } void loop() { float h = dht.readHumidity();//обозначение влажности float t = dht.readTemperature(); //обозначение температуры tmElements_t tm; //вывод на экран дата и влажность {lcd.setCursor(0, 1); print2digits(tm.Day); lcd.write('/'); print2digits(tm.Month); lcd.write('/'); lcd.print(tmYearToCalendar(tm.Year)); lcd.write('h'); print2digits (h); lcd.write("*H "); lcd.setCursor(0, 0);//вывод на экран время и температура print2digits(tm.Hour); lcd.write(':'); print2digits(tm.Minute); lcd.write('`'); print2digits(tm.Second); lcd.write('t'); print2digits (t); lcd.write("*C "); } if (RTC.read(tm)) //информацыя в sereal monitor { Serial.print("Ok, Time = "); Serial.print(tm.Hour); Serial.write(':'); Serial.print(tm.Minute); Serial.write(':'); Serial.print(tm.Second); Serial.print(", Date (D/M/Y) = "); Serial.print(tm.Day); Serial.write('/'); Serial.print(tm.Month); Serial.write('/'); Serial.print(tmYearToCalendar(tm.Year)); Serial.println(); } else { if (RTC.chipPresent()) { Serial.println("The DS1307 is stopped. Please run the SetTime"); Serial.println("example to initialize the time and begin running."); Serial.println(); } else { Serial.println("DS1307 read error! Please check the circuitry."); Serial.println(); } delay(900); } delay(500); if ((tm.Second)>58) //условия таймера { digitalWrite(led2, HIGH);//включает таймер Serial.print("Taimer On!! ");//вывод инфо состояния lcd.setCursor(13, 0);//вывод инфо состояния на LCD lcd.print("%"); } else { digitalWrite(led2, LOW); Serial.print("Taimer OFF"); } if (t<17)//условия терморегуляции { digitalWrite(led3,HIGH); Serial.print("Vkluchen nagrev!!");//вывод инфо состояния lcd.setCursor(15, 0); lcd.print("^");//вывод инфо состояния на LCD //delay (500); } else { digitalWrite(led3,LOW); Serial.print("Temp ok ");//вывод инфо состояния lcd.setCursor(15, 0); lcd.print("~");//вывод инфо на LCD } if (h<60)//условия терморегуляции { digitalWrite(led4,HIGH); Serial.print("Vkluchen tuman!!");//вывод инфо состояния lcd.setCursor(14, 0); lcd.print("#");//вывод инфо состояния на LCD //delay (500); } else { digitalWrite(led4,LOW); Serial.print("Vlagnost ok ");//вывод инфо состояния lcd.setCursor(14, 0); lcd.print("~");//вывод инфо состояния } } void print2digits(int number) { if (number >= 0 && number < 10) { lcd.write('0'); } lcd.print(number); }
А какая ошибка должны сами догадаться ?
sketch_jan21a:15: error: 'DHT11' was not declared in this scope
sketch_jan21a.ino: In function 'void setup()':
sketch_jan21a:20: error: 'class DHT' has no member named 'begin'
Вот что пишет Ардуино.
А где находятся файлы DHT.h и DHT.cpp?
В библиотеке в папке libraries, менял на другие скачивал с сайтов, распаковывал. пробовал по разному и указывал на архив. "добавить библиотеку" Вот и парюсь почему не идет.
Да там в ковычках
#include "DHT.h"
я на это обратил внимание и стирал эту строку и добавлял из библиотеки DHT.h и 8 строка становилась c правильными скобками < > но результат тот же.Пробуйте отдельно пример работы с датчиком запустить.
Если уж пробуйте разные библиотеки,то учитывайте ,что они по разному настраиваются
Вот библиотека удобнее http://homes-smart.ru/upload/arduino/DHTAUTO.zip с автоматическим определением датчиков
попробовал поставить, проблема та же самая. Взял другую программу для пробы,тоже самое ругает строку №16 sketch_jan21a:16: error: 'DHT22' was not declared in this scope. вероятно копаю не там. Тест библиотеки примеры DHT_test нормально компилируеться.
нашел другую библиотеку DHT и сдвинулось с места , уперся в строку DHT .begin(); напечатал маленькими буквами dht.begin(); и тут прошло. дальше голову ломаю.
нашел другую библиотеку DHT и сдвинулось с места , уперся в строку DHT .begin(); напечатал маленькими буквами dht.begin(); и тут прошло. дальше голову ломаю.
Программирование как головоломка, ничего не поделать...
Трудно на ощупь, когда образования не хватает, вот и парюсь. Буду дальше осваивать науку программирования. Чем больше понимаю, тем больше убеждаюсь , что ничего не понимаю!
Здравствуйте люди. Собираю светодиодный куб 4х4х4 на Arduino Nano. Файл программы написан на Си, скачан со страницы проекта куба. Пытаюсь компилировать его через WinAVR как в этой статье http://robocraft.ru/blog/arduino/116.html Пути прописал, но компиляция не проходит, видно на картинке. Может быть пути как то не так прописал..?
Скорей всего путь к файлу make.exe у Вас в переменной среды path отсутствует, потому при запуске make all, система сборки его не находит.
Помогите пожалуйста разобраться. Я не программист. Как было сказано выше собираю светодиодный куб.
Насчет прописывания путей к файлу make.exe: изначально у меня нету папки c:\utils\. Я прописал пути так
D:\Program Files\Arduino\hardware\tools\avr\utils\bin;
D:\Program Files\Arduino\hardware\tools\avr\bin;
D:\Program Files\Arduino\hardware\tools\avr\avr\bin
Компиляция прошла с множеством ошибок. Картинка.
В проекте WinAvr, а пути к ардуино компилятору. Нужно использовать winavr компилятор.
плохая идея от Microsoft
D:\Program Files\Arduino\hardware\tools\avr\utils\bin;
D:\Program Files\Arduino\hardware\tools\avr\bin;
D:\Program Files\Arduino\hardware\tools\avr\avr\bin
сколько копий об этот пробел в строке поломали
все грамотные разработчики мира правильно распологают с путями где нет запрещенных символов пробелы дебило знаки восклицания и остальная спец хрень управления, а только латиница и цифры
кроме того Java программисты не разрешают 1-ым символом писать цифры что очень логично
просто тупо скопируйте весь каталог arduino в корень
правильный путь такой
C:\Arduino\
и у вас 90% косяков с путями изчезнет
достаточно просто скопировать и работать от правильного корня
это не ваша и не ардуиноводов косяк это косяк от Microsoft
попрограммируете не только на Windows сразу будуте видеть
насколько я вижу вызов должен будет получиться у вас такой
d:\одна команда !!! передает результат Files\Arduino\...avr-gcc с ключами
дибилизм
ну и с явами надеюсь у вас от корня типа c:\jdk170
хотя вы мало дали информации
какая операционка
то что мелкомягкие компилятор arduino загнали в дурко путь это я вижу
с WinAVR-ом я тоже не помню проблем ставишь относительно корня и все
рабочие папки тоже не дебильные типа c:\document пробел and пробел
короче смотри правильный корень
плохая идея от Microsoft
D:\Program Files\Arduino\hardware\tools\avr\utils\bin;
думал, что это проблема времён windows 98 - с какого будуна у меня путь D:\Program Files mini\arduino-1.0.5 работает?
поделись, как добиться плохиг идей майкрософт?
плохая идея от Microsoft
D:\Program Files\Arduino\hardware\tools\avr\utils\bin;
думал, что это проблема времён windows 98 - с какого будуна у меня путь D:\Program Files mini\arduino-1.0.5 работает?
поделись, как добиться плохиг идей майкрософт?
попрограммируй на НЕ Windows поймешь почему у тебя работает
попрограммируй на НЕ Windows поймешь почему у тебя работает
на калькуляторе или на деревянных счётах?
о чём вообще речь?
на перфокартах
на перфокартах
на перфокартах
конечно когда диодные поля распаивали пробелов не было ведь
вот покажи где пробелы?
так и не понял, почему проблема винды проявляется на невинде.
так и не понял, почему проблема винды проявляется на невинде.
понятно
больше не наливаем
блин на Adruino Leonardo 3 ноги мертвые
греется как утуг
но компилируется
2 часа каждую ногу коротил и правил код
но все компилируется
что я делаю не так?
но все компилируется
что я делаю не так?
странно это всё - если у автомобиля снять три колеса, то двигатель не заводится
Цитата: В проекте WinAvr, а пути к ардуино компилятору. Нужно использовать winavr компилятор.
Если можно, поподробнее опишите. Пытаюсь компилировать уже по-всякому. Не получается :(
Если можно, поподробнее опишите. Пытаюсь компилировать уже по-всякому. Не получается :(
WinAvr у меня отсутствует, ради этого ставить его никакого желания, потому как мне он не нужен.
Пропишите пути к компилятору WinAvr, а не к Ардуино. Это то Вы сможете. Смогли же к Ардуино прописать.
Благодарю, что подсказываете. Я попробовал прокомпилировать пробный файл (avrblink.c), как в статье. Всё удачно прошло, даже потом смог его залить в мк. Но вот с моим файлом беда. Компилятор ругается что нет файла Arduino.h, который включен в главном файле. Картинка.
Дайте ссылку на скетч для куба, иначе мы тут через полгода не закончим.
О да тут весело
рубка на паяльниках в самом разгаре
Дайте ссылку на скетч для куба, иначе мы тут через полгода не закончим.
http://www.masterkit.ru/main/set.php?code_id=1298517
Зачем Вам нужен WinAvr, всё прекрасно компилируется в ArduinoIDE. Далее в моих примерах, ArduinoIDE установлено в каталог D:\Programs\Arduino-1.0.5, у Вас это явно другой каталог, потому пути сообразите какие у Вас.
1. Я скачал библиотеку и разархивировал её каталог D:\Programs\Arduino-1.0.5\libraries\MP1051
2. Скачал примеры, разархивировал их в каталог D:\Programs\Arduino-1.0.5\libraries\MP1051\examples
3. Содержимое каталога D:\Programs\Arduino-1.0.5\libraries\MP1051
4. Содержимое каталога D:\Programs\Arduino-1.0.5\libraries\MP1051\examples
5. Запустил ArduinoIDE v1.0.5, выбрал в примерах STEP_1. Выбрал плату "Nano w/ 328"
6. Скомпилировал.
Хотите использовать WinAvr? Сначала на ArduinoIDE потренируйтесь, а потом перебирайтесь на WinAvr
Повторил на другом компе, у меня снова всё корректно компилируется. Выполнял точно так, как написал в сообщении #32
Повторил на другом компе, у меня снова всё корректно компилируется. Выполнял точно так, как написал в сообщении #32
Заработало!)) Смог таки наконец запрограммировать. Но наверное я как то не так это делаю, потому что сейчас работает только один эффект, на пульт не реагирует. Как правильно залить примеры?
Как правильно залить пример? Как обычный скетч.
Каждый пример - делает какое-то определенное действие, смотрите комментарии в скетчах.
Например, STEP_1:
Ну что за нафиг?? на step2 не хочет загружаться, при том что остальные примеры по отдельности нормально загружаются.
Вроде бы ясно написано, что setup и loop уже определены в step_1, Вы, не знаю как (копировали в один каталог что ли?) открыли два скетча одновременно, конечно будет дублирование