Часы на arduino nano – Arduino электронные часы своими руками на основе микроконтроллера

Часы пропеллер на Arduino NANO своими руками | Лучшие самоделки

Сегодня я буду делать замечательное устройство, которое приковывает взгляд людей своим магическим светодиодным свечением, это – часы, но не обычные, а часы-пропеллер на Arduino NANO. Линейка светодиодов вращаясь по кругу с высокой скоростью вырисовывает циферблат аналоговых часов с ходящими по ним стрелками. Кроме такого отображения они могут показывать любую другую информацию, например, цифровые часы с датой и различными надписями. Я думаю, что подобные часы-пропеллер должен сделать для себя каждый гик-радиолюбитель так как это легко, а результат просто впечатляющий!

Часы пропеллер на Arduino NANO своими руками

Что понадобится чтобы сделать вращающиеся часы:

  • Arduino NANO;
  • Яркие красные светодиоды – 11 шт;
  • Яркие зелёные светодиоды – 5 шт;
  • Синий светодиод – 1 шт;
  • Резисторы 330 Ом – 16 шт;
  • Резистор 2,2 кОм – 1 шт;
  • Резистор 10 кОм – 1шт;
  • Датчик Холла W130;
  • Макетная плата;
  • Небольшой неодимовый магнит;
  • Двигатель от кассетного магнитофона;
  • Аккумулятор – 3,7 В, 240 мА/ч.

Как сделать часы-пропеллер, пошаговая инструкция:

Шаг 1

Часы-пропеллер будем собирать по такой схеме:

Часы-пропеллер схема

Часы пропеллер на Arduino NANO своими руками

Отрежем от макетной платы полоску, на ней будет размещаться вся схема часов-пропеллера вместе с аккумулятором и Ардуино.

Часы пропеллер на Arduino NANO своими руками

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

Часы пропеллер на Arduino NANO своими руками

Часы пропеллер на Arduino NANO своими руками

Часы пропеллер на Arduino NANO своими руками

На фото пока нет самого крайнего синего светодиода, который будет сигнализатором, что на часы подано питание и который будет вырисовывать внешнюю красивую синюю рамку. Так что можете сразу его впаять, я это сделал позже, ему также понадобится резистор, на этот раз 2,2 кОм.

Шаг 2

На другом конце платы припаиваем коннекторы под плату Ардуино, чтобы плата могла в любое время без проблем быть извлечена из схемы часов. Плата не должна располагаться на самом конце мекетной платы, должно оставаться немного места для противовеса, который установим чуть позже. Вставляем плату Arduino на своё место.

Часы пропеллер на Arduino NANO своими руками

Шаг 3

Соединяем проводниками ножки Ардуины со светодиодами согласно схемы.

Часы пропеллер на Arduino NANO своими руками

Часы пропеллер на Arduino NANO своими руками

Теперь подключим датчик Холла.

Часы пропеллер на Arduino NANO своими руками

Часы пропеллер на Arduino NANO своими руками

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

Часы пропеллер на Arduino NANO своими руками

Часы пропеллер на Arduino NANO своими руками

Шаг 4

Между платой Arduino и светодиодами я просверлил отверстие. Взял сверло по диаметру вала двигателя надел на неё ролик который стоял на двигателе от кассетного магнитофона, продел свело через отверстие в плате и приклеил этот ролик к макетной плате. Затем взял ещё один точно такой же ролик и надел на сверло (чтобы ролики стояли ровно по оси) с другой стороны платы и также залил термоклеем.

Часы пропеллер на Arduino NANO своими руками

Часы пропеллер на Arduino NANO своими руками

Часы пропеллер на Arduino NANO своими руками

Часы пропеллер на Arduino NANO своими руками

Также термоклеем я зафиксировал проводники снизу платы в нескольких местах.

Часы пропеллер на Arduino NANO своими руками

Шаг 5

Всё, теперь можем заливать счетч часов-пропеллера в Ардуино, его Вы можете скачать отсюда.

Шаг 6

На скорую руку сделал корпус из косков ДСП и фанеры, покрасил переднюю панель в чёрный цвет, по центру сделал отверстие для вала двигателя, который был прикреплён сзади.

Часы пропеллер на Arduino NANO своими руками

Часы пропеллер на Arduino NANO своими руками

Часы пропеллер на Arduino NANO своими руками

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

Шаг 7

Надеваем на вал двигателя нашу плату. Теперь нужно приклеить неодимовый магнит в верхней части, в том месте где будет проходить датчик Холла.

Часы пропеллер на Arduino NANO своими руками

Теперь начинаем плавно подавать напряжение, чтобы часы отрегулировать таким образом, чтобы отметка 12 часов была точно вверху.

Часы пропеллер на Arduino NANO своими руками

Шаг 8

Когда я убедился, что всё работает отлично, я припаял синий светодиод «состояния часов» и также подпаял выключатель питания.

Часы пропеллер на Arduino NANO своими руками

Часы пропеллер на Arduino NANO своими руками

Часы пропеллер на Arduino NANO своими руками

Всё, самодельные часы-пропеллер готовы! Чтобы их включить надо сначала переключить выключатель на плате во включенное состояние, при этом загорится синий крайний светодиод, а затем уже подаём питание на двигатель, настраивая на лабораторном БП необходимое напряжение, чтобы циферблат выровнялся.

Часы пропеллер на Arduino NANO своими руками

Часы пропеллер на Arduino NANO своими руками

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

Часы пропеллер на Arduino NANO своими руками

bestdiy.ru

делаем своими руками компактные часы

На нашем сайте было написано уже много уроков по созданию различных часов на основе Ардуино и микроконтроллеров — и самые недорогие часы, и цифровые часы на ATMega328, и даже самые стильные электронные часы. Сегодня мы сделаем современные, компактные и удобные наручные часы на основе платы Sparkfun Pro Micro и дисплея ST7789.

Шаг 1. Комплектующие

Для того, чтобы сделать компактные наручные часы на основе Ардуино или аналогов нам понадобятся следующий набор комплектующих:

Плата Arduino

На этот раз мы используем плату Sparkfun Pro Micro 3.3 V 8 MHz.

Дисплей

Используем ST7789 1.3″ IPS LCD.

Литий-полимерный аккумулятор

Возьмем для часов 301420 LiPo.

Зарядник LiPo

Используем плату для зарядки LiPo 15 х 15 мм.

Чип RTC

На этот раз мы используем DS3231M, это встроенный кварцевый генератор, никаких дополнительных компонентов не требуется.

Батарея RTC

Необязательно, только если вы хотите сохранить время, даже если батарея LiPo разряжена. MS412FE — это крошечная перезаряжаемая батарея емкостью 1 мАч, согласно спецификации RTC, 1 мАч может сохранять время в течение многих дней.

Ремешок для часов

Самый простой и недорогой вариант — заказать ремешок для часов из ткани шириной 20 мм.

Дополнительно

Дополнительно могут пригодиться, например, диод 1N5822, четыре 6 мм винта M2, лента из медной фольги и несколько проводов.

Шаг 2. Фиксируем плату и дисплей

Используйте небольшой кусок прозрачного пластика как на фото выше, чтобы скрепить вместе Pro Micro и дисплей.

Шаг 3. Подключаем землю

Прочитайте технические характеристики ЖК-дисплея, предоставленные вашим поставщиком.

Отрежьте немного ленты из медной фольги, соедините все выводы GND (земля) и отрицательные выводы дисплея и закрепите на пластине FPC. Затем паяем контакты с медной фольгой.

Шаг 4. Питание

Подсоедините выводы GND платы к медной фольге. Подключите контакты Vcc к выводу Vcc дисплея.

Шаг 5. Подключаем выводы дисплея

Вот краткое описание всех соединений:

LCD  -> Arduino
LED+ -> GPIO 10
SDA  -> GPIO 16(MOSI)
SCL  -> GPIO 15(SCLK)
RST  -> GPIO 18(A0)
DC   -> GPIO 19(A1)
CS   -> GPIO 20(A2)

Шаг 6. Удаляем индикатор питания

Индикатор питания всегда включен и потребляет более 1 мА непрерывно, поэтому лучше его убрать. Нужно распаять и аккуратно снять светодиод.

Шаг 7. Подключаем LiPo батарею

Вот краткое описание всех соединений:

Плата зарядки +ve      -> Pro Micro J1 коннектор рядом с USB сокетом (5V)
Плата зарядки -ve      -> Pro Micro GND пин
Плата зарядки Батарея +ve -> LiPo +ve -> 1N5822 диод -> Pro Micro Raw Pin
Плата зарядки Батарея -ve -> LiPo -ve

Большинство плат зарядки LiPo лучше использовать в качестве входа 5В. Тем не менее, плата Pro Micro не обеспечивает вывод USB 5В. К счастью, разъем J1 рядом с USB-разъемом на самом деле подключен к контакту USB 5В. Внимание! Не паяйте 2 разъема вместе.

Шаг 8. Подключаем RTC

DS3231M очень маленький и требует подключения к крошечной батарее, будьте терпеливы и соедините все вместе:

DS3231M pin 2 (Vcc)  -> плата Vcc
DS3231M pin 5 (GND)  -> плата GND, MS412FE RTC батарея -ve
DS3231M pin 6 (VBAT) -> MS412FE RTC батарея +ve
DS3231M pin 7 (SDA)  -> плата GPIO 2 (SDA)
DS3231M pin 8 (SCL)  -> плата GPIO 3 (SCL)

Шаг 9. Подключаем датчик движения

Мы можем использовать 2 датчика вибрации в качестве датчика движения, чтобы активировать «пробуждение» платы. Однако в часах нет места для установки двух 5-миллиметровых датчиков вибрации. Мы пытались заменить на один 3 мм датчик вибрации и тестировали несколько дней. Но это приводит к неверному пробуждению часов и батарея разряжается в течение дня.

Шаг 10. Программируем

Если вы этого еще не сделали — скачайте и установите Arduino IDE.

Добавить поддержку Sparkfun Pro Micro

Следуйте инструкциям по установке, чтобы добавить поддержку плат Sparkfun: https://github.com/sparkfun/Arduino_Boards

После установки поддержки не забудьте выбрать правильную плату в Arduino IDE:

Сервис -> Плата -> SparkFun Pro Micro (Tools -> Board -> SparkFun Pro Micro)

Сервис -> Процессор -> ATmega32U4 (3,3 В, 8 МГц) (Tools -> Processor -> ATmega32U4 (3.3V, 8MHz))

Библиотека Adafruit RTClib

Используйте Arduino IDE Library Manager для установки RTClib: https://www.arduino.cc/en/guide/libraries

Библиотека Arduino GFX

Добавьте библиотеку Arduino_GFX в Arduino IDE: https://github.com/moononournation/Arduino_GFX.git

Если вы никогда этого не делали, то просто добавьте библиотеку из GitHub, — нажмите зеленую кнопку «Клонировать или скачать», а затем «Скачать ZIP». Далее в Arduino IDE выберите меню: Эскиз -> Включить библиотеку -> Добавить библиотеку .ZIP … -> выберите загруженный файл ZIP (англ.: Sketch -> Include Library -> Add .ZIP Library… -> ZIP).

Библиотека LowPower

Добавьте библиотеку Arduino_GFX в Arduino IDE: https://github.com/rocketscream/Low-Power.git

Установка такая же, как описано выше.

Основной код часов Arduino  — Watch Core

Основной код наших часов Ардуино можно скачать по ссылке: https://github.com/moononournation/ArduinoWatch.git. Также вы можете скачать ZIP-архив часов ниже:

Пожалуйста, используйте Arduino IDE, скомпилируйте и загрузите RTClibSetRTC.ino, чтобы инициализировать время в RTC. А затем скомпилируйте и загрузите Arduino_Watch.ino.

Шаг 11. Печатаем корпус на 3D-принтере

Скачать схему и проект корпуса можно по ссылке: https://www.thingiverse.com/thing:3799868

Шаг 12. Итоговый результат

Теперь вы можете показать то, что вы сделали своим друзьям! Кроме того, вы также можете:

  • запрограммировать и создать свой собственный циферблат;
  • добавить больше датчиков или компонентов, чтобы они стали, например, умными часами;
  • создать свой собственный корпус для часов.

arduinoplus.ru

Led часы на arduino nano. Часы на Arduino без использования модуля RTC

Во многих проектах Ардуино требуется отслеживать и фиксировать время наступления тех или иных событий. Модуль часов реального времени, оснащенный дополнительной батарей, позволяет хранить текущую дату, не завися от наличия питания на самом устройстве. В этой статье мы поговорим о наиболее часто встречающихся модулях RTC DS1307, DS1302, DS3231, которые можно использовать с платой Arduino.

Модуль часов представляет собой небольшую плату, содержащей, как правило, одну из микросхем DS1307, DS1302, DS3231.Кроме этого, на плате практически можно найти механизм установки батарейки питания. Такие платы часто применяется для учета времени, даты, дня недели и других хронометрических параметров. Модули работают от автономного питания – батареек, аккумуляторов, и продолжают проводить отсчет, даже если на Ардуино отключилось питание. Наиболее распространенными моделями часов являются DS1302, DS1307, DS3231. Они основаны на подключаемом к Arduino модуле RTC (часы реального времени).

Часы ведут отсчет в единицах, которые удобны обычному человеку – минуты, часы, дни недели и другие, в отличие от обычных счетчиков и тактовых генераторов, которые считывают «тики». В Ардуино имеется специальная функция millis(), которая также может считывать различные временные интервалы. Но основным недостатком этой функции является сбрасывание в ноль при включении таймера. С ее помощью можно считать только время, установить дату или день недели невозможно. Для решения этой проблемы и используются модули часов реального времени.

Электронная схема включает в себя микросхему, источник питания, кварцевый резонатор и резисторы. Кварцевый резонатор работает на частоте 32768 Гц, которая является удобной для обычного двоичного счетчика. В схеме DS3231 имеется встроенный кварц и термостабилизация, которые позволяют получить значения высокой точности.

Сравнение популярных модулей RTC DS1302, DS1307, DS3231

В этой таблице мы привели список наиболее популярных модулей и их основные характеристики.

НазваниеЧастотаТочностьПоддерживаемые протоколы
DS13071 Гц, 4.096 кГц, 8.192 кГц, 32.768 кГцЗависит от кварца – обычно значение достигает 2,5 секунды в сутки, добиться точности выше 1 секунды в сутки невозможно. Также точность зависит от температуры.I2C
DS130232.768 кГц5 секунд в суткиI2C, SPI
DS3231Два выхода – первый на 32.768 кГц, второй – программируемый от 1 Гц до 8.192 кГц±2 ppm при температурах от 0С до 40С.

±3,5 ppm при температурах от -40С до 85С.

Точность измерения температуры – ±3С

I2C

Модуль DS1307

DS1307 – это модуль, который используется для отсчета времени. Он собран на основе микросхемы DS1307ZN, питание поступает от литиевой батарейки для реализации автономной работы в течение длительного промежутка времени. Батарея на плате крепится на обратной стороне. На модуле имеется микросхема AT24C32 – это энергонезависимая память EEPROM на 32 Кбайт. Обе микросхемы связаны между собой шиной I2C. DS1307 обладает низким энергопотреблением и содержит часы и календарь по 2100 год.

Модуль обладает следующими параметрами:

  • Питание – 5В;
  • Диапазон рабочих температур от -40С до 85С;
  • 56 байт памяти;
  • Литиевая батарейка LIR2032;
  • Реализует 12-ти и 24-х часовые режимы;
  • Поддержка интерфейса I2C.

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

Взаимодействие с другими устройствами и обмен с ними информацией производится с помощью интерфейса I2C с контактов SCL и SDA. В схеме установлены резисторы, которые позволяют обеспечивать необходимый уровень сигнала. Также на плате имеется специальное место для крепления датчика температуры DS18B20.Контакты распределены в 2 группы, шаг 2,54 мм. В первой г

innovakon.ru

Светодиодные часы своими руками на ардуино (Arduino) WS2812 управляемых (адресных)

После очередной модернизации своего 3D принтера . Кстати статья и видео по модернизации Anet 8A скоро выложу.

И так о чем это я. Ах да. И вот решил я напечатать плоские и большие детали. Именно они у меня отрывались от стала 3D принтера. Даже бывало отрывало вместе со скотчем.

Нашел я модель светодиодных часов . Скачать модель можно со страницы автора.

Нашел я модель светодиодных часов

Для проекта желательно взять плату Arduino Nano , и модуль часов DS3231.

Сборка часов на Arduino и адресных светодиодах WS2812:

1. Печатаем все детали на 3D принтере.

Печатаем все детали на 3D принтере

2. Приклеиваем светодиодную ленту на 2 пластины и спаиваем их зигзагом.

Приклеиваем светодиодную ленту на 2 пластины и спаиваем их зигзагом

Нашел я модель светодиодных часов.

3. Устанавливаем решетки поверх ленты. Получим вот такой результат. Устанавливаем решетки поверх ленты

4. Укладываем все в корпус часов и крепим все на винтики М3.

Укладываем все в корпус часов и крепим все на винтики М3

5. Ставим крепление для ножек и крепим ножки.

Ставим крепление для ножек и крепим ножки.

6. Подключаем электронику по схеме.

Подключаем электронику по схеме.

Подключаем электронику по схеме.

7. Загружаем прошивку в Arduino. Автор использует Arduino Pro Mini, я решил использовать Arduino NANO v2 (ATmega168).

Загружаем прошивку в Arduino. Автор использует Arduino Pro Mini, я решил использовать Arduino NANO v2 (ATmega168)

Прошивка у автора мне не понравилась и я решил ее полностью переписать. В связи с тем что у часов всего 5 строк. То стандартные библиотеки для вывода текста на матрицу не подошли. И пришлось самостоятельно создавать каждый символ.

В итоги у часов получились вот такие возможности:

1. Настройка цвета циферблата.

2. Изменение яркости 10 режимов.

3. Вывод текущей даты в виде бегущей строки.

4. Сохранение всех настроек в энергонезависимую память. При выключении часы сохраняются все настройки.

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

6. Прошивка уменьшаться на Arduino Nano V2.0 (ATmega168) . При увеличение функционала часов необходимо использовать Arduino Nano V3.0 (ATmega328) .

В итоги у часов получились вот такие возможности

В связи с тем что я использовал Arduino Nano V2.0 (ATmega168), дальше расширять функционал не получится. Нет свободной памяти. Но если поставить Arduino Nano V3.0 (ATmega328) в которой памяти в 2 раза больше . Соответственно функционал можно расширят:

1. Сделать авто регулировку яркости. Поставив фото резистор.

2. Поставить спикер и написать настройку будильника.

3. К функциям будильника можно сделать стробоскоп. Мигать просто белым или как полицейская сирена одна сторона синим другая красным.

4. Поменять Arduino Nano на NodeMCU и сделать управление часами через смартфон. Вывести погоду, курс валюты. Грубо говорят сделать информер. Но так как дисплей часов не очень большой. Большая информация будет не очень читабельная.

У автора корпуса есть доработанные версии часов. Например подставка сделана уже побольше и часы более устойчивые. Также сделаны накладки которые закрывают провода с задней стороны.

Больше фото по проекту сотрите тут: Светодиодные часы своими руками на ардуино (Arduino) WS2312

Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.

Всем Пока-Пока. И до встречи в следующем проекте.

Файлы для скачивания

Clock_v1Clock_v1.ino10 KbСкачивать файлы могут только зарегистрированные пользователи.

portal-pk.ru

LED часы-сувенир бомба на arduino своими руками

#define MIDDLE 0 // G

#define UPPER_L 1 // F

#define LOWER_L 2 // E

#define BOTTOM 3 // D

#define LOWER_R 4 // C

#define UPPER_R 5 // B

#define TOP 6 // A

// pin 13 для отображения двоеточия

int groundPins[7] = {8, 7, 6, 5, 4, 3, 2}; // G, F, E, D, C, B, A

int digitPins[4] = {12, 11, 10, 9};

int ON = HIGH; // HIGH для подключения с общим анодом, LOW для подключения с общим катодом

int OFF = LOW; // LOW для подключения с общим катодом, HIGH для подключения с общим анодом

int number[10][7]; // Содержит информацию о том, какие сегменты, необходимые для каждой из 10 цифр

int digit[4];

 

int hours = 00;

int minutes = 00;

int elapsedMinutes = 0;

int seconds = 0;

int secon;

int hourset = A1;

int hoursetv = 0;

int minuteset = A2;

int minutesetv = 0;

int showsw = A0;

int showswv = 0;

unsigned long prevtime;

int showtime = 16380;

int delaytime = 200;

void setup()

{

  pinMode(13, OUTPUT);

  pinMode(hourset, INPUT);

  pinMode(minuteset, INPUT);

  pinMode(showsw, INPUT);

  digitalWrite(hourset, HIGH);

  digitalWrite(minuteset, HIGH);

  digitalWrite(showsw, HIGH);

  initNumber();

  for(int i=0; i < 7; i++) {

    pinMode(groundPins[i], OUTPUT);

    digitalWrite(groundPins[i], HIGH); // HIGH для подключения с общим анодом, LOW для подключения с общим катодом

  }

  for(int i=0; i < 4; i++) {

    pinMode(digitPins[i], OUTPUT);

    digitalWrite(digitPins[i], LOW); // LOW для подключения с общим катодом, HIGH для подключения с общим анодом

  }

}

 

void loop() {

  int n = 0;

  unsigned long time = millis() — (elapsedMinutes * 60000);

  seconds = (time / 1000);

  if (seconds > 60) {

    seconds = 0;

    minutes++;

    elapsedMinutes++;

    if (minutes >= 60) {

      minutes = 0;

      hours++;

      if (hours > 23) {

        hours = 0;

      }

    }

  }

  n = (hours * 100) + minutes;

  setDigit(n);

 

  for(int g=0; g < 7; g++) {

    digitalWrite(groundPins[g], LOW); // HIGH для подключения с общим анодом, LOW для подключения с общим катодом

    for(int i=0; i < 4; i++) {

      if (digit[i] < 0) {

        continue;

      }

      digitalWrite(digitPins[i], number[digit[i]][g]);

    }

    getDelay();

    digitalWrite(groundPins[g], HIGH); // HIGH для подключения с общим анодом, LOW для подключения с общим катодом

  }

  if (time — prevtime > 500) {

    prevtime = time;

    if (secon == 1) {

      secon = 0;

      return;

    }

    if (secon == 0) {

      secon = 1;

      return;

    }

  }

if (secon == 1) {

  digitalWrite(13, HIGH);

}

if (secon == 0) {

  digitalWrite(13, LOW);

}

hoursetv = digitalRead(hourset); // Установка часов

if (hoursetv == LOW) {

hours++;

tone(19,10000);

delay(25);

noTone(19);

delay(100);

if (hours > 23) {

  hours = 0;

}

}

minutesetv = digitalRead(minuteset); // Установка минут

if (minutesetv == LOW) {

minutes++;

tone(19,10000);

delay(25);

noTone(19);

delay(100);

if (minutes > 59) {

  minutes = 0;

}

}

showswv = digitalRead(showsw);

if (showswv == LOW) {

showtime = 16380;

delaytime = 200;

}

}

 

void setDigit(int n) {

  n = n % 20000;

  digit[0] = n % 10;

  digit[1] = (n / 10) % 10;

  if ((digit[1] == 0) && (n < 10)) {

    //digit[1] = -1;

  }

  digit[2] = (n / 100) % 10;

  if ((digit[2] == 0) && (n < 100)) {

    //digit[2] = -1;

  }

  digit[3] = (n / 1000) % 10;

  if (digit[3] == 0) {

    //digit[3] = -1;

  }

}

 

void getDelay() {

  if (delaytime >= 7) {

  delay(delaytime);

  delaytime -= 1;

}

  if (delaytime < 7) {

  delayMicroseconds(showtime);

  showtime -= 35;

  if (showtime <= 1501) {

  showtime = 1500;

  }

  }

}

 

void initNumber() {

  number[0][MIDDLE]  = OFF;

  number[0][UPPER_L] = ON;

  number[0][LOWER_L] = ON;

  number[0][BOTTOM]  = ON;

  number[0][LOWER_R] = ON;

  number[0][UPPER_R] = ON;

  number[0][TOP]     = ON;

 

  number[1][MIDDLE]  = OFF;

  number[1][UPPER_L] = OFF;

  number[1][LOWER_L] = OFF;

  number[1][BOTTOM]  = OFF;

  number[1][LOWER_R] = ON;

  number[1][UPPER_R] = ON;

  number[1][TOP]     = OFF;

 

  number[2][MIDDLE]  = ON;

  number[2][UPPER_L] = OFF;

  number[2][LOWER_L] = ON;

  number[2][BOTTOM]  = ON;

  number[2][LOWER_R] = OFF;

  number[2][UPPER_R] = ON;

  number[2][TOP]     = ON;

 

  number[3][MIDDLE]  = ON;

  number[3][UPPER_L] = OFF;

  number[3][LOWER_L] = OFF;

  number[3][BOTTOM]  = ON;

  number[3][LOWER_R] = ON;

  number[3][UPPER_R] = ON;

  number[3][TOP]     = ON;

 

  number[4][MIDDLE]  = ON;

  number[4][UPPER_L] = ON;

  number[4][LOWER_L] = OFF;

  number[4][BOTTOM]  = OFF;

  number[4][LOWER_R] = ON;

  number[4][UPPER_R] = ON;

  number[4][TOP]     = OFF;

 

  number[5][MIDDLE]  = ON;

  number[5][UPPER_L] = ON;

  number[5][LOWER_L] = OFF;

  number[5][BOTTOM]  = ON;

  number[5][LOWER_R] = ON;

  number[5][UPPER_R] = OFF;

  number[5][TOP]     = ON;

 

  number[6][MIDDLE]  = ON;

  number[6][UPPER_L] = ON;

  number[6][LOWER_L] = ON;

  number[6][BOTTOM]  = ON;

  number[6][LOWER_R] = ON;

  number[6][UPPER_R] = OFF;

  number[6][TOP]     = ON;

 

  number[7][MIDDLE]  = OFF;

  number[7][UPPER_L] = OFF;

  number[7][LOWER_L] = OFF;

  number[7][BOTTOM]  = OFF;

  number[7][LOWER_R] = ON;

  number[7][UPPER_R] = ON;

  number[7][TOP]     = ON;

 

  number[8][MIDDLE]  = ON;

  number[8][UPPER_L] = ON;

  number[8][LOWER_L] = ON;

  number[8][BOTTOM]  = ON;

  number[8][LOWER_R] = ON;

  number[8][UPPER_R] = ON;

  number[8][TOP]     = ON;

 

  number[9][MIDDLE]  = ON;

  number[9][UPPER_L] = ON;

  number[9][LOWER_L] = OFF;

  number[9][BOTTOM]  = ON;

  number[9][LOWER_R] = ON;

  number[9][UPPER_R] = ON;

  number[9][TOP]     = ON;

}

arduino-project.net

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *