Не работают библиотеки
- Войдите на сайт для отправки комментариев
Сб, 24/09/2016 - 22:49
Здравствуйте! Столкнулся с такой пробемой. Скачиваю библиотеки, устанавливаю их по разному, через IDE, через ZIP, и даже просто закидываю в папку с библиотеками.
1) Библиотеки не подсвечиваются после установки.
2) Ни один скетч с примером установленной библиотеки не компилируется, ругается постоянно на разные вещи. То область не указана, то еще что то.
А вообще я хотел изначально подключить модуль часов реального времени и сделать часы.
скачивал различные готовые примеры, ни один не компилируется.
Я по началу думал что IDE не подходит, но ведь он не может же прям ко всему не подойти.
#include <Wire.h> #include <EEPROM.h> #include <TM1637.h> #include <DS1307.h> //Массив, содержащий время компиляции char compileTime[] = __TIME__; //Номера пинов Arduino, к которым подключается индикатор #define DISPLAY_CLK_PIN 12 #define DISPLAY_DIO_PIN 13 //Для работы с микросхемой часов и индикатором мы используем библиотеки TM1637 display(DISPLAY_CLK_PIN, DISPLAY_DIO_PIN); DS1307 clock; void setup() { //Включаем и настраиваем индикатор display.set(); display.init(); //Запускаем часы реального времени clock.begin(); //Получаем число из строки, зная номер первого символа byte hour = getInt(compileTime, 0); byte minute = getInt(compileTime, 3); byte second = getInt(compileTime, 6); //Импровизированный хэш времени //Содержит в себе количество секунд с начала дня unsigned int hash = hour * 60 * 60 + minute * 60 + second; //Проверяем несовпадение нового хэша с хэшем в EEPROM if (EEPROMReadInt(0) != hash) { //Сохраняем новый хэш EEPROMWriteInt(0, hash); //Готовим для записи в RTC часы, минуты, секунды clock.fillByHMS(hour, minute, second); //Записываем эти данные во внутреннюю память часов. //С этого момента они начинают считать нужное для нас время clock.setTime(); } } void loop() { //Значения для отображения на каждом из 4 разрядов int8_t timeDisp[4]; //Запрашиваем время с часов clock.getTime(); //Получаем десятки часов с помощью целочисленного деления timeDisp[0] = clock.hour / 10; //Получаем единицы часов с помощью остатка от деления timeDisp[1] = clock.hour % 10; //Проделываем то же самое с минутами timeDisp[2] = clock.minute / 10; timeDisp[3] = clock.minute % 10; //... а затем выводим его на экран display.display(timeDisp); //у нас нет отдельных разрядов для секунд, поэтому //будем включать и выключать двоеточие каждую секунду display.point(clock.second % 2 ? POINT_ON : POINT_OFF); } char getInt(const char* string, int startIndex) { return int(string[startIndex] - '0') * 10 + int(string[startIndex+1]) - '0'; } //Запись двухбайтового числа в память void EEPROMWriteInt(int address, int value) { EEPROM.write(address, lowByte(value)); EEPROM.write(address + 1, highByte(value)); } //Чтение числа из памяти unsigned int EEPROMReadInt(int address) { byte lowByte = EEPROM.read(address); byte highByte = EEPROM.read(address + 1); return (highByte << 8) | lowByte; }#include <Wire.h> #include <Time.h> #include <DS1307RTC.h> void setup() { Serial.begin(9600); while (!Serial) ; // wait for serial delay(200); Serial.println("DS1307RTC Read Test"); Serial.println("-------------------"); } void loop() { tmElements_t tm; if (RTC.read(tm)) { Serial.print("Ok, Time = "); print2digits(tm.Hour); Serial.write(':'); print2digits(tm.Minute); Serial.write(':'); print2digits(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(9000); } delay(1000); } void print2digits(int number) { if (number >= 0 && number < 10) { Serial.write('0'); } Serial.print(number); }Ну tmElements_t не обявлен. Чего шуметь посреди ночи? Найдите где оно должно обявится да подключите. Может и еще чего полечится.
первые два скетча не являются примерами из библиотек - предъявляй претензии к авторам скетчей
Библиотека DS1307RTC не корректна для ИДЕ текущей версии. Возьми библиотеку от сюда:https: //arduino-ua.com/prod22-Real_Time_Clock_Modyl_DS1307
http://playground.arduino.cc/Code/Time
почитайте, там есть ссылки на исправленые версии библиотек.
Благодарю!)