Часы на светодиодных матрицах с драйверами MAX7219

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Аватара пользователя
phoenix75
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Ср янв 13, 2016 13:52:42
Откуда: Клин

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение phoenix75 »

Кстати кому надо подключить DTH11 я нашел такое решение
Изменение в файле dth22.c.
Спойлер#include "dht22.h"

#include <util/delay.h>

static dht22Dev dev;

static uint8_t dht22Sensor = 0;

static int16_t humidity, temp;

void dht22Init(void)
{
DDR(DHT_DATA) &= ~DHT_DATA_LINE;
PORT(DHT_DATA) &= ~DHT_DATA_LINE;
}

static uint8_t dht22GetBit(void)
{
uint8_t i;

for (i = 255; i && !(PIN(DHT_DATA) & DHT_DATA_LINE); i--)
_delay_us(1); // Wait zero

for (i = 255; i && (PIN(DHT_DATA) & DHT_DATA_LINE); i--)
_delay_us(1); // Measure bit length

return (i < 230);
}

static uint8_t dht22GetByte(void)
{
int8_t i;

uint8_t ret = 0;

for (i = 0; i < 8; i++) {
ret <<= 1;
ret |= dht22GetBit();
}

return ret;
}

void dht22Read(void)
{
int8_t i;
uint8_t cksum;
uint8_t data;

dev.data[0] = dev.data[1] = dev.data[2] = dev.data[3] = dev.data[4] = 0;

if (!(PIN(DHT_DATA) & DHT_DATA_LINE)) // Line is busy
return;

DDR(DHT_DATA) |= DHT_DATA_LINE;
_delay_us(800);
DDR(DHT_DATA) &= ~DHT_DATA_LINE;
_delay_us(70);

if (PIN(DHT_DATA) & DHT_DATA_LINE) // No DHT22 response
return;

dht22Sensor = 1;

dht22GetBit(); // Wait for response finish

cksum = 0;
data = 0xFF;
for (i = 4; i >= 0; i--) {
data = dht22GetByte ();
dev.data = data;
if (i > 0)
cksum += data; // Checksum of first 4 bytes
}
//if (cksum == data) {
//humidity = dev.humidity;
//temp = dev.temp;
//if (temp & 0x8000) // Fix negative temp value
// temp = -(temp & 0x7FFF);
//}
//====================
if (dev.data[1]== 0 && dev.data[3]== 0) { //если эти переменные массива обе равны нулю,то это dht11
temp = dev.data[2]*10;
humidity = dev.data[0]*10;
}else { // dht22
humidity = dev.data[0] * 256 + dev.data[1];
temp = (dev.data[2] & 0x7F)* 256 + dev.data[3];
if (dev.data[2] & 0x80) temp *= -1;
}
//=========================

return;
}

int16_t dht22GetHumidity()
{
return humidity;
}

int16_t dht22GetTemp()
{
if(temp > 100){dht22Read();}
return temp;
}

uint8_t dht22HaveSensor(void)
{
return dht22Sensor;
}


Датчик у меня адекватно показывает в меру своих возможностей. Теперь по идее должно автоматически определять 11 и 22 датчики.
Просто 22-го дома нет, принесу проверю.

И кстати прошу помощи!!
Вот мои наработки в Atmel Studio 6.2 https://yadi.sk/d/fFWUxGkYy5KoH.
Проблема вот в чем, после считывания карты когда задействуется библиотека чена Petit FAT File System Module перестаёт работать бузер.
Что то молотит непрерывно, но на работе кроме бузера не отражается. Кто разбирается помогите советом. Может её как то приостановить можно? Постоянная работа её не нужна.
Реклама
Аватара пользователя
shtvgomel
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пн сен 05, 2016 01:35:34
Откуда: gomel

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение shtvgomel »

Я прошил прошивкой "matrixclock_max7219_x3_atmega8" и получилось
http://img.radiokot.ru/files/118071/med ... 1idikb.jpg
часы перевёрнуты и не идут,показывает 00:00. Если отключить этот модуль (часовой), то время становиться 01:01, кнопки не управляют (только 2 кнопки при нажатии исчезает изображение).
http://img.radiokot.ru/files/118071/med ... 1k6y2m.jpg
Может у кого было такое и как решали.
кринж
Реклама
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение WiseLord »

А что это, часы не запитаны вообще? Я про VCC.

Почему-то средняя матрица развёрнута на 189° относительно других двух..

Поворачивать картинку можно одновременным нажатием всех трех кнопок.

Чтобы часы пошли,нужно настроить секунды.
Аватара пользователя
shtvgomel
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пн сен 05, 2016 01:35:34
Откуда: gomel

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение shtvgomel »

WiseLord писал(а):А что это, часы не запитаны вообще? Я про VCC.
Чтобы часы пошли,нужно настроить секунды.
Я питаю 5В. А как настроить секунды? Часы не реагируют нормально на кнопки - 2 кнопки переводят их в сонный режим что-ли (изображение анимировано уплывает и всё). Скажите, при программировании для внутреннего кварца кроме фьюзов ничего делать не надо? Может это дело в это модуле часовом? Я включал/отключал SDA и цифры менялись как я писал 01:01, но секунды не ишли. Просто цифры и всё.

Добавлено after 55 minutes 45 seconds:
после тряски бубном,простоя всё почти заработало, только вот весь текст идёт символами яяяяяяяяяяяя, как я понимаю это нужно перепрограммировать. В общем спасибо за такие часы, скажите, а как называется прошивка для 4 индикаторов.
кринж
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
igorfirst
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Вс май 06, 2007 20:47:05
Откуда: Ковель

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение igorfirst »

shtvgomel писал(а): только вот весь текст идёт символами яяяяяяяяяяяя, как я понимаю это нужно перепрограммировать.
похоже что не прошит корректно eeprom
Реклама
masy
Нашел транзистор. Понюхал.
Сообщения: 151
Зарегистрирован: Пн фев 04, 2008 12:38:54
Откуда: Шахты

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение masy »

добрый день... парни, у кого нибудь есть плата индикации под 60мм матрицы, перелопатил тему что то не нахожу, а кажется кто то выкладывал)
Реклама
Аватара пользователя
igorfirst
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Вс май 06, 2007 20:47:05
Откуда: Ковель

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение igorfirst »

igorfirst писал(а): а еще вопрос , если в редакторе еепрома включить галочки показывать температуру и влажность с DHT22 то даже без датчика отображается бегущей строкой и то и другое по 0.0 , ....
С этим разобрался , не было подтягивающего резистора к выводу Atmega PD3 , из за этого и писало без датчика DHT22 по - 0.0
Аватара пользователя
Hichkok
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Чт мар 27, 2008 21:36:44
Откуда: Домодедово

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение Hichkok »

masy писал(а): под 60мм матрицы
Только перемычек много
Вложения
last.zip
(100 КБ) 385 скачиваний
Пока коты едины они непобедимы
masy
Нашел транзистор. Понюхал.
Сообщения: 151
Зарегистрирован: Пн фев 04, 2008 12:38:54
Откуда: Шахты

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение masy »

Спасибо!
Аватара пользователя
vpashko
Нашел транзистор. Понюхал.
Сообщения: 153
Зарегистрирован: Пт июн 20, 2008 18:27:08
Откуда: Украина,Запорожье

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение vpashko »

Здравствуйте, ребят а собирал ли кто-то эти часы на RGB матрицах? Если нет, то подскажите как лучше организовать коммутацию цветов?
Аватара пользователя
hector
Грызет канифоль
Сообщения: 251
Зарегистрирован: Сб янв 23, 2016 10:30:29

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение hector »

К таким модулям есть прошивка? :oops: Платку на атмеге к ним спаяю сам.
https://ru.aliexpress.com/item/MAX7219- ... 1b0b51e700

Тута вот автор то-же пишет про не годную точность "DS3231 AT24C32 IIC module precision Real time clock"
P.S. За 9 месяцев часы убежали вперед на 22 секунды (сверялось по синхронизированному времени винды).
http://ucprog.ucoz.ru/publ/10_malenkie_ ... y/1-1-0-11

Вероятно таки китайцы не калибруют свои DS3231 кристаллы. За 0.5$ вряд-ли они станут утруждать себя калибровкой :sleep:
https://ru.aliexpress.com/item/DS3231-A ... .58.utzg0h
Я пробовал уже два ихних модуля - у обоих точность на уровне обыкновенного часового кварца. +/- сколько-то (...ну уж сколько получилось... :beer: ) секунд в месяц. :kill:
"Легендарные" часовые кварцы с материнских плат будут поточнее DS3231 с Aliexpress.
Для сверки использую часы с DCF77, они идут абсолютно точно.
Вложения
IMG_20161113_110236821.jpg
(172.17 КБ) 689 скачиваний
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение max50 »

hector писал(а):К таким модулям есть прошивка?
Тут и тут почитайте.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Аватара пользователя
igorfirst
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Вс май 06, 2007 20:47:05
Откуда: Ковель

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение igorfirst »

hector писал(а): P.S. За 9 месяцев часы убежали вперед на 22 секунды (сверялось по синхронизированному времени винды
.
Ну и чего ? нормальная точность , раз в год можно и подправить :))
Аватара пользователя
hector
Грызет канифоль
Сообщения: 251
Зарегистрирован: Сб янв 23, 2016 10:30:29

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение hector »

Почитал даташит на DS3231, а там пишут:
- After reflow, not production tested ... 0–10 years ... ±5.0ppm.
Попросту говоря, сразу после изготовления (запекания) DS3231 ее может и калибруют. Но вот полежала она пару лет на складе, и может на ±5.0ppm (±158 секунд в год!!!) уйти частота ее внутреннего кристалла (после старения, устаканивания).
О Карл!! :shock:
МAXIM, конечно же, об этом знает. Для чего, собственно, и ввела в DS3231 калибровочные регистры.
Вообщем ларчик просто открылся.
Теперь становится совершенно очевидным, что без дополнительной калибровки использование DS3231 лишено всякого здравого смысла. Та-же лотерея, что и с обычным кварцем 32768кГц. :beer:
p.s. т.к. WiseLord не думает бороться с этим злом, надо переходить на DS1307 + вспоминать про подстроечные конденсаторы возле кварца. :roll:
Последний раз редактировалось hector Пн ноя 14, 2016 21:45:31, всего редактировалось 1 раз.
Radan
Мучитель микросхем
Сообщения: 465
Зарегистрирован: Ср июн 21, 2006 08:24:32
Откуда: Лисичанск
Контактная информация:

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение Radan »

С помощью калибровочного регистра можно изменить 32768 Гц всего лишь на +-0,3Гц!
Настоящие Далласовские можно подстроить на точно 32768, а вот китайские как повезёт.
Могут сильно отличаться, на несколько герц. Поэтому желательно перед установкой в часы проверить их на хорошем частотомере на предмет 32768.
Аватара пользователя
hector
Грызет канифоль
Сообщения: 251
Зарегистрирован: Сб янв 23, 2016 10:30:29

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение hector »

Radan - у тебя чего, калькулятора нет?
+-0,3Гц для кварца 32768 Гц - это +-288 секунд в год для часов. Хватит с запасом для любой калибровки DS3231.
А без калибровки да, DS3231 - ничего выдающегося http://www.rtcs.ru/news_detail.asp?id=971
±2 минуты в год в реальных приложениях, как у меня и получилось. :(
Часы с возможностью суточной коррекции с шагом в 0.1с идут намного точнее.
По ходу DS1307+подстроечный конденсатор на кварце решат проблему точного хода часов. :)
Radan
Мучитель микросхем
Сообщения: 465
Зарегистрирован: Ср июн 21, 2006 08:24:32
Откуда: Лисичанск
Контактная информация:

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение Radan »

Если вместо 32768 на выходе отличие в несколько герц, а такое в китайских клонах замечено, никакая коррекция и калькулятор не поможет.
Разница в несколько секунд за сутки набегает!
Аватара пользователя
hector
Грызет канифоль
Сообщения: 251
Зарегистрирован: Сб янв 23, 2016 10:30:29

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение hector »

Не дает уснуть старику эта дурацкая ds3231 :(
Может знает кто способ считать-поменять содержимое ее регистров калибровки??
Программаторы всякого рода-племени имеются. :?
Radan
Мучитель микросхем
Сообщения: 465
Зарегистрирован: Ср июн 21, 2006 08:24:32
Откуда: Лисичанск
Контактная информация:

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение Radan »

Программаторы не помогут.
В самом контроллере должна быть функция записи в часовую микросхему по адресу &H10 калибровочной константы от -128 до 127. По умолчанию там 0. И ещё, отключаем батарейку, значения регистров обнуляются.
Есть рабочий код на Баскоме.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение WiseLord »

hector писал(а):Может знает кто способ считать-поменять содержимое ее регистров калибровки??
Да ровно так же, как читается/записывается время (часы, минуты и т.д.). Просто адрес ячейки другой.
Ответить

Вернуться в «Статьи»