RSS блога
Подписка
Часы на трех 8x8 MAX7219 dot matrix
- Цена: $1.62
- Перейти в магазин
Была идея собрать часы на 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. Заливаем скетч.
Возможно есть еще способы.
Решил написать обзор, правда постфактум, так что процесса сборки нет.
Модуль матрицы — 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. Заливаем скетч.
Возможно есть еще способы.
+88 |
16596
97
|
Самые обсуждаемые обзоры
+73 |
3675
145
|
+53 |
3870
69
|
+34 |
2955
55
|
Кстати, "+" за DIY.
а матрицы сами вместе с драйвером на странице товара обзора?
8-( )
перламутровыми пуговицамиразмером побольше? А лучше с RGB.Людям же захочется повторить.
залиты в один день
Вот та версия ардуины, она без USB, я правильно понимаю? К компу подключается или через COM, или через USB-COM — кабель?
Предложу такой допилинг:
— отображать температуру и влажность в автоматическом режиме
— разделительные точки часы: минуты
— перевести на четыре матрицы. Тут неплохой вариант уже собранного экрана на цельном текстолите.
Теперь у меня есть повод изучить ардуинку:)
2. Разделительные точки на трех матрицах не поместятся, между часами и минутами свободно всего 2 пикселя, для симметрии надо хотябы 3, да и опять же дело привычки, сейчас я не вижу необходимости в раделителе.
3. Как было указано в начале обзора, статья которая была взята за основу, так там все готово под 4 матрицы, плюс куча режимов отображения, только что цыфры 5*7 и термометра нет. Часы уже собраны и четвертую матрицу добавлять не стану. Кому надо — может как угодно допилить, исходник есть, разобраться не сложно да и интересно. По поводу четырех матриц на цельном текстолите, по фото похоже что он не цельной, это те же модули соединенные джамперами, только что паять не надо.
Единственное что еще хочется попробовать, так это развести все на одной плате типа DIY набор для самостоятельной сборки, но пока только мысли.
Всем удачи.
Матрицу по ссылке я получил. Она действительно на цельном текстолите, а не как на фото.
Собрал на ней часы. А отпиливать одну матрицу жалко.
Буду код переделывать.
Хочу добавить изменение яркости по датчику или по времени.
Интересный проект, можно развивать.
в функции «printhello» поправить размерность экрана при тесте (у меня от нуля до 23, в конкретном случая от нуля до 5*8-1=39)
в функции «plot» добавить пару «if» по аналогии
возможно где-то еще
Скетч ваш использовал, убирал даже кусочек кода где идет подключение к термодатчику. При загрузке скетча нет никаких ошибок, все гладко. Пробовал даже имитировать кнопки, подключал проводки и замыкал на землю, все равно эти квадраты кажет.
yadi.sk/d/sbf-IVdvrSCQN
Уже думаю над корпусом, идея рамки от фото тоже нравится.
У меня вот что получилось
корпусок взял от старого роутера.
нашел недавно вот такие матрицы теперь думаю, не попробовать ли?
Вот другая версия
www.youtube.com/watch?v=8hO3k_zQ6k4
Модули
10 матриц на mx7219;
модуль ds3231;
модуль dht22 или 11;
модуль BMP180;
модуль df-player;
модуль sd карты;
arduino nano v3 mega328 16mhg 5V;
3 кнопки, 3 резистора на 10кОм и один на 1кОм;
динамик на 4 ома пол вата
блок питания 5В 1А или больше.
я думаю вы и так отлино потрудились, создав такой шедевр… пробовал работать с FLProg… полуилось время на DS1302 установить… далее чет пока не могу «скубатурить» как например к Атмеге индикатор приделать… в свойства 1602 выбираю I2C, на «Атмеге выод аналоговый А4 и А5, линии схемы не „тянутся“ и далее чет не пойму
Резистор на 1 ком для плеера, подключить его вход через него.
Мой код написан в атмел студио 6.2
Архивы есть под видио.
www.youtube.com/watch?v=3qtwAkyRgLk
www.youtube.com/watch?v=8hO3k_zQ6k4&t=198s
Одна программа в ардуино ид, другая в атмел студио.
Вобщем посмотри на моем канале в ютуб.
www.atmel.com/ru/ru/tools/studioarchive.aspx
Если все это не нужно, то писать можно хоть в Блокноте, а компилировать из командной строки (и Студия и Arduino используют один и тот же консольный компилятор AVR GCC).
А я например Студию 4.19 пользую для программирования поделок — возможностей больше чем у Ардуины, а размер еще не монструозный (200МБ).
Хотя и по студии существует масса книжек, учебных курсов
easyelectronics.ru/category/avr-uchebnyj-kurs/page/5
всяческих библиотек
avr-libc.narod.ru/index.html
www.procyonengineering.com/embedded/avr/avrlib/docs/html/main.html
но освоение безусловно сложнее чем Ардуино.
Но дает гораздо большие возможностей по быстродействию, объему кода, хитрому использованию периферии.
Так что имеет смысл переползать на Студию, когда научитесь нормально программировать и ардуинская среда покажется откровенно тесной. Ну или захочется профессионально программировать или просто получать удовольствие от решения задачи максимально эффективным способом.
Некоторым, впрочем, всего этого и не надо. Накидал кучу кода из примеров, как то работает — и ладно.
как это реализовать?
ПЫСЫ. мах7219 часики пока не поддерживают (но это «пока»)
Приехала плата с 4 матрицами и MAX7219 (покупал тут).
Китайцы спаяли гирлянду в обратном порядке и при использовании большинства библиотек оказываются перепутаны разряды.
В некоторых библиотеках для MAX7219 есть настройки поворота и переключения порядка разрядов, но в LedControl, использованной автором обзора, таких настроек нет.
Для отображения разрядов в нормальном порядке надо в файле LedControl.cpp в начало функции LedControl::spiTransfer (строка 195) вставить строчку:
addr = maxDevices-addr-1;
в 243 строке char new_char[3]
Поправь, у меня заработало.