Сьогодні проект зрушив з місця, добре що Ардуїно — сьогодні свято, паяти не буду, а на платі Arduino все можна з'єднати стандартнимиконтактами.Я завжди програмував на Баском, тому що працював змікроконтролерами, а не ардуїно.Тепер довелося вникати в С (абоС++), які використовуються в середовищі Ардуїно.
Для перевірки написаного скетчу під'єднав дисплей 2004, так як 8х2не підпаяв контролер i2C. Внизу дисплей, який буде стояти вавто
Використовував годинник реального часу DS3231 з вбудованим датчикомтемператури, контролер Arduino Pro Mini, макетну плату (на яку явже давно напаяв штирі, гнізда, панельки та використовую її длязбирання тестових макетів) та власне дисплей.
для заливання скетчу використовую USB to TTL Serial Adapter
Дисплей і годинник працюють за протоколом i2C, багато хто радитьпідтягувати контакти пінів А4 і А5 (SDA і SCL відповідно) черезрезистори 1-10 кОм. У мене все запрацювало і без резисторів.Питання до фахівців:навіщо потрібні ці резистори, наскільки язрозумів їх підключають тільки у разі використання кількохпристроїв за протоколом i2C? -Приклади-DS1307RTS-SetTime провівсинхронізацію годинника з ПК. На моніторі з'явилися реальна дата ігодинник, можна починати написання програми.
Мій програми не претендує на зразок, я сам поки що вчусяпрограмувати Ардуїно, але й не дуже великий — використовувавстандартні команди зі встановлених бібліотек Годин і Дисплею.br/>
LiquidCrystal_I2C lcd(0x27, 16, 2); //Встановлюємо дисплей
#include
DS3231 rtc(SDA, SCL);
void setup()
lcd.init();
lcd.backlight(); //Включаємо підсвічування дисплея
rtc.begin();
lcd.setCursor(0, 0);
lcd.print("BA3 2108");
delay(2000);
lcd.setCursor(0, 1);
lcd.print(" 1987 ");
delay(3000);
<
}
//Виводимо час і дату протягом 10 с
while(dat< 10){
lcd.setCursor(0, 0);
lcd.print (rtc.getTimeStr());
lcd. setCursor(0, 1);
lcd.print(rtc.getDateStr(FORMAT_SHORT, FORMAT_LITTLEENDIAN));
delay (1000);
dat++; }
int tem=0;
//Виводимо час і температуру протягом 5 с
while(tem< 5 ){
lcd.setCursor(0, 0);
lcd.print(rtc.getTimeStr());
lcd.setCursor(0, 1) );
lcd.print("T=");
lcd.print(rtc.getTemp());
lcd.print("C ");
delay (1000);
tem++; }
}
результат роботи
> Для мене великою труднощами було написання циклу затримки 10і 5 с для відображення даних, допускав елементарні помилки. Звичкавід Баскома та записів операторів на Бейсику та ВіжуалБейсіку недає нормально перейти на С, але за допомогою інтернету швидко всевиправив. Ось результат роботи.
Може хто скаже, навіщо використовувати Ардуїно, якщо можна взятиТиньку 2313 і той самий годинник? Ціна, що Ардуїно, що АВР-кипрактично однаково стоять, і нехай я не використовую ще багатопінів, але в перспективі до Ардуїно набагато простіше будепідключити периферію! Через кілька днів думаю що "заробить" ідисплей від Нокії вже підключив працюю з датчиками.






Коментарі18
Добрий день! На скільки цей модуль годинника точний? Підключив 1307 і розчарувався. На добу на 12-15 секунд тікають.
Цей точний, є вбудована термозалежність, за рік втекли на 15-20 секунд
mynobook.blogspot.com.by/2016/05/ds3231.htmlтут робоча бібліотека
Спробуйте зробити у FLprog. дуже легко і швидко виходить ... можна ще й стрілку з назвою параметра прописати ...
Все прошився...справа була в бібліотеці...перебрав штуки 3.с 4 запрацювало
у вас немає готового скетчу файл.ino?
скетч не заливається ... свариться
Як? Помилка? Код?
походу…
драйв псує скетч ... навіть якщо копіюєте сюди ... стає багато помилок ... переправляв ... все одно не хоче заливати
кинь адресу в ЛЗ увечері знайду
не той кинув
їв пошту кинь у ЛЗ, скину ввечері оригінал скетчу
я б не став використовувати в тілі затримки, краще керувати за часовими інтервалами, типу такого unsigned long loopTime_dallas, currentTime; void setup() currentTime=millis();loopTime_dallas=currentTime;void loop() currentTime=millis (); // Опитуванн...
Дякую! Врахую, я тільки почав вивчати і для мене СІ ще не зовсім звична, ідеї є але купа часу йде на реалізацію та вивчення коду. День витратив, щоб зрозуміти як втиснути монохромну картинку на дисплей від Нокії і як зробити файл з бінарним кодом зоб...
Так! Мені ще рости і рости до програмування!
Так у мене теж не все гладко, писати програми на ПК це зовсім інше(((
Згоден!