Часы на arduino nano: Arduino Nano 4×64 LED Matrix

Содержание

NANO ЧАСЫ – ElettroAmici

часов, когда 1 по 199 руды

ВВЕДЕНИЕ:

Они всегда ищут новые устройства, чтобы попробовать и экспериментировать с тем, чтобы повысить свои знания и опыт. Так ravanare в WEB открыть заманчивое предложение 5 доска ARDUINO NANO в 15 € доставка включена. После быстрого поиска, чтобы углубить consistenva предложения, Я начинаю порядок и после 24 Я нашел себя часы с этим борту готов к использованию.

Что это доска ?: просто клоны ARDUINO UNO Технология SMD заключенная в картах памяти 15×42 мм. Я думаю, отличный ресурс для тех, кто, пришли мне, Он закончил несколько проектов с ATmega 328 но вынужден каждый раз, чтобы подготовить схему вокруг микро: Кварц и подготовка к загрузке эскиза. С помощью этой платы вместо, в дополнении к преимуществу, имеющие все уже подготовлено, является то, что пространство. Если мы хотим быть свободными просто смонтировать его на два разъема 15 булавку, чтобы быть в состоянии извлечь, когда это необходимо. И если проект не требует питания осуществлять 9В батареи достаточно.

Это caretteristiche:

  • ATMGA Процессор 328 SMD с предустановленным загрузчиком
  • USB / RS232 конвертер Ch440G
  • светодиодный индикатор питания, водить TX / RX, привело контактный 13
  • Все цифровые и PWM булавки, как Arduino UNO
  • 8 аналоговый контактный (A0 / A7) два больше, чем Arduino
  • USB источник питания или от VIN 12V DC макс
  • кнопка сброса
  • Выходной вывод 5V и 3.3V

Вот краткий обзор:

Совместимость завершена и с Arduino IDE 1.8 Достаточно указать, какой тип платы используется. При первом включении светодиодной вспышки 13 благодаря простому эскизу загруженным тесту. Соединение USB требует диска для чипа Ch440G: если исследование WEB плохо, вы всегда можете загрузить пакет и сделать установку.

ПЛАНИРОВАНИЕ NANO_TIMER:

Е’ благодаря этой плате, мне удалось содержать оборудование (стек, включая) в коробке, как это:

На втором фото’ внутри коробки: для нано борту я предпочел производить печатную плату для его корпуса таким образом, чтобы вытащить его в случае необходимости.

Это можно увидеть на правой стороне разъема платы (во время сборки) с определенным видом шелкографии, чтобы соединить’ печатная плата с другом и с остальными компонентами системы.

ХАРАКТЕРИСТИКИ ПРОЕКТА:

Этот проект нацелен на создание таймеров независимо друг от друга, но с использованием переработанных компонентов среди многих, которые до сих пор лежат в моих ящиках, но с этими характеристиками:

  • Установка времени с ДАТЧИК цифровой
  • Индикация времени с дисплеем 7 сегменты
  • специальные светодиодные индикаторы, которые таймер время продолжается.
  • Прекратить водить конец времени
  • Автономное питание через стек

КОМПОНЕНТЫ:

IL DISPLAY:

Е’ конкретная модель: это остаток от очень старого компьютера, когда они имели дисплей для отображения частоты: некоторые из них состоят из 3 дисплей в одном пакете общего с семи сегментов 3 контактный для приведения в действие анодов (Они являются общим анодом). Другие, как один используется, имеют 2 и третий дисплей только полезный для питания от количества “1”. И действительно, два сегмента, которые составляют число приводится в сегменте “DP” второй дисплей. И это также общий анод. Преимущество этих дисплеев имеет только семь контактов для сегментов и два / три анодов: затем с точки зрения дизайна отличным по сравнению с имеющей три отдельных дисплея, которые вынуждают к сложным соединений.

Управление этих дисплеев переданы обычные чипы MAX7219 (pluriadoperato в моих проектах). Единственная проблема заключается в том, что этот чип обрабатывает только дисплей ОБЩИЙ CATHODE в то время, которое используется для ОБЩИЙ ANODE. Это может быть осложнением, но два предостережений достаточны для преодоления проблемы:

  1. Invert приводных сигналов с шестигранным инвертором (74LS04) между выводами микросхемы и входами дисплея, а затем с помощью аппаратных средств.
  2. Обратные значения, которые будут отправляться на дисплей с помощью программного обеспечения: к этому мы считаем, что библиотека используется, которая управляет двумя типами дисплеев.

КОДИРОВАНИЯ Digital:

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

Я не буду подробно останавливаться на особенностях этого устройства: Интернет это все, что вам нужно знать (лучше, чем я могу сделать это сам) вместе с соответствующим программным обеспечением. Устройство состоит из вращающегося штифта, который также выступает в качестве двухштырьковом и кнопки, которые мы можем назвать “A” е “В” в дополнении к штифту “п” который идентифицирует кнопку и центральный штифт соединен с землей. Направление вращения обнаруживается с помощью программного обеспечения на основе серии импульсов, излучаемых во время вращения. Некоторые программы, действуя через прерывания в то время как другие, специальном выпуске от типа вращения “+” если положительный (по часовой стрелке) “-” отрицательный (против часовой стрелки) нажата в дополнение к сигналу на выводе. В эскизе контактный (кнопка) Это связано в pull_up и при нажатии высвобождает сигнал “0” логический.

Эта модель используется энкодер:

ЭЛЕКТРОМОНТАЖ:

Я разделил схему на две части для лучшего видения: первая часть в противном случае делается ссылка на классическую схему с ATmega328: нет никаких различий с Arduino NANO, потому что контакты одинаковы.

кнопка сброса, кварц и USB соединение для RTX / TX (и мощность eventale) Они уже присутствуют на Arduino NANO. Остальные соединения связаны с 4 Светодиоды соответственно “секунд”, и “минут” что согласно “руды”: четвертый светодиод загорается, когда заданное время достигнуто. Во время работы, выбранной светодиод мигает с интервалом в секунду. Последние три соединения (вверх вправо) Они являются по отношению к микросхеме MAX7219 как показано в следующей схеме:

В этой схеме секундах вы можете увидеть соединение микросхемы MAX7219, где сигналы DG0 / DG1 инвертируется быть подключены к анодам дисплея, в то время как сигналы А / G + DP в пределах соответствующего A / G + ДП дель-дисплей. Дисплей показан стандартный тип.

PCB И ПОСЛЕДНИЙ РЕЗУЛЬТАТ:

На следующих рисунках вы можете увидеть: полный пансион и его обратно:

Ниже печатная плата односторонний и производится полностью вручную с PCBEXPRESS.

реальное исполнение:

Эскиз является относительно простым,, Я думаю,, достаточно прокомментировал. Работа устройства может быть суммированы следующим образом:

Все’ акт’ зажигание выключено и дисплей загорается (через несколько секунд) светодиодный (верде) секунд: нажав на затычку кодер переключится на несколько минут или часов путем включения соответствующего светодиода. Движение является циклическим, так от нескольких часов до нескольких минут до нескольких секунд проходят т.д.. После выбора типа таймера, просто повернув шпильку (на картинке снабжена ручкой) в одном или другом направлении вы устанавливаете время более или менее, в 199 (секунд, минут, руды). Для начала просто нажмите булавку. Отсчет начинает делать lameggiare светодиодный набор. В конце установленного времени загорается красный светодиод, и система ожидает’ другие настройки, нажав на штифт.

Что касается эскиза: дисплей управления и последующего управления MAX7219 осуществляется с помощью вида “библиотека” разработанный нижеподписавшийся в состоянии рассматривать как отображение (7 сам) общий катод, что те, общий анод и матрицы 8×8 е 7×5. Таймер вместо обрабатываются с помощью специальной библиотеки:

swRTC (соло .h файл) автор Leonardo Miliani и загрузить с веб-сайте.

ВЫВОДЫ:

Я всегда говорил, что во всех моих статьях, что каждый проект является целью в себе и тем, кто спроектировал и построил: поэтому он восприимчив модификаций и улучшений всегда в соответствии с их потребностями и точек зрения. Однако те, кто заинтересован в проекте (amche только для образовательных целей) Вы всегда можете потребовать мне все для меня: [email protected]

Благодарим Вас за’ внимание.

gvsoft75 сентября 2017

AlexGyver/NixieClock: Часы на газоразрядных индикаторах и Arduino NANO

Описание проекта

Часы на советских газоразрядных индикаторах под управлением платформы Arduino. Страница проекта на сайте: https://alexgyver.ru/nixieclock/

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

  • SET
    • удержали в режиме часов - настройка БУДИЛЬНИКА
    • удержали в режиме настройки будильника - настройка ЧАСОВ
    • двойной клик в режиме будильника - вернуться к часам
    • удержали в настройке часов - возврат к часам с новым временем
    • клик во время настройки - смена настройки часов/минут
  • ALARM - вкл/выкл будильник

Папки

ВНИМАНИЕ! Если это твой первый опыт работы с Arduino, читай инструкцию

  • libraries - библиотеки проекта. Заменить имеющиеся версии (в этом проекте внешних библиотек нет)
  • firmware - прошивки для Arduino
  • schemes - схемы подключения компонентов

Схемы

  • Схемы на EasyEDA: https://easyeda.com/beragumbo/nixieclock
  • Общая
  • ИН-14/ИН-16
  • ИН-14
  • ИН-12 Гербер файлы уже в архиве!
    Список компонентов тоже есть в архиве!

Материалы и компоненты

Ссылки оставлены на магазины, с которых я закупаюсь уже не один год

Вам скорее всего пригодится

Как скачать и прошить

  • Первые шаги с Arduino - ультра подробная статья по началу работы с Ардуино, ознакомиться первым делом!
  • Скачать архив с проектом

На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP

  • Установить библиотеки в
    C:\Program Files (x86)\Arduino\libraries\ (Windows x64)
    C:\Program Files\Arduino\libraries\ (Windows x86)
  • Подключить внешнее питание 5 Вольт
  • Подключить Ардуино к компьютеру
  • Запустить файл прошивки (который имеет расширение . ino)
  • Настроить IDE (COM порт, модель Arduino, как в статье выше)
  • Настроить что нужно по проекту
  • Нажать загрузить
  • Пользоваться

Настройки в коде

// ************************** НАСТРОЙКИ **************************
BRIGHT 100          // яркость цифр дневная, %
BRIGHT_N 20         // яркость ночная, %
NIGHT_START 23      // час перехода на ночную подсветку (BRIGHT_N)
NIGHT_END 7         // час перехода на дневную подсветку (BRIGHT)
FREQ 900            // частота писка будильника

CLOCK_TIME 10       // время (с), которое отображаются часы
TEMP_TIME 5         // время (с), которое отображается температура и влажность
ALM_TIMEOUT 30      // таймаут будильника

// *********************** ДЛЯ РАЗРАБОТЧИКОВ ***********************
BURN_TIME 200       // период обхода в режиме очистки
REDRAW_TIME 3000    // время цикла одной цифры, мс
ON_TIME 2200        // время включенности одной цифры, мс

FAQ

Основные вопросы

В: Как скачать с этого грёбаного сайта?
О: На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP

В: Скачался какой то файл .zip, куда его теперь?
О: Это архив. Можно открыть стандартными средствами Windows, но думаю у всех на компьютере установлен WinRAR, архив нужно правой кнопкой и извлечь.

В: Я совсем новичок! Что мне делать с Ардуиной, где взять все программы?
О: Читай и смотри видос http://alexgyver.ru/arduino-first/

В: Вылетает ошибка загрузки / компиляции! О: Читай тут: https://alexgyver.ru/arduino-first/#step-5

В: Сколько стоит?
О: Ничего не продаю.

Вопросы по этому проекту

Полезная информация

Часы на трех 8x8 MAX7219 dot matrix

Была идея собрать часы на 8x8 led матрицах, чтоб температуру\влажность показывали. Вот что получается.

Решил написать обзор, правда постфактум, так что процесса сборки нет.

Модуль матрицы — MAX7219 dot matrix -3 шт.
Arduino как мозг Pro Mini atmega328
Датчик температуры и влажности DHT22/AM2302
Модуль RTC DS3231, кстати в нем есть термодатчик и температуру можно с него брать
Все компоненты годные, лично я качеством доволен.
На просторах интернета наткнулся на страничку, она стала отправной точкой, скетч для ардуины в последствии сильно переработан под свои желания (убраны ненужные режимы часов, используется 3 сместо 4 матриц, шрифт переделан и теперь высота символов 8 точек, а не 7, добавлены метео возможности) Оставлена сама идея и реализация перелистывания символов.

Соединение матриц

Процесс отладки

Собрано на макетке

Примеры отображения (на матрицы наклеена тонировка)



На этапе отладки


Еще одно видео (обзор возможностей часов)


Файлы для загрузки
библиотеки и сам скетч (добавлен скетч с отображением информации по центру)
Схема для сборки (нарисовал как смог)

Так выглядит готовый вариант (из того что под руку попалось)


Дополнение
Чтобы залить скетч вам может понадобится:
Arduino SDK (среда разработки) тут
USB-UART-конвертер что-то типа такого (проверял, работает отлично)
схема подключения

Если у вас нет UART конвертера, но есть Arduino UNO (как в моем случае до получения конвертера), тогда скетч на «Pro Mini» можно залить через UNO. Для этого:

1. Из UNO аккуратно вынимаем ATmega328 (желательно запомнить как она была расположена)
2. Подключаем «Pro Mini»(слева) к UNO(справа) следующим образом

GND-->GND
VCC-->3. 3v
Rx-->Rx
Tx-->Tx
GRN-->Reset

3. В «Arduino SDK» выбираем «Сервис->Плата->Arduino Pro Mini»
4. Заливаем скетч.

Возможно есть еще способы.

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 Nano Регистраторы 3,3 V с SD картой Интерфейс модуль RTC часы реального времени|arduino sd card module|shield arduinomodule for arduino

 

Запись данных журнал щит модуль для Arduino Nano рекордер 3,3 В с интерфейсом SD карты Модуль RTC часы в реальном времени

 

Описание:

Защита регистрации данных для Arduino NANO

Новый Для Arduino нано-щит, вы можете получить быстро сохраняя данные в файлы на любой FAT16 или FAT32 отформатированной SD карты, чтобы быть прочитаны любой печати, электронной таблицы или программы анализа.

В комплект входят часы в режиме реального времени, отметки всех ваших данных с текущим временем, так что вы точно знаете, что произошло, когда!

Обратите внимание, что этот товар не поставляется с Arduino NANO (Вам понадобится один для использования с экраном) или sd-картой. В комплект входит аккумулятор RTC.

Интерфейс sd-карты работает с отформатированными картами FAT16 или FAT32. 3,3 В схема сдвиг уровня предотвращает повреждение sd-карты

Часы в режиме реального времени (RTC) сохраняют время даже при отключении для Arduino. Запасная батарея работает годами

Включенные библиотеки и пример кода для SD и RTC означает, что вы можете быстро двигаться

Область прототипирования для паяльных разъемов, схем или датчиков.

Встроенный 3,3 В регулятор является надежным эталонным напряжением, а также надежно работает с sd-картами, которые требуют много энергии для запуска

Работает с Arduino NANO или MICRO

Посылка включает:

2015 г. 1 предметЗапись данных журнал щит модуль для Arduino Nano рекордер 3,3 В с интерфейсом SD карты Модуль RTC часы в реальном времени

 

 

СДЕЛАЙ СЕБЕ КРУТЫЕ НАСТОЛЬНЫЕ ЧАСЫ С ТЕРМОМЕТРОМ И БАРОМЕТРОМ! — voltNik

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

Итак, для сборки нам понадобится набор электронных модулей. Для начала берем LCD экран 2004 и модуль подключения к шине I2C. Модуль нужно припаять сзади к экрану. Наносим флюс и запаиваем первый контакт. Он встал не ровно, поэтому его нужно выровнять, для этого разогреваем паяльником тот же контакт и выравниваем платы параллельно. Ну все, теперь ровно и можно запаивать остальные контакты.

Еще для сборки понадобится программируемая платформа Arduino Nano, модуль DS1302, модуль BMP180, фоторезистор и один резистор на 10 кОм, пьезодинамик и три кнопки с колпачками. Ссылки на все эти компоненты находятся в описании видео и есть на странице проекта.

При разработке я использую макетную плату. Она позволяет быстро подключать модули и менять конфигурацию устройства выбирая оптимальные компоненты. Набросав простой первичный код, и загрузив его в Ардуино, я получил первый результат на экране. Но работа предстояла еще долгая.

Как многие наверно уже догадались сегодня мы будем собирать проект продвинутых настольных часов с отображением температуры, давления и с адаптивной подсветкой экрана. Удивительно, но облазив половину Интернета – я не смог найти готового и законченного проекта настольных часов на Ардуино. Мне регулярно попадались только примитивные сборки на макетках с простейшим отображением времени, без будильников, без настроек и без отображения температуры. Поэтому пришлось все делать с нуля.

Конечно проект не был бы законченным без корпуса. Для сборки часов подойдет популярный китайский пластиковый корпус для электроники черного цвета. Экран 2004 в него влазит, но придется срезать плату примерно на пять миллиметров по краям. Именно так сделал AlexGyver в одном из своих видео. Если у вас нет 3D принтера – то это будет отличный рабочий вариант.

Я же изначально планировал использовать для корпуса 3D принтер. Поэтому лезу в Tinkercad и готовлю проект корпуса под печать. В нем заранее будут предусмотрены технологические отверстия для кнопок, фоторезистора и стойки для установки и прикручивания экрана.

После конструкторских изысканий — печатаем корпус. Если вы думаете, что это так просто, а вот нифига. Первый корпус у меня отлип от стола из-за того, что кто-то открыл форточку. Второй немного не подошел по размерам и верхнее расположение кнопок не позволяло их установить, мешался модуль экрана. Да, кнопки я собрал на куске дешевой односторонней макетной платы. Получается ровно и с одинаковым расстоянием между ними.

В общем, нормальный корпус получился только с третьей попытки. Тут все уже отлично село на свои места. Т.к. я печатал ABS пластиком – то сразу обрабатываю поверхность ацетоном для прочного склеивания слоев и глянца. Ну и дефекты печати он убирает и разглаживает.

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

Финальная примерка, блок кнопок перенес и расположил на торце, а с другой стороны будет торчать порт USB от Ардуино. Сразу прикручиваем экран мелкими саморезами к корпусу. Отверстия для этого уже предусмотрены в корпусе.

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

Подключил фоторезистор и реализовал адаптивную подсветку экрана в зависимости от внешнего освещения. Теперь по ночам часики будут уменьшать свою яркость и не будут слепить.

Подготовил еще один проект в Tinkercad и печатнул заднюю крышку, она плотно закрывается и не требует дополнительных замков или защелок. Все файлы для 3D печати также будут находится в папке с проектом – поэтому вы без проблем сможете его повторить.

Осталась финальная сборка. Подключать все нужно по этой схеме. На шине I2C Ардуино параллельно подключен экран и модуль барометра. Учтите!  Барометр питается от 3.3 вольта! Поэтому его обязательно нужно питать от порта 3.3 вольта Ардуино. Конвертер I2C на канал данных до 3.3 вольта не обязателен, об этом указано в спецификации модуля. Резистор на 10 кОм и фоторезистор образуют делитель напряжения адаптивной подсветки и подключается в А0 порт. Сама же подсветка экрана регулируется ШИМ сигналом Ардуино и подключается в порт D3. Т.е. перемычку на модуле I2C нужно снять и запаять туда провод.

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

Часть модулей приходит из Китая с уже напаянными контактами. Они нам не нужны. Поэтому раскусываем площадку и выпаиваем контакты.

Всю сборку буду производить на одножильный цветной монтажный провод. Он тонкий и удобен тем, что можно скрутить вместе до 6 проводков и они влезут в контакт Ардуино. Больших токов тут не планируется – поэтому его более чем достаточно.

Фоторезистор собрал на куске дешевой макетной платы. Провода сразу скручиваем в косичку чтобы случайно их не оторвать. Запаиваем провода на барометр. Экран, подсветку, модуль кнопок. Далее фиксируем все модули внутри корпуса, на винты, двухсторонний скотч и на термоклей. Ну на что хотите на то и фиксируйте, тут задача чтобы ничего не болталось и не съезжало со своих мест.

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

Далее подключаем Ардуино к компьютеру, заходим на страницу проекта – ссылка на него есть в описании видео. Скачиваем архив с прошивкой, распаковываем его. Устанавливаем в программе модуль Arduino Nano и нужный COM-порт. И жмем «Загрузить». Но экран у меня не включился. Как оказалось, напутал контакты шины I2C подключенные к портам А4 и А5. Частая ошибка, поэтому выпаиваем провода и меняем их местами.

Теперь все включилось. На экране видим 2000 год и нули. Еще не хватает контрастности экрана. Поэтому отверткой настраиваем контраст, для этого есть подстроечный резистор сзади экрана.

Далее нужно установить время. Жмем синюю кнопку один раз и часы переходят в режим настройки. Тут можно настроить часы, минуты, секунды. Внизу находится установка будильника. Плюс или минус в конце обозначают включен будильник или нет. Установка года, месяца, даты и последняя настройка дня недели.

В прошивке также предусмотрена синхронизация секунд. Для этого переходим в режим установки секунд, ждем, когда реальное время станет 00 секунд и жмем кнопку вверх или вниз на часах. Секунды сбросились и время записалось.

Устанавливаем Ардуино на свое место и фиксируем ее от смещения на термоклей. Часы готовы. Заднюю крышку можно закрывать. В прошивке реализована смена отображения экранов. Сначала отображаются основные значения, а потом листается давление в миллиметрах ртутного столба, двойное отображение текущего времени – ну так чисто по приколу и текущая температура.

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

Клеим ножки и устанавливаем часики на свое место. Но чет не хватает. Да, надо печатнуть название. А то как же без этого. Установил в принтер желтый флуоресцентный пластик и напечатал название. Переношу буквы с помощью скотча, а клеить буду на уже привычный ацетон. Это же ABS. Кажется так себе выглядит, но стоит посветить на надпись ультрафиолетовым фонариком как она загорается, ну и в темноте она немного будет подсвечиваться. Крутяка получилась!

Ну что в итоге – законченный проект часов. С настройками и будильником. Когда срабатывает – мигает подсветка экрана и противно пищит целую минуту. Отключается любой кнопкой. Есть отображение температуры и давления. Корпус можно напечатать или взять готовый китайский.

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

Как собрать электронные часы своими руками

В этой статье мы попросили мастера ответить на вопрос: «Как собрать электронные часы своими руками?», а также дать полезные рекомендации для наших читателей. Что из этого получилось, читайте далее.

Существует множество способов собрать электронные часы своими руками: схемы широко представлены в литературе и сети Интернет. Большинство современных реализаций построено на основе микроконтроллеров. Выполнение таких проектов зачастую требует обширных практических навыков и теоретических знаний в области электроники: умения пользоваться специализированным программным обеспечением, создавать в домашних условиях печатные платы методом травления в хлорном железе, хорошо паять. Также необходимо иметь множество инструментов и расходных материалов.

Однако существует простой и доступный способ собрать электронные часы своими руками в домашних условиях: использовать платформу Arduino. Она представляет собой программно-аппаратный комплекс, специально предназначенный для обучения основам программирования и электроники. C помощью Arduino любой человек, даже без специальной предварительной подготовки, сможет построить электронные часы своими руками: схемы принципиальные, инженерные программы и даже паяльник не понадобятся!

Соединение всех электронных компонентов проводится на специальной контактной («беспаячной») макетной плате, что исключает риск получения ожогов, порезов и других травм — поэтому заниматься с конструктором Arduino можно и вместе с детьми. А наглядный способ представления принципиальной схемы поможет не ошибиться при сборке устройства.

Чтобы собрать простые часы на светодиодных матрицах вам потребуется всего несколько дешёвых компонентов:

  • платформа Arduino. Подойдут самые простые модели — Arduino Nano или Micro;
  • контактная макетная плата;
  • соединительные провода для макетной платы;
  • модуль часов реального времени Adafruit DS3231;
  • светодиодный матричный модуль 32×8 MAX7219;
  • две кнопки.

Также понадобится персональный компьютер и USB—mini-USB кабель для загрузки программы управления в память Arduino IDE. Вот и всё — паяльник, щипцы для снятия изоляции, монтажные ножи и прочие профессиональные инструменты не нужны: все операции выполняются руками. Разве что в некоторых случаях удобнее использовать пинцет, но можно обойтись и без него.


Детали для сборки электронных часов на Arduino

Схема электронных часов с индикацией на светодиодах с применением Arduino даже для неопытных радиолюбителей покажется довольно простой. Для сборки требуется всего несколько проводников. Таблица подключений:

Модуль Arduino → светодиодная матрица 32×8 MAX7219

Модуль Arduino → часы реального времени Adafruit DS3231

Модуль Arduino → кнопки

Второй вывод кнопок соединяется с землёй GND.

Следует лишь обратить внимание и запомнить, каким образом замкнуты между собой контактные отверстия на макетной плате. Следующая схема иллюстрирует способ внутреннего соединения контактных отверстий:


Схема электрических подключений макетной платы

Два ряда (1 и 4) с обеих сторон замкнуты горизонтально — обычно они используются как линия питания +5V и земля GND. Все внутренние контакты (2 и 3) замкнуты вертикально. При этом монтажная плата как вертикально, так и горизонтально разделена на две независимые друг от друга симметричные части. Это позволяет, например, собрать два разных устройства на одной плате.

Схема электронных часов с индикацией на светодиодах, а также расположение элементов на монтажной плате представлена на иллюстрации:

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


Внешний вид собранного устройства

После того как сборка и проверка схемы завершена, можно приступать к загрузке управляющей программы (или «прошивки») в память Arduino.


Интерфейс среды разработки Arduino IDE

Для этого нужно установить бесплатную официальную среду разработки — Arduino IDE [https://www.arduino.cc/en/Main/Software]. Также вам потребуется исходный код проекта, который вы можете скачать ниже в архиве со всеми библиотеками и скетчем, а если вам нужен просто скетч — его можно скопировать отдельно:

Теперь для завершения работы над устройством потребуется выполнить лишь ряд простых операций:

  1. подсоедините Arduino к USB-порту компьютера. Если модуль подключается впервые, то необходимо будет дождаться определения устройства операционной системой и установки драйвера;
  2. скопируйте содержимое папки libraries из архива в одноимённую папку в каталоге Arduino IDE;
  3. запустите средство разработки Arduino IDE;
  4. настройте тип Arduino в соответствии с имеющимся у вас модулем. Так, если вы используете Arduino Nano, в меню необходимо выбрать Tools -> Board: “Arduino Nano”. Также убедитесь в том, что модель процессора соответствует микроконтроллеру на вашей плате:


Выбор модели Arduino в среде Arduino IDE
  • откройте исходный код (файл clock_8x32.ino): File -> Open. Arduino IDE предложит вам автоматически создать отдельную директорию под проект — ответьте утвердительно;
  • загрузите программу в память Arduino: Sketch -> Upload.
  • Компиляция программного кода и дальнейшая загрузка в память микроконтроллера займёт некоторое время, обычно не более одной минуты. Об успешном завершении операции будет сообщено в консоли Arduino IDE. После чего остаётся лишь перезагрузить Arduino с помощью кнопки Reset на устройстве — простые часы на светодиодных матрицах готовы!

    Настройка часов осуществляется с помощью двух кнопок. Устройство поддерживает 12- и 24-часовой формат вывода времени, показ даты и дня недели, отображение времени с секундами и без. Также имеется возможность менять яркость свечения светодиодов.


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

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

    На покупку конструктора с часами меня подтолкнул обзор пользователя chvv С51 (YSZ-4) Электронные часы-конструктор на микроконтроллере

    К слову сказать я тоже купил себе конструктор С51, и даже собрал его. А при помощи советов из комментариев к обзору мне удалось решить проблему «несбрасываемости» часов при отключении питания (спасибо всем, кто помогал советами). Писать еще один обзор на тот же конструктор не вижу смысла, просто приложу несколько фоток моих С51 под спойлером

    В общем зацепила меня тема. Решил вспомнить, как это держать паяльник, и заказл себе еще несколько конструкторов. Один из которых я получил буквально за две недели, и назвал его Часы iПаяльник

    В комплекте ремешок, элементы корпуса и набор радиодеталей

    Часы построены на базе чипа DS1302 ( даташит )

    Я вообще не электронщик. Знаю что такое транзистор, диод и т.п. но совершенно не понимаю ничего в микросхемах, и не умею читать даташит. Судя по всему DS1302 — это часовая микросхема, отвечает за время. Так же в комплекте есть второй чип STC15L204EA ( даташит ), могу только предполагать, что он делает. Но что бы меня не заклевали спецы, я лучше просто промолчу о том, чего не знаю, и напишу для таких же чайников как я сам: Часы работают на двух микросхемах 🙂

    А так же на трех резисторах (10кОм каждый), трех конденсаторах и одном кварце. В комплекте оказался один лишний резистор ))

    Схема — двухсторонняя, отверстия металлизированные. Дорожки очень тонкие (по моим меркам).

    Сразу оговорюсь, что кроме предыдущего опыта по сборке конструктора С51, что то работающее в последний раз я собирал, когда мне было лет эдак 12, и был это то-ли транзисторный приемник из ЮТ, то-ли цветомузыка из конструктора, который был выписан по почте наложенным платежом из техники молодежи. Гы, по сути это были прародители онлайн покупок.

    Но что то я отвлекся. Вернемся к нашим часам.

    Начинаем сборку. Я начал с микросхем. Хотя обычно удобнее начинать с мелких деталей, с последующим переходом к более крупным. Будьте внимательны, на плате первая нога микросхемы отмечена отверстием, окаймленным «квадратной! дорожкой. А на самой микросхеме первая нога отмечена кругом.

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

    На плате видно адрес сайта-производителя http://diyleyuan.com где в общем то ничего интересного для себя я не нашел

    Каких то 30 минут — и часы готовы. По крайней мере схема собрана. Вставляем батарейку, и.

    Ну что же, так бывает. Без поллитры не обойтись. По сути даже пробовать не надо было, пока плата не отмыта спиртом от остатков флюса! Изопропилового спирта у мен нет, но дома нашелся питьевой медицинский спирт

    Тщательно протираем плату спиртом, и.

    На табло появляются какие то циферки 🙂

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

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

    Кому интересно, вот ванночка

    Работает честно, покупал со скидкой за 25$, сейчас продается за 30.

    Писать отдельный обзор про ванночку не хочется. Напишу только несколько слов и фоток под спойлером

    Промыл пару раз схему, и до кучи еще и С51, после доработки что бы смыть остатки флюса

    После купания сушка феном, и вот теперь часы включились, и больше не мигали и не глючили (наивный, я так думал, глюки еще ждали меня впереди)

    Настроил часы я быстро, по инструкции установил время. Надо сказать, начинка довольно бедная. Есть только часы и минуты. Нет ни секунд, ни будильников, ни даты. Нет ничего, кроме времени. Время включается на 5 секунд нажатием левой кнопки. И часы сами отключаются (для экономии батареи).

    Настройка простая. Что бы сбросить время, нужно очень синхронно нажать обе кнопки. И на часах застынут 12:00. Нажимаем левую кнопку на две секунды — часы замигали. Правой устанавливаем часы. Опять жмем левую — мигают минуты. Правой устанавливаем минуты. Жмем еще раз левую — настройка закончена. Секунды стартую с момента сброса (синхронного нажатия обоих кнопок). Если нажать не синхронно — ничего не получится.

    После настройки я перешел к сборке корпуса.

    Обратите внимание, какие тоненькие «мостики» на средних деталях часов. Будьте аккуратны (если захотите повторить мой подвиг). При попытке силой нанизать деталь на винтик (а отверстия там маленькие, винтик сам собой не вставить, приходится прилагать усилия или вкручивать его) можно нечаянно ее сломать

    Ну, не велика потеря. несколько капель суперклея, и часы все таки собраны (склеянная деталь внутри, и поломки почти не видно)

    Первое впечатление — часы прикольные. Прикольные — ну как бы «фрик» среди часов. Этакий электропанк (по аналогии со стимпанком).

    Жалко, что телефона нет в этих часах. Но и это решаемо установкой стороннего плагина

    А теперь перейдем к сюрпризу.

    Все наверное видели, как механические или кварцевые часы могут стоять? Стрелки не двигаются, и застыли в одном положении. Но я никогда не видел, что бы стояли электронные часы. Табло горит (включается при нажатии на кнопку на 5 секунд и гаснет, так и задумано). Но время — не меняется! Господа электронщики, можете как то прокомментировать это? Часы стоят, не идут. «Точки» разделители между часами и минутами мигают в такт, одно мигание равно одной секунде. Но сами часы стоят. Прошел час — а время не сдвинулось ни на минуту.

    Ну в общем то я расстроился. Не то, что бы я собирался носить эти часы (разве что на хеллуин одеть), но все равно обидно, когда потратил столько времени — а часы стоят.

    А потом они пошли. Пошли сами по себе, ни с того ни с сего. И с тех пор исправно работают (уже неделю). Разве так бывает.

    Ну и напоследок еще несколько фото часов под спойлером

    3.1. 1. Электрическая схема электронных часов на ЖКИ

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

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

    Жидкокристаллические индикаторы работают с поляризованным светом — для этого с обеих сторон индикатора наклеены специальные пленочные поляризаторы. В зависимости от взаимного расположения поляризаторов, ЖКИ может быть позитивным (темные символы на светлом фоне — как в часах, микрокалькуляторах) и негативным (прозрачные символы на черном фоне — используются в автомобильных магнитолах). Жидкие кристаллы, при отсутствии протекающего через них тока, располагаются внутри индикатора хаотическим образом, и практически не перекрывают свет, т. е. все сегменты прозрачны. При возникновении между какими-нибудь сегментами на обеих сторонах стекла разности потенциалов, жидкие кристаллы в этом месте упорядоченно выстраиваются поперек светового потока, перекрывая его, и соответствующий сегмент становится непрозрачным. Причем, изменяя величину приложенного напряжения, можно изменять степень непрозрачности индикатора.

    Жидкие кристаллы — диэлектрик, т. е. не проводят электрический ток. Поэтому управлять ими можно только переменным напряжением: ведь две обкладки ЖКИ-стекла — это практически конденсатор, а при подаче на выводы конденсатора переменного напряжения через него течет ток. Для жидких кристаллов нужен ничтожный ток, поэтому частота управляющего напряжения может быть довольно низкой (50…100 Гц). Сверху диапазона эта частота практически не ограничена, однако не рекомендуется делать ее выше 1 кГц — проводники, которыми нарисованы сегменты, имеют конечное сопротивление (обычно 1…10 кОм), поэтому при увеличении частоты контрастность индикатора будет ухудшаться. Заодно, благодаря этому сопротивлению, индикатор нечувствителен к перегрузкам по напряжению — он выдерживает напряжение до 30…50 В (при этом сегменты, иногда вместе с дорожками, чернеют, и после снятия напряжения становятся прозрачными в течение нескольких минут, в то время как все остальные индикаторы выходят из строя уже при двукратных перегрузках. Но все равно, несмотря на отсутствие видимых повреждений, слишком увлекаться перегрузками ЖКИ не стоит — это резко уменьшает ресурс его работы, в частности, снижает контрастность.

    Для управления ЖКИ обычно используются логические элементы «Исключающее ИЛИ», один из входов всех элементов соединяют вместе и подключают к генератору и общему выводу ЖКИ, а на второй вход элемента подают управляющие сигналы. Как известно, эти элементы при уровне «логического нуля» на одном из входов работают как повторители уровня с другого входа (то есть разность напряжений между выходом элемента и общим индикатора равна нулю — сегмент не виден), а при «единице» — как инверторы, и соответствующий сегмент индикатора становится видимым. Таким образом, чтобы «засветить» сегмент, на вход элемента нужно подать «единицу».

    Кроме того, для работы с ЖКИ удобно использовать микросхемы серии К176: К176ИЕ3 (счетчик-делитель на 2 и 6), К176ИЕ4 (счетчик-делитель на 4 и 10) и К176ИД2 или К176ИД3 (двоично-десятичные дешифраторы, только у К176ИД3 более мощные выходы). У всех этих микросхем на выходах уже стоят элементы «Исключающее ИЛИ», что значительно упрощает схему устройства.

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

    На специализированной микросхеме К176ИЕ12 собран кварцевый генератор, в качестве кварцевого резонатора ZQ1 можно использовать любой «часовой» кварц. Частоту генератора можно скорректировать, изменяя емкость конденсатора С1. На выводе 4 микросхемы формируются секундные импульсы — они используются для моргания разделительной точки, на выводе 10 секундные импульсы уже разделены на 60. Таким образом получаются минутные импульсы. Они поступают на линейку счетчиков DD2…DD5: DD2 считает единицы минут, DD3 — десятки минут и т. д. На диоде VD2 и резисторе R8 собрана схема обнуления часов — как только часы досчитают до 24, на выходах 4 DD4 и 2 DD5 появятся уровни логической «1», которые обнулят все счетчики. Пока количество часов меньше 24, хотя бы на одном из этих выводов присутствует уровень логического «0», который запрещает сброс.

    Так как у микросхемы DD1 нет сравнительно низкочастотного выхода, пришлось задействовать тактовые выходы T1…T4. На элементах R3 и VD1 собран простейший сумматор, благодаря которому в точке соединения этих элементов — правильный меандр частотой 256 Гц. Он используется для работы ЖКИ.

    На элементах DD6.1, DD6.2 собрана схема управления десятичной точкой (все остальные точки и дополнительные сегменты должны быть соединены с общим проводом индикатора). Элемент DD6.2 выполняет функцию инвертора (при уровне логической «1» на управляющем входе он замкнут и подает уровень «0» на DD6.1, при «0» — разомкнут и на вход DD6.1 поступает «1» через резистор R4), элемент DD6.1, в зависимости от уровня на выходе «1 Гц», подает на сегмент «точка» то прямой, то инвертированный сигнал генератора, т. е. точка будет видна на протяжении 0,5 сек, а следующие 0,5 сек — нет.

    Конечно, было бы проще собрать этот узел на одном элементе «Исключающее ИЛИ», однако собрать на оставшихся элементах схему гашения лишнего нуля будет невозможно, а вводить в схему лишнюю микросхему — логически неразумно.

    Этот самый узел гашения нуля собран на элементах DD6.3 и DD6.4. Несложно заметить, что в старшем разряде сегмент f будет виден только при коде цифры 0, при кодах цифр 1 и 2 — этот сегмент не светится. Поэтому вполне логично будет задействовать этот выход дешифратора для нашего анализатора. При уровне логической «1» на выходе генератора элемент DD6.4 соединяется с выходом f дешифратора, и заряжает или разряжает конденсатор С3. В это время на выводе 6 микросхемы DD5 уровень логической «1». Таким образом, при коде цифры «0», на выходе сегмента f будет уровень логического «0», а при кодах цифр 1 или 2 там будет уровень логической «1». Соответствующий уровень и на конденсаторе С3. При уровне логической «1» на этом конденсаторе элемент DD6.3 замкнут, и микросхема DD5 работает так же, как и остальные счетчики — разряд десятков часов виден, при уровне логического «0» на конденсаторе С3 элемент DD6.3 разомкнут, и выходы счетчика не переключаются.

    Возможно у Вас есть свои мнения на тему «Как собрать электронные часы своими руками»? Напишите об этом в комментариях.

    Часы Arduino Nano со светодиодной матрицей 4x64

     / * Часы Arduino Nano DS3231 со светодиодной матрицей 4x (8x8) SPI
     *
     * Логика Arduino Nano 5V - прога 32кБ. космос
    * Инструменты: Плата: Arduino Nano; Процессор: ATmega328P (старый загрузчик) !!
    * LED Matrix 4x (8x8) SPI с разъемом на правой стороне (последний модуль)
    * https://www.banggood.com/MAX7219-Dot-Matrix-Module-4-in-1-Display-For-Arduino-p-1072083.html?rmmds=myorder&cur_warehouse=CN
    *
    * СОЕДИНЕНИЯ:
    * >> LCD 4x64 -> Arduino Nano: (с использованием аппаратного SPI):
    * 5V -> 5V контакт
    * GND -> контакт GND
    * CLK_PIN -> 13 // или SCK
    * DATA_PIN -> 11 // или MOSI
    * CS_PIN -> 10 // или SS
    *
    * >> DS3231 RTC -> Arduino Nano:
    * SDA (DAT) -> A4
    * SCL (CLK) -> A5
    * На основе: 1) Часы Arduino от AnthoTRONICS Последнее изменение: 22 марта 2019 г.
    * но без MD_parola из-за его большого размера! Новая функция getdate.* 2) Самые простые цифровые часы UNO от plouc68000:
    * https://create.arduino.cc/projecthub/plouc68000/simplest-uno-digital-clock-ever-4613aa?ref=user&ref_id=680368&offset=1
    * 3) LEDDotMatrixClock.ino Леонардо Спосина, но здесь без "Max72xxPanel.h"
    * https://github.com/leonardosposina/arduino-led-dot-matrix-clock/blob/master/LEDDotMatrixClock/LEDDotMatrixClock.ino
    * Не используется Max72xxPanel. h, но используются цифры небольшого размера. Небольшой код места здесь.
    * Заменить в библиотеке MD_MAX72XX / src / MD_MAX72xx_font.cpp:
    * 1) #define USE_NEW_FONT 1
    * 2) шрифты №148 ... 158 необходимо заменить шрифтами 3х5:
      3, 248, 136, 248, // 48 0
      3, 144, 248, 128, // 49 1
      3, 200, 168, 184, // 50 2
      3, 136, 168, 248, // 51 3
      3, 112, 72, 224, // 52 4
      3, 184, 168, 232, // 53 5
      3, 248, 168, 232, // 54 6
      3, 8, 232, 24, // 55 7
      3, 248, 168, 248, // 56 8
      3, 184, 168, 248, // 57 9
      1, 80, // 58:
    *
    * проект: 13790 байт (44%); переменные 361 байт (17%)
    * Автор: MVP https: // www.hackster.io/M-V-P
    * /
    
    #include 
    #include "DS3231.h"
    #include "MD_MAX72xx_lib.h"
    // # включаем "Font_Data.h"
    
    DS3231 rtc (SDA, SCL); // Часы реального времени
    
    константный байт LDR_PIN = A2; // Вывод датчика LDR
    
    #define MAX_DEVICES 4
    // Определить контакты
    #define CLK_PIN 13 // или SCK
    #define DATA_PIN 11 // или MOSI
    #define CS_PIN 10 // или SS
    #define HARDWARE_TYPE MD_MAX72XX :: ICSTATION_HW
    
    #define USE_NEW_FONT 1
    
    #define BUF_SIZE 20 // размер текстового буфера
    #define CHAR_SPACING 1 // пикселей между символами
    
    char buf [BUF_SIZE], сек [4];
    uint8_t dots;
    
    
    // Аппаратный интерфейс SPI
    // Матрица Max72xxPanel = Max72xxPanel (CS_PIN, H_DISPLAYS, V_DISPLAYS);
    Матрица MD_MAX72XX = MD_MAX72XX (HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
    
    const byte WAIT = 100;
    const byte SPACER = 1;
    byte FONT_WIDTH;
    
    bool timeset = false;
    
    void adjustClock (String data) {
      байт _day = данные.substring (0,2) .toInt ();
      byte _month = data.substring (3,5) .toInt ();
      int _year = data.substring (6,10) .toInt ();
      байт _hour = data.substring (11,13) .toInt ();
      byte _min = data.substring (14,16) .toInt ();
      байт _sec = data.substring (17,19) .toInt ();
      rtc.setTime (_hour, _min, _sec);
      rtc.setDate (_day, _month, _year);
      Serial.println (F (">> Дата и время успешно установлено!"));
      timeset = true;
    }
    
    byte ledintensitySelect (int light) {
      byte _value = 0;
      if (light> = 0 && light <= 127) {
        _value = 12;
      } else if (light> = 128 && light <= 319) {
        _value = 3;
      } else if (light> = 320 && light <= 512) {
        _value = 0;
      }
      return _value;
    };
    
    
    
    
    void printText (uint8_t modStart, uint8_t modEnd, char * pMsg)
    // Выводим текстовую строку в указанные модули светодиодной матрицы. // После печати область сообщения заполняется пустыми столбцами.
    {
      состояние uint8_t = 0;
      uint8_t curLen;
      uint16_t showLen;
      uint8_t cBuf [FONT_WIDTH];
      int16_t col = ((modEnd + 1) * COL_SIZE) - 1;
    
      matrix.control (modStart, modEnd, MD_MAX72XX :: UPDATE, MD_MAX72XX :: OFF);
    
      do // конечный автомат для печати символов в доступном пространстве
      {
        переключатель (состояние)
        {
          case 0: // Загружаем следующий символ из таблицы шрифтов
            // если мы достигли конца сообщения, сбрасываем указатель сообщения
            если (* pMsg == '\ 0')
            {
              showLen = col - (modEnd * COL_SIZE); // символы заполнения
              состояние = 2;
              перерыв;
            }
    
            // получаем следующий символ из файла шрифта
            showLen = матрица.getChar (* pMsg ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf);
            curLen = 0;
            состояние ++;
            // !! намеренно перейти в следующее состояние, чтобы начать отображение
    
          case 1: // отображаем следующую часть символа
            matrix.setColumn (col--, cBuf [curLen ++]);
    
            // закончили с символом шрифта, теперь отображаем пробел между символами
            если (curLen == showLen)
            {
              showLen = CHAR_SPACING;
              состояние = 2;
            }
            перерыв;
    
          case 2: // инициализировать состояние для отображения пустых столбцов
            curLen = 0;
            состояние ++;
            // провалиться
    
          case 3: // отображение межсимвольного интервала или конца сообщения (пустые столбцы)
            матрица.setColumn (столбец--, 0);
            curLen ++;
            если (curLen == showLen)
              состояние = 0;
            перерыв;
    
          По умолчанию:
            col = -1; // это определенно завершает цикл do
        }
      } while (col> = (modStart * COL_SIZE));
    
      matrix.control (modStart, modEnd, MD_MAX72XX :: UPDATE, MD_MAX72XX :: ON);
    }
    
    
    void setup () {
      pinMode (LDR_PIN, INPUT_PULLUP);
      Serial.begin (9600);
      Serial.println (F (">> Светодиодные точечно-матричные часы Arduino 32x8!"));
      Serial. println (F (">> Используйте формат <дд / мм / гггг чч: мм: сс> для установки даты и часа!"));
      rtc.начинать();
      matrix.begin ();
      matrix.clear ();
      FONT_WIDTH = 5 + ПРОБЕЛ; // Ширина шрифта 5 пикселей
      matrix.control (MD_MAX72XX :: INTENSITY, 2) ;; // Используйте значение от 0 до 15 для яркости
    }
    
    недействительным getDate ()
    // Настройка даты: код для чтения даты на часах
    {char * months [] = {«Янв», «Фев», «Мар», «Апр», «Май», «Июнь», «Июль», «Авг», «Сен», «Октябрь», «Ноябрь» "," Dec "};
    
      Строка dts = rtc.getDateStr (); // Получаем строку дд / мм / гггг
      Строка dds = dts.substring (0,2); // Извлечь дату
      Строка mms = dts.substring (3,5); // Извлекаем месяц
      int мм = мм.toInt (); // Преобразовать в номер месяца
      dds.concat ("");
      dds.concat (String (месяцы [мм-1])); // Восстановить строку даты как "дд ммм"
      dds.toCharArray (buf, sizeof (buf)); // возвращаем буфер
    }
    
    недействительным getHour ()
    // Настройка даты: код для чтения даты на часах
    {String dts = rtc.getTimeStr (); // Получаем строку hh: mm: ss
      Строка hhs = dts.substring (0,2); // Извлечь час
      int hh = hhs.toInt (); // преобразовать в число
      если (чч <10) точек = 7;
      если (чч> 19 && чч <24)
        точек = 13;
      если ((чч> 9 && чч <20) || (чч == 21))
        точек = 11;
      если (чч == 1) точки = 5;
      если (чч == 11) точек = 10;
      // Строка outmsg = dts.подстрока (0,5); // Извлечь чч: мм (необязательно)
      Строка outmsg = Строка (чч); // Извлекаем h, если h <10
      outmsg.concat (":"); // Добавлять :
      outmsg.concat (dts.substring (3,5)); // добавляем мм
      outmsg.toCharArray (buf, BUF_SIZE);
    
    }
    
    пусто showsec ()
    {
      Строка dts = rtc.getTimeStr (); // Получаем строку hh: mm: ss
      Строка scs1 = dts.substring (6,7);
      Строка scs2 = dts.substring (7);
      char sc1 = 148 + scs1.toInt (); // Преобразовать в индекс символа
      char sc2 = 148 + scs2.toInt (); // Преобразовать в индекс символа
      матрица.setChar (6, сбн1);
      matrix.setChar (2, sc2);
    }
    
    
    
    void loop () {
      байт ledIntensity = ledintensitySelect (analogRead (LDR_PIN));
      matrix. control (MD_MAX72XX :: INTENSITY, ledIntensity) ;; // Используйте значение от 0 до 15 для яркости
    
      // Показать чч: мм из буфера
      getHour ();
      printText (0, МАКС_УСТРОЙСТВА-1, buf);
      задержка (WAIT);
    
      // Мигающие две точки:
      for (uint8_t i = 0; i <8; i ++) {
        matrix.setColumn (MAX_DEVICES * 8 точек, 36);
        showsec ();
        задержка (250);
        matrix.setColumn (MAX_DEVICES * 8 точек, 0);
        showsec ();
        задержка (250);
      }
    
      // Выход путем прокрутки вверх:
      for (uint8_t i = 0; i <8; i ++) {
        матрица.преобразовать (MD_MAX72XX :: TSU); задержка (2 * WAIT);
        задержка (WAIT);
      }
       
      getDate ();
      printText (0, МАКС_УСТРОЙСТВА-1, buf);
      задержка (20 * WAIT);
    
      int temp = rtc.getTemp ();
      temp = temp-1; // Смещение -1 C
      Строка outmsg = Строка (временная);
      outmsg.concat ("C");
      outmsg.toCharArray (buf, BUF_SIZE);
      printText (0, МАКС_УСТРОЙСТВА-1, buf);
      задержка (20 * WAIT);
      
      // Установка времени в RTC:
      if (Serial.available ()> 0 && timeset == false) {
        AdjustClock (Serial.readString ());
      }
    
    }
     

    Amazon.com: Набор часов реального времени WayinTop с учебным пособием для Arduino, модуль часов DS3231 AT24C32 + драйвер карты Micro SD + плата разработки Nano V3.0 + дисплей OLED 128X64 + зуммер + перемычки для макетной платы Провода: компьютеры и аксессуары

    Эти цифровые часы в основном используют нано-плату для считывания времени модуля часов DS3231, а затем управляют OLED-дисплеем в реальном времени.
    Когда время достигнет установленного времени напоминания, автоматически раздастся зуммер.Часы также могут отслеживать температуру системы в реальном времени, а время можно регулировать вручную.

    Технические характеристики:

    Модуль часов реального времени:
    -Рабочее напряжение: 3,3-5,5 В
    -Чип часов: высокоточный чип часов DS3231
    -Программируемый прямоугольный выход
    -Чип памяти: AT24C32 ( емкость памяти 32K)
    -интерфейс шины IIC, максимальная скорость передачи составляет 400 кГц (при рабочем напряжении 5 В)

    Micro SD Mini TF Card Модуль чтения Adater:
    -Совместимость: Micro SD card (≤2G) Карта SDHC (≤32 ГБ)
    -Источник питания: 4. 5 В ~ 5,5 В
    -Интерфейс: SPI
    -6 Контакты: GND, VCC, MISO, MOSI, SCK, CS

    Параметры интерфейса:
    Минимальное значение VCC 4,5 В / 0,2 мА
    Типовое значение VCC 5 В / 80 мА
    Максимальное значение VCC 5,5 В / 200 мА

    OLED 128X64 Модуль ЖК-экрана:
    -Размер: 0,96 дюйма
    -Разрешение: 128X64
    -Угол обзора: более 160 градусов
    -Поддерживаемые платформы: для Arduino, серия 51, серия MSP430, STIM32 / 2, микросхемы SCR
    - Поддержка широкого напряжения: 3,3-5 В постоянного тока
    - ИС драйвера: SSD1306
    - Связь: IIC, только два порта ввода / вывода

    В пакет включено:
    1 x Nano V3.0 ATmega328P Board
    1 x DS3231 AT24C32 Модуль часов реального времени
    1 x Micro SD Mini TF Card Модуль чтения Adater
    1 x 0,96-дюймовый OLED-модуль 128X64 Синий
    1 x 400Pin Макет
    1 x 10CM 40Pin перемычка между мужчинами
    1 x Активный зуммер 5 В
    5 кнопок переключения

    Arduino Nano Project, отображающий часы, календарь, внутреннюю и внешнюю температуру (версия 1.2)

    Этот проект посвящен созданию собственного аппаратного и программного обеспечения микроконтроллера. Микроконтроллер - это Arduino Nano.Программная платформа для разработки - это либо PlatformIO, либо студия разработки Arduino.

    Введение

    После многих лет программирования мэйнфреймов, мини-компьютеров и настольных компьютеров я решил попробовать микроконтроллеры. Я выбрал микроконтроллер Arduino nano. Я выбрал два проекта: WayIn Real Time Clock Kit и Создание собственного цифрового термометра Барри Лима.

    Версия 1.2 Переход на летнее время. Меню настройки позволяет пользователю добавить один час весной и перевести часы на один час осенью.

    Я купил комплект часов реального времени Arduino и детали, необходимые для создания собственного термометра. Я подключил макеты, установил программное обеспечение и запустил два проекта. Однако я нашел программное обеспечение слишком упрощенным. Я решил объединить два проекта в один и добавить новые функции. Другими словами, я переписал программу, подталкивая ее к пределу доступной памяти. Пользователь может выбрать стили отображения даты и времени, единицы измерения температуры и установить время и продолжительность будильника.Пользователь может установить текущую дату и время. Программа рассчитает день недели. Всего существует 13 экранов настройки. Постоянные значения настройки сохраняются в энергонезависимой EEPROM. Arduino nano основан на микрокомпьютере ATmega328. У него всего 2 Кбайт памяти SRAM. Необходимо тщательно программировать, чтобы обеспечить наличие свободного места в стеке. Прилагаемое программное обеспечение сохраняет текст экрана настройки в программной памяти (PROGMEM) для сохранения SRAM.

    Изображение проекта часов реального времени

    Главный дисплей

    Стиль Int Евро стиль Стиль США

    Этот проект отображает следующую информацию в режиме реального времени.

    • Календарная дата, включая день недели
    • Часы реального времени (часы, минуты и секунды)
    • Время будильника (часы и минуты)
    • Внутренняя температура модуля часов реального времени
    • Внешняя температура с использованием датчика температуры
    • Календарная дата может быть в одном из трех форматов: гггг / мм / дд, или дд / мм / гггг, или мм / дд / гггг.
    • Часы могут быть в 24-часовом или 12-часовом формате.
    • Температура может быть в градусах Цельсия или Фаренгейта.

    Детали проекта

    Для сборки проекта вам понадобятся следующие детали:

    • Плата микроконтроллера Arduino Nano на базе микросхемы ATmega328P
    • Дисплейный модуль OLED SSD1306 128 на 64 0,96 дюйма
    • Модуль часов реального времени DS3231 с резервным аккумулятором
    • Датчик температуры DS18B20 со съемным терминалом или резистором 4,7 кОм
    • USB Кабель 2. 0 с разъемом Mini-B (5-контактный)
    • Активный зуммер 5 В
    • Три (3) тактильных кнопочных переключателя
    • Макетная плата
    • Перемычки макетной платы

    Примечания и предложения

    • Набор часов WayIn Real Time Clock Kit содержит большинство деталей.Датчик температуры приобретается отдельно.
    • Для датчика температуры вам понадобится съемный терминал или резистор 4,7 кОм.
    • Получите более длинный кабель USB Mini-B.
    • Макетная плата большего размера, чем та, что предоставила WayIn.
    • Перемычки просты в использовании, но проект будет выглядеть неаккуратно. Рассмотрим простые провода для макетной платы.

    Установка программного обеспечения для разработки

    Вам необходимо установить интегрированную среду разработки (IDE) на рабочий стол.Это необходимо для компиляции и загрузки программного обеспечения проекта на ваш Arduino Nano. У вас есть два варианта: студия разработки PlatformIO или студия разработки Arduino. Моя рекомендация - PlatformIO.

    Чтобы установить PlatformIO, перейдите на веб-сайт организации PlatformIO и следуйте инструкциям. Это программное обеспечение основано на Microsoft Visual Studio Code.

    Чтобы установить Arduino IDE, перейдите на веб-сайт микроконтроллера Arduino и следуйте инструкциям.

    Установка оборудования

    Первый шаг - установка компонентов на макетную плату.Схема подключения приведена ниже. Плата Arduino питается от USB-кабеля. Источником питания для всех остальных модулей является плата Arduino. Есть два контакта заземления (GND), вы можете выбрать любой. Есть два источника питания 5В и 3В3. Я выбрал 5В. Насколько мне известно, все модули рассчитаны на напряжение от 3 до 5 вольт. Вы можете попробовать 3.3V. Модуль дисплея и модули часов реального времени используют двухпроводное последовательное соединение. На схеме показан серийный зонд без съемного терминала. Если у вас есть съемный терминал, 4. Резистор 7 кОм.

    Схема подключения макетной платы

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

    Установка программного обеспечения

    Любой программный проект Arduino состоит из двух частей. Основная программа ( main.cpp ) и дополнительные библиотеки. В случае с этим проектом я внес свой вклад в программу main.cpp . Дополнительные библиотеки поддерживают аппаратные модули проекта. Всего существует пять библиотек. Исходный код, прилагаемый к этой статье, содержит как основную программу, так и библиотеки.Вы можете скачать библиотеки из соответствующего источника. Прилагаемые библиотеки такие же, как на момент написания этой статьи. Вы можете использовать приведенные ниже ссылки для будущих изменений.

    Установка проекта

    для PlatformIO IDE

    Установка PlatformIO создает папку проектов в области личных документов.

    C: \ Users \ \ Documents \ PlatformIO \ Projects

    Чтобы установить исходные файлы проекта, выполните следующие действия:

    • Загрузите исходный файл RealTimeClock .Это ZIP-файл. Щелкните правой кнопкой мыши загруженный файл и извлеките все файлы в папку проектов, указанную выше.
    • Вы должны увидеть папку RealTimeClock внутри папки Projects .
    • Запустите IDE PlatformIO (код Visual Studio).
    • Дождитесь завершения загрузки страницы «Добро пожаловать в PlatformIO».
    • Если у вас уже открыт другой проект, перейдите в Файл и Закрыть папку .
    • Щелкните Открыть проект .
    • Щелкните Projects .
    • Вы должны увидеть папку RealTimeClock .
    • Щелкните RealTimeClock и снова щелкните Откройте «RealTimeClock» .
    • Проект будет загружен.
    • Щелкните значок PlatformIO у левого края экрана.
    • В Project Tasks щелкните Build .
    • Проект будет скомпилирован. Вы должны увидеть УСПЕХ в конце текста терминала.
    • Подключите проводную макетную плату проекта с помощью кабеля USB к настольному компьютеру.
    • В Project Tasks щелкните Загрузить .
    • Проект будет снова скомпилирован и загружен в Arduino. Вы должны увидеть УСПЕХ в конце текста терминала.
    • На ЖК-экране проекта должно отображаться сообщение инициализации в течение 2 секунд.
    • Далее вы должны увидеть главный экран проекта. Дата, время и две строки температуры.

    #include Примечание : Во время разработки программного обеспечения я столкнулся с проблемой. PlatformIO выдал сообщение об ошибке lib \ Adafruit GFX Library / Adafruit_MonoOLED.h: 30: 32: фатальная ошибка: Adafruit_I2CDevice.h: нет такого файла или каталога. Заголовочный файл Adafruit_I2CDevice.h установлен правильно. Чтобы решить эту проблему, я добавил две строки #include в main.cpp .

    #include 
    #include  

    Эти строки не требуются для main.cpp . Однако они решают проблему. Чтобы было ясно, сообщения об ошибке там не должно быть, и я не понимаю, почему эти две строки решают проблему ..

    Установка проекта

    для Arduino Studio IDE

    • Запустите IDE Arduino Studio.
    • Если есть активный проект, перейдите в Файл и выберите Новый . Откроется окно нового проекта. Закройте первое окно.
    • Извлечь main.cpp из zip-файла RealTimeClock . Он находится в папке src .
    • Откройте его с помощью Блокнота. Перейдите к Edit и Select All . Снова перейдите к Edit и выберите Copy .
    • Зайдите в Arduino Studio. Перейдите к Edit и Select All . Снова перейдите к Edit и выберите Paste .
    • Перейдите к файлу и выберите Сохранить как .Сохраните файл как RealTimeClock .
    • Нажмите Проверить . Вы получите сообщение об отсутствии одного из включаемых файлов. Другими словами, вам нужно добавить библиотеку.
    • Щелкните Sketch и выберите Включить библиотеку .
    • Щелкните Управление библиотеками . В поле поиска введите имя отсутствующей библиотеки. Найдите библиотеку и нажмите Установить . Если библиотека зависит от другой библиотеки, загрузите все зависимые библиотеки.
    • Вам нужно будет повторить последние 4 шага несколько раз. Когда все библиотеки загружены, проверка прошла успешно.
    • Подключите проводную макетную плату проекта с помощью кабеля USB к настольному компьютеру.
    • Нажмите Загрузить .
    • Проект будет снова скомпилирован и загружен в Arduino.
    • На ЖК-экране проекта должно отображаться сообщение инициализации в течение 2 секунд.
    • Далее вы должны увидеть главный экран проекта.Дата, время и две строки температуры.

    Настройка пользователя

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

    В проекте три кнопки:

    • Установить кнопку , подключенную к выводу D9.
    • Кнопка Inc подключена к выводу D8.
    • Dec кнопка подключена к выводу D7.

    Нажмите кнопку Set как минимум на 2 секунды.Система перейдет в режим настройки. Будет четыре варианта. (1) Будильник, (2) Дата и время, (3) Дневной свет и (4) Стиль отображения. Используйте кнопки Inc или Dec для выбора одного из четырех вариантов. Нажмите кнопку Set , чтобы принять и перейти к следующему шагу,

    Если в любой момент во время процесса настройки все три кнопки не нажимаются в течение 12 секунд, режим настройки отменяется и отображается обычный экран часов.

    Настройка будильника .Первый выбор - Alarm Off и Alarm On . Выберите и нажмите Установить . Будильник выключен вернет вас к обычному экрану часов. Alarm On дает вам еще три экрана: час, минута и продолжительность сигнала тревоги в секундах. Нажимайте Установите после каждого экрана.

    Установка даты и времени . Можно установить пять экранов. Год, месяц, день месяца, час и минута. День недели отсчитывается от даты. Если вы хотите, чтобы ваши часы были очень точными, установите значение минут на единицу больше, чем на телефоне или настольном компьютере.Подождите, пока время на вашем точном устройстве изменится, и сразу нажмите Установить.

    Настройка дневного света . Есть три варианта: «Отмена», «Весна +1 час» и «Осень -1 час». Эта опция позволяет пользователю переводить часы на час вперед весной. А осенью перевести часы на час назад. Программное обеспечение гарантирует, что минуты и секунды не изменятся. Кроме того, если пользователь добавляет один час к 11 часам ночи, часы и дата изменятся соответственно.Точно так же, если пользователь установит часы обратно сразу после полуночи, программа установит часы и дату соответствующим образом.

    Стиль отображения . Есть три экрана для установки стиля отображения основного экрана.

    1. Календарная дата может быть в одном из трех форматов: гггг / мм / дд или дд / мм / гггг или мм / дд / гггг.
    2. Часы могут быть в 24-часовом или 12-часовом формате.
    3. Температура может быть в градусах Цельсия или Фаренгейта. Нажимайте Установите после каждого экрана.

    Arduino Nano Limited SRAM

    Arduino nano имеет всего 2 Кбайт памяти SRAM. Если вы используете слишком много статических текстовых строк или стандартные библиотечные методы, такие как sprint () , вполне вероятно, что свободного места в стеке не будет. Ваше программное обеспечение выйдет из строя. Он либо заморозит, либо перезагрузит Arduino. Я нашел на этом сайте небольшой метод. Он доступен в конце исходного кода main.cpp . Это закомментировано. Если вы вызовете getFreeMemory () из любого метода, он отобразит количество байтов, доступных для стека.В моем случае я вызвал его в конце метода tempToStr (int temp) .

    История

    • 2 nd сентябрь 2020 г .: версия 1.0 Исходная версия
    • 3 rd сентябрь 2020 г .: версия 1.1 изменение #include file Adafruit_MonoOLED.h
    • 4 th сентябрь 2020 г .: версия 1.2 Переход на летнее время

    Arduino POV отображение текста часов


    0. ВВЕДЕНИЕ

    Привет, друзья.С возвращением к новому классному руководству. POV или постоянство зрения относится к оптической иллюзии, которая возникает, когда визуальное восприятие объекта не прекращается в течение некоторого времени после того, как лучи света, исходящие от него, перестают попадать в глаз. Иллюзия также описывается как «стойкость сетчатки», «стойкость впечатлений», просто «стойкость» и другие варианты.
    В этом проекте мы узнаем, как использовать датчик Холла для обнаружения вращения. Мы посчитаем время, необходимое для полного вращения винта POV, и разделив измеренное значение на 360, мы получим время на градус.Затем с помощью интеллектуального кода мы решаем, когда включать и выключать линию светодиодов, чтобы рисовать фигуры в воздухе. Пропеллер будет вращаться достаточно быстро, поэтому человеческий глаз не сможет различить разницу, и мы увидим воображаемую фиксированную форму. Итак, приступим.

    1. Список компонентов

    Хорошо, ребята, наш проект ограничен количеством цифровых выходов, которые есть у Arduino NANO или promini. В этом случае мы будем использовать контакты D2 - D13 Arduino, поскольку контакты D0 и D1 являются контактами Tx и Rx, и мы не можем припаять к ним что-либо и иметь возможность загружать код после этого.Если мы посмотрим на приведенную ниже карту портов Arduino с чипом ATMEGA328p, мы увидим порты для каждого контакта.

    portB (цифровые контакты с 8 по 13)
    portC (контакты аналогового входа)
    portD (цифровые контакты от 0 до 7)

    Всего мы будем использовать 11 светодиодов. Я использовал 8 зеленых светодиодов для линий часов / минут. Два красных светодиода для часов и синий светодиод для граничного круга. Для каждого светодиода нам понадобится резистор 100 Ом. Мы также будем использовать переключатель датчика Холла A3144 с подтяжкой резистора 10 кОм.Вы можете использовать как Arduino NANO, так и Arduino proMini со скоростью 4 В и 16 МГц. Наконец, нам понадобится просверленная печатная плата, провода, литий-полимерная батарея 2S 7,4 В, ползунковый переключатель и трехмерный корпус, который я разработал. Воспользуйтесь ссылкой ниже, чтобы увидеть полный список деталей, а также ссылку для загрузки 3D-печатного корпуса для этого проекта.


    Полный список деталей здесь

    2. Схема

    Проверьте схему ниже. Загрузите его и держите перед собой во время пайки. Как мы видим, у нас есть датчик Холла, подключенный к подтяжке на 5 В от Arduino.Сигнальный контакт датчика (контакт 3 A314) подключен к цифровому контакту D13 Arduino. На этом выводе мы будем генерировать прерывания смены вывода. Затем у нас есть 11 светодиодов, подключенных к контактам с D2 по D12, каждый с резистором 100 Ом для ограничения тока. Для питания всей схемы я использовал батарею LiPo 7,4 В и ползунковый переключатель для включения всего. Используйте несколько штыревых контактов для батареи, если вы хотите вынуть ее позже для внешнего заряда.


    Вы можете припаять все на печатной плате сверла, как я впервые сделал для своего первого прототипа, вы можете увидеть ниже или загрузить 3D-корпус, который я спроектировал, и разместить все внутри него.


    Напечатанный на 3D-принтере корпус здесь

    3.1 Создание опоры

    У вас есть файлы для 3D-печатных деталей в формате STL по ссылке выше. Эти файлы включают в себя основной корпус, заднюю крышку, опору двигателя, две ножки подшипника и верхние опоры подшипника. Это должна быть окончательная форма всего проекта. Используйте винты и гайки M3 и закрепите все на месте.
    На деревянную пластину поместите две распечатанные на 3D-принтере ножки с винтами M3. На большой винт M8 поместите основной корпус с гайками и шайбами.


    Внутри основного корпуса мы поместим все, что уже было припаяно. Не забудьте приклеить заднюю крышку и приклеить к ней ползунковый переключатель. В отверстии на передней панели разместим 11 светодиодов, а на другом - датчик Холла на внешней стороне корпуса. В двигателе постоянного тока размещен пояс и соединение между двигателем и винтовыми шкивами M8. Вот и все. Теперь давайте все спаяем и поместим внутрь, а затем посмотрим на код.

    3.2 Паять все

    Первым делом на небольшом куске просверленной печатной платы я припаиваю последователь 8 зеленых светодиодов к двум красным и, наконец, к синему.Каждый со своим резистором на 100 Ом и достаточно длинным проводом. Короткий контакт каждого светодиода является отрицательным контактом, и все светодиоды имеют общий GND на этом контакте.


    Теперь приклейте небольшую плату со светодиодами к внутренней части корпуса и припаяйте каждый из проводов к контактам D2 - D12 Arduino. Alos припаяйте провод GND от всех светодиодов к контакту GND Arduino. Не используйте слишком большие провода, поэтому укоротите каждый провод светодиода, чтобы он подходил почти точно.
    С другой стороны припаяйте резистор 1 кОм между 5 В и сигнальным контактом датчика Холла A3144. Также разделяйте GND между средним контактом A3144 и контактом GND Arduino. Наконец, припаяйте сигнальный контакт к цифровому контакту D13, и все готово.


    Последний пункт - приклеить ползунковый переключатель к крышке, напечатанной на 3D-принтере, и припаять два провода. Один от LiPo к первому контакту переключателя, а другой от контакта Vin Arduino к среднему контакту переключателя. Я добавил два дополнительных штыря, чтобы можно было отсоединить аккумулятор для внешней зарядки.
    Также не забудьте приклеить магнит samll к нижней опоре, чтобы он всегда находился перед датчиком Холла во время вращения.Я использовал для этого горячий клей, как вы можете видеть ниже.


    Не закрывайте дело, пока мы не загрузим код. Убедитесь, что все хорошо закреплено клеем и винт сбалансирован. Для этого он всегда должен быть горизонтальным, когда не вращается. Добавьте дополнительный вес, чтобы уравновесить его. Перейдем к части кода на следующей странице.


    Как построить гигантские часы со скрытым краем полки - Версия для 3D-печати | Elegoo Arduino Nano | Умный дом

    DIY_Machines поделился этим проектом на Thingiverse!

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

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

    Скачать файлы: https://www.thingiverse.com/thing:4207524



    Каждый четверг здесь, в Adafruit, # 3-го числа! Сообщество DIY 3D-печати страстно и увлеченно создает твердые объекты из цифровых моделей. Недавно мы заметили проекты электроники, интегрированные с корпусами, кронштейнами и скульптурами, напечатанными на 3D-принтере, поэтому каждый четверг мы празднуем и выделяем этих смелых пионеров!

    Думали ли вы о создании 3D-проекта на базе Arduino или другого микроконтроллера? Как насчет того, чтобы напечатать кронштейн для крепления Raspberry Pi к задней части монитора HD? И не забывайте о бесчисленных светодиодных проектах, которые возможны при моделировании своих проектов в 3D!

    Прекратите макетирование и пайку - немедленно приступайте к изготовлению! Площадка Circuit Playground от Adafruit забита светодиодами, датчиками, кнопками, зажимами из кожи аллигатора и многим другим.Создавайте проекты с помощью Circuit Playground за несколько минут с помощью сайта программирования MakeCode с перетаскиванием, изучайте информатику с помощью класса CS Discoveries на code.org, переходите в CircuitPython, чтобы изучать Python и оборудование вместе, TinyGO или даже использовать Arduino IDE. Circuit Playground Express - это новейшая и лучшая плата Circuit Playground с поддержкой CircuitPython, MakeCode и Arduino. Он имеет мощный процессор, 10 NeoPixels, мини-динамик, инфракрасный прием и передачу, две кнопки, переключатель, 14 зажимов из кожи аллигатора и множество датчиков: емкостное прикосновение, ИК-приближение, температуру, свет, движение и звук.Вас ждет целый мир электроники и программирования, и он умещается на ладони.

    Присоединяйтесь к 27 000+ создателей на каналах Discord Adafruit и станьте частью сообщества! http://adafru.it/discord

    Хотите поделиться замечательным проектом? Выставка Electronics Show and Tell проходит каждую среду в 19:00 по восточному времени! Чтобы присоединиться, перейдите на YouTube и посмотрите чат в прямом эфире шоу - мы разместим ссылку там.

    Присоединяйтесь к нам каждую среду вечером в 20:00 по восточноевропейскому времени, чтобы задать вопрос инженеру!

    Подпишитесь на Adafruit в Instagram, чтобы узнавать о совершенно секретных новых продуктах, о кулуарах и многом другом https: // www.instagram.com/adafruit/

    CircuitPython - Самый простой способ программирования микроконтроллеров - CircuitPython.org

    Получайте единственную ежедневную рассылку без спама о носимых устройствах, ведении делопроизводства, электронных советах и ​​многом другом! Подпишитесь на AdafruitDaily. com!

    Пока комментариев нет.

    Извините, форма комментария в настоящее время закрыта.

    Светодиодные аналоговые часы с использованием Arduino Nano

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

    Подробнее ..


    На самом деле, Arduino - это микроконтроллер, а не полноценный компьютер, поэтому его можно интегрировать с любыми другими проводными и беспроводными модулями. Как и вокруг нас, в наши дни технологии стремительно движутся к большому количеству инноваций, поэтому важно, чтобы учащиеся столкнулись с трудностями при соблюдении промышленных стандартов.

    Описание проекта

    Этот проект включает проектирование и разработку светодиодных аналоговых часов с использованием ATMEGA328. Прежде чем приступить к этому проекту, вам необходимо изучить основы Arduino и ее программирования. Ниже приведены компоненты, необходимые для разработки этого проекта.

    Arduino Nano: Это платформа обработки с открытым исходным кодом, используемая для разработки интерактивных объектов и цифровых устройств. Микроконтроллер (ATmega328) на плате программируется с использованием языка программирования Arduino (встроенный C ++), который состоит из 14 цифровых контактов ввода / вывода и 8 аналоговых контактов.

    Датчик Холла: Это устройство, используемое для измерения величины магнитного поля. Эти датчики используются для определения приближения, измерения тока и определения местоположения. Он расположен рядом с вращающейся частью двигателя, и он сможет определять ориентацию путем очень точного измерения изменений магнитного поля.

    LED: Светоизлучающий диод (LED) - это полупроводниковый источник света, который излучает, когда через него протекает ток. Электроны в полупроводнике рекомбинируют с электронными дырками, высвобождая энергию в виде фотонов.


    Последние проекты на Arduino

    Хотите развить практические навыки работы с Arduino? Ознакомьтесь с нашими последними проектами и начните обучение бесплатно

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

    Двигатель постоянного тока: Это электрическая машина, которая принимает электрическую энергию и преобразует ее в механическую энергию

    Реализация проекта
    1. Возьмите одну печатную плату размером 20 * 5см. Исправьте светодиоды двух разных цветов в последовательном режиме.
    2. Присоедините резистор к выводу анода и припаяйте их со светодиодами к плате
    3. Интерфейс с Arduino Nano для всех светодиодов с использованием цифровых контактов ввода / вывода
    4. Напишите программу с помощью программного обеспечения arduino ide и загрузите ее в Arduino Nano
    5. Присоедините полный комплект печатной платы к ротору двигателя постоянного тока, который управляется регулятором скорости.
    6. Взгляните на свои крутые аналоговые часы со светодиодной подсветкой

    Заключение

    Мы можем разрабатывать крутые проекты, меняя программу, мы можем делать светодиодные цифровые часы также с этим же компонентом.


    Знаете ли вы

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

    Вы можете записаться вместе с друзьями и получить комплекты прямо у порога.

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


    Комплект, необходимый для разработки светодиодных аналоговых часов с использованием Arduino Nano:
    Технологии, которые вы узнаете, работая над светодиодными аналоговыми часами с помощью Arduino Nano:
    Светодиодные аналоговые часы с использованием Arduino Nano
    Skyfi Labs • Опубликовано: 2019-07-25 • Последнее обновление: 2020-10-10

    Бинарные часы Nixie с питанием от Arduino Nano от 69 $

    Если вы когда-либо хотели создать свои собственные двоичные часы Nixie Clock, вам может быть интересно узнать, что доступен комплект с дополнительным корпусом и платой Arduino по цене от 69 долларов. «Все компоненты SMD собраны, только разъемы, штыревые разъемы и гнезда для никсидных трубок требуют пайки. Arduino, Particle Photon и nixie-трубки в комплект не входят. Перед покупкой ознакомьтесь с описанием проекта ».

    «Используйте свою плату Arduino Nano или Particle Photon и создайте двоичные часы Nixie Clock с 18 лампами IN-2 nixie. Подключив датчик DHT22, можно также построить бинарный термометр и гигрометр. На материнской плате часов есть разъемы для подключения плат форм-фактора Particle Photon и Arduino Nano - classic Nano, Nano Every, Nano 33 IoT.Используя Arduino Nano 33 IoT или Particle Photon, вы можете подключить часы через Wi-Fi к серверу времени NTP или облаку для синхронизации времени. Программный код (для обеих платформ) подготовлен и ожидает только загрузки в ваши двоичные часы ».

    Характеристики ламповых часов Nixie:

    - Совместимость с платами 5 В / 3,3 В - Arduino Nano, Nano Every, Nano 33 IoT и Particle Photon
    - Сменные nixie-трубки IN-2 - штыревые разъемы
    - Модульная конструкция
    - Модуль часов реального времени RTC DS3231 на плате
    - Модуль питания Nixie 170 В (полностью собран) в комплекте
    - 2 x Nixie Tube Driver V2 (полностью собран) - на плате
    - Предназначен для работы с датчиком температуры и влажности DHT22 / DHT11
    - Собраны все компоненты SMD
    - Разъемы, контактные разъемы и гнезда для трубок nixie требуют пайки
    - Размеры с трубками: 60 x 108 x 167 мм (~ 2.

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

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