Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Идея ко Дню Святого Валентина - счетчик дней, проведенных вместе (фото)

Компоненты и расходные материалы

Часы реального времени (RTC)
DS3231
× 1
Arduino KYX-5461AS 4-значный 7-сегментный
× 1
Макет (общий)
× 1
Перемычки (общие)
× 1
Arduino UNO
× 1
Резистор 1 кОм
× 1

Об этом проекте

Еще в 2017 году, в сентябре, я думаю, я только начинал второй год в университете и встретил потрясающую девушку. Я переехал в квартиру с ней и ее друзьями, и в итоге мы делили этаж дома вместе, только я и она. Так мы поговорили и стали лучшими друзьями, а через пару месяцев мы начали встречаться друг с другом. День, когда мы начали, был 10.12.2017 (ДАТА ВЕЛИКОБРИТАНИИ).

День; 10-е

Месяц; 12-е

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

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

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

В любом случае, наслаждайтесь!

Код

  • DaysCounter.ino
DaysCounter.ino C / C ++
для этого вам нужно будет скачать Arduino IDE
ZIP-файл библиотеки RTC,
семисегментный zip-архив

сохраните обе библиотеки в папку с библиотеками, где установлен arduino ide.

оттуда откройте arduino ide и нажмите «эскиз»
'включить библиотеки'
'добавить библиотеки zip'

следуйте приведенному ниже коду
ДЛЯ НАСТРОЙКИ ВРЕМЕНИ - в строке 7 в скобках (2017, 12, 9, 0, 0, 0,) вам нужно изменить первые 3 числа.
т.е. 2017, 12, 9 ----> 2014, 4, 6,
какое бы свидание вы ни собирались, укажите его здесь.

затем скомпилируйте и выберите загрузку, и если все прошло по плану и вы правильно выполнили шаги, он должен отобразить количество дней, в течение которых вы были вместе
 #include  #include  SevSeg sevseg; // Создание экземпляра объекта контроллера из семи сегментов RTC_DS3231 rtc; DateTime dtBegin (2017, 12, 9, 0, 0, 0); // !!!! настройте время здесь !!!!! TimeSpan tsPassed; void showInfo (const DateTime &dt) {Serial.print ("NOW:"); Serial.print (dt.year (), DEC); Серийный принт ('/'); Serial.print (dt.month (), DEC); Серийный принт ('/'); Serial.print (dt.day (), DEC); Серийный.принт (''); Serial.print (dt.hour (), DEC); Серийный принт (':'); Serial.print (dt.minute (), DEC); Серийный принт (':'); Serial.print (dt.second (), DEC); Serial.print ("\ tPASSED:"); Serial.print (tsPassed.days (), DEC); Серийный.принт (''); Serial.print (tsPassed.hours (), DEC); Серийный принт (':'); Serial.print (tsPassed.minutes (), DEC); Серийный принт (':'); Serial.print (tsPassed.seconds (), DEC); Serial.println ("");} // =========================================//// =========================================void delayWithUpdate ( uint32_t parDelay) {uint32_t start =millis (); в то время как (millis () <запущено + parDelay) {sevseg.refreshDisplay (); }} // =========================// =========================void setup () {Serial.begin (9600); Serial.println (__ ВРЕМЯ__); if (! rtc.begin ()) {Serial.println ("Не удалось найти RTC"); // ===Здесь устройство будет заморожено. // ????????? Может быть некоторая ошибка мигает светодиодом, было бы хорошо использовать ?????? в то время как (1); } задержка (1000); // !!!!! ЧТОБЫ УСТАНОВИТЬ ВРЕМЯ:// 1) раскомментируйте строку ниже (под этими комментариями) // 2), загрузите код еще раз // 3) ЗАПИСАТЬ СТРОКУ // 4). uploand ЕЩЕ ОДНО ВРЕМЯ rtc.adjust (DateTime (F (__ DATE__), F (__ TIME__))); // строка для настройки времени байт numDigits =4; byte digitPins [] ={7, 8, 9, 10}; // СЕГ:А Б В Г Д Е Ж. // PIN:11 7 4 2 1 10 5 3 // ARDU:2 3 4 5 11 12 13 6 // байтовый сегмент Pins [] ={2, 3, 4, 5, 11, 12, 13, 6}; byte segmentPins [] ={2, 3, 4, 5, 11, 12, 13, 6}; bool resistorsOnSegments =false; // «false» означает, что резисторы находятся на выводах цифр byte hardwareConfig =COMMON_CATHODE; // Параметры см. В README.md bool updateWithDelays =false; // Рекомендуемое значение по умолчанию - false booladingZeros =false; // Используйте 'true', если хотите сохранить ведущие нули bool disableDecPoint =true; // Используйте 'true', если ваша десятичная точка не существует или не подключена sevseg.begin (hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments, updateWithDelays, leadingZeros, disableDecPoint); sevseg.setBrightness (100); sevseg.setNumber (1234, 1); delayWithUpdate (1000); sevseg.setNumber (8888, 1); delayWithUpdate (1000); } // =========================// =========================void loop () {sevseg.refreshDisplay (); DateTime now =rtc.now (); tsPassed =now-dtBegin; статический uint32_t nextReportMillis =0; статический uint16_t prevDaysPassed =0; если (tsPassed.days ()! =prevDaysPassed) {prevDaysPassed =tsPassed.days (); sevseg.setNumber (prevDaysPassed, 0); } sevseg.refreshDisplay (); if (millis ()> nextReportMillis) {// ===ПЕЧАТЬ НЕКОТОРОЙ ИНФОРМАЦИИ ЗДЕСЬ showInfo (now); nextReportMillis =millis () + 5000; }} 

Схема

https://www.circuito.io/app?components=512,11021]

скопируйте и вставьте ссылку.

нажмите добавить компоненты

тип;
RTC (добавить);

7-сегментный дисплей 20 мм (выбирайте общий, не выбирайте Sparkfun);

следуйте схеме и прикрепите каждый штырь с помощью соединительных кабелей.

Производственный процесс

  1. Цифровые игральные кости Arduino
  2. Железный человек
  3. Найди меня
  4. Роботизированная рука, напечатанная на 3D-принтере Arduino
  5. Управление увлажнителем Arduino
  6. Счетчик автомобилей с использованием Arduino + Обработка + PHP
  7. Счетчик RPM на основе Arduino с новым и более быстрым алгоритмом
  8. NeoMatrix Arduino Pong
  9. Джойстик Arduino
  10. FM-радиоприемник Arduino TEA5767