Часы на светодиодных матрицах с драйверами MAX7219
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Да, сейчас результат АЦП сразу влияет на яркость. Для добавления поддержки dht22 экономил на чем только мог, в том числе на коде, дававшем эту плавность. Думаю, прилепив туда конденсатор, можно добиться похожего эффекта "аппаратным" способом.
Re: Часы на светодиодных матрицах с драйверами MAX7219
А какая часть кода отвечает за плавность? Я сам могу вписать это в последнюю версию исходников и перекомпилировать под мегу328?
Re: Часы на светодиодных матрицах с драйверами MAX7219
подскажите пожалуйста как под windows установить avr-gcc-4.8? ну никак не хочет ставиться. winavr не предлагать, там древний avr-gcc идет в комплекте
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
http://sourceforge.net/projects/mobilec ... 8Win32%29/
Устанавливать после WinAVR. После установки добавить компилятор в PATH раньше WinAVR-овского (Это где-то в Панель управления => Система => Дополнительно => Переменные среды => Path).
Я когда-то пробовал ради интереса на другом проекте и снял скринкаст - WinAVR, GCC, QtCreator - настройка этой связки под Windows.
"Плавность" установки яркости обеспечивалась этим кодом, который сейчас упрощён.
Устанавливать после WinAVR. После установки добавить компилятор в PATH раньше WinAVR-овского (Это где-то в Панель управления => Система => Дополнительно => Переменные среды => Path).
Я когда-то пробовал ради интереса на другом проекте и снял скринкаст - WinAVR, GCC, QtCreator - настройка этой связки под Windows.
"Плавность" установки яркости обеспечивалась этим кодом, который сейчас упрощён.
Re: Часы на светодиодных матрицах с драйверами MAX7219
Ок. спрасибо. avr-gcc настроился)) сейчас яркость сделаю, а то при дневном освещении заметны подергивания яркости, а когда темнеет-- нормально регулируется от АЦП... может наводки?
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Выпилил наконец из 5мм толщины АБС-пластика корпус и засунул свои "проводки" внутрь.
Матрицы размером 32x32 мм², размеры корпуса получились 42x138*26 мм³. Датчик BMP180 закреплён внутри сзади (высверлено отверстие под сенсор), датчик DHT22 подключается через обычный 3.5мм аудиоразъём. Датчик освещённости сверху (на фото/видео прикрыт кусочком тёмной плёнки, чтобы яркость была минимальна и фото/видео с телефона более-менее получились).


Короткое видео:
Матрицы размером 32x32 мм², размеры корпуса получились 42x138*26 мм³. Датчик BMP180 закреплён внутри сзади (высверлено отверстие под сенсор), датчик DHT22 подключается через обычный 3.5мм аудиоразъём. Датчик освещённости сверху (на фото/видео прикрыт кусочком тёмной плёнки, чтобы яркость была минимальна и фото/видео с телефона более-менее получились).
Короткое видео:
Re: Часы на светодиодных матрицах с драйверами MAX7219
корпус это хорошо)). у меня редко конструкции доживают до корпуса.
никак git не могу победить. не хочет патч накладываться и всё тут, склонировал вашу ветку полностью, внес изменения, создал патч, результат на картинке.
я бы из без патчей обошелся, даже перешил фьюзы под 8МГц и переназначил порты под китайскую плату, но теперь у нас опять ветки расходиться начали -- я вернул плавную регулировку яркости, как было раньше(((
руками постоянно править исходники это же неправильно, когда git это умеет делать быстро
кстати не сравнивали температуру с датчиков? у меня BMP180 +26,8 а DS18b20 +21,3 показывает. Нагревается похоже BMP от платы..
никак git не могу победить. не хочет патч накладываться и всё тут, склонировал вашу ветку полностью, внес изменения, создал патч, результат на картинке.
я бы из без патчей обошелся, даже перешил фьюзы под 8МГц и переназначил порты под китайскую плату, но теперь у нас опять ветки расходиться начали -- я вернул плавную регулировку яркости, как было раньше(((
руками постоянно править исходники это же неправильно, когда git это умеет делать быстро
кстати не сравнивали температуру с датчиков? у меня BMP180 +26,8 а DS18b20 +21,3 показывает. Нагревается похоже BMP от платы..
- Вложения
-
- QIP Shot - Screen 022.png
- (52.35 КБ) 814 скачиваний
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Да, нагревается, причём сильно.
Похоже, придётся BMP180 наружу выводить. Как минимум, крепить на задней стенке - но снаружи. Когда все датчики болтались на проводах - что DS18B20, что BMP180, что DHT22 показывали приблизительно одно и то же, разница между минимальным и максимальным значениями была меньше 0,5°C.
По поводу git - я бы мог показать, как это сделать в git красиво (с отдельной локальной веткой). В Skype можете меня (wiselord1983) добавить, через тот же teamviewer я бы мог всё показать и пояснить.
Похоже, придётся BMP180 наружу выводить. Как минимум, крепить на задней стенке - но снаружи. Когда все датчики болтались на проводах - что DS18B20, что BMP180, что DHT22 показывали приблизительно одно и то же, разница между минимальным и максимальным значениями была меньше 0,5°C.
По поводу git - я бы мог показать, как это сделать в git красиво (с отдельной локальной веткой). В Skype можете меня (wiselord1983) добавить, через тот же teamviewer я бы мог всё показать и пояснить.
- shura2000
- Вымогатель припоя
- Сообщения: 613
- Зарегистрирован: Пн фев 23, 2015 21:17:29
- Откуда: г. Протвино, МО
Re: Часы на светодиодных матрицах с драйверами MAX7219
А почему могут кнопки как то неуверенно работать? Жмешь на нее, а в ответ тишина, или наоборот лишние нажатия происходят.
Re: Часы на светодиодных матрицах с драйверами MAX7219
WiseLord
поэтому я и убирал показания температуры от BMP180, завышаются сильно от нагрева. проще, кажется еще один DS18B20 поставить в отверстие в корпусе, чтобы он заподлицо был и не торчал из него.
shura2000
посмотрите, может контакт где-то плохой. последние прошивки работают стабильно. я и под 8 и под 16Мгц только что проверял.
кстати, нашел причину отказа автоматической регулировки яркости при кварце на 16МГЦ.
Причина в настройках АЦП была. вернул от ранней версии и все работает на 16МГц.
в новой было так:
{
// Enable Timer2 overflow interrupt and set prescaler to 1024 (7812 Hz)
#if defined(atmega8)
TIMSK |= (1<<TOIE2);
TCCR2 = (1<<CS22) | (1<<CS21) | (1<<CS20);
#else
TIMSK2 = (1<<TOIE2);
TCCR2B |= (1<<CS22) | (1<<CS21) | (1<<CS20);
#endif
// Adjust result to left, use VCC as Vref and set ADC channel //
ADMUX = (1<<ADLAR) | (0<<REFS1) | (1<<REFS0) | ADC_CHANNEL;
// Enable ADC
ADCSRA |= (1<<ADEN);
return;
}
я вернул на вот это из ранней версии:
{
/* Enable Timer2 overflow interrupt and set prescaler to 1024 (7812 Hz) */
#if defined(atmega8)
TIMSK |= (1<<TOIE2);
TCCR2 |= (1<<CS22) | (1<<CS21) | (1<<CS20);
#else
TIMSK2 |= (1<<TOIE2);
TCCR2B |= (1<<CS22) | (1<<CS21) | (1<<CS20);
#endif
ADCSRA |= (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0); /* Set ADC prescaler to 128 */
ADMUX = (1<<ADLAR) | (0<<REFS1) | (1<<REFS0); /* Adjust result to left, use VCC as Vref */
ADMUX |= ADC_CHANNEL; /* Set ADC channel */
ADCSRA |= (1<<ADEN);
return;
}
поэтому я и убирал показания температуры от BMP180, завышаются сильно от нагрева. проще, кажется еще один DS18B20 поставить в отверстие в корпусе, чтобы он заподлицо был и не торчал из него.
shura2000
посмотрите, может контакт где-то плохой. последние прошивки работают стабильно. я и под 8 и под 16Мгц только что проверял.
кстати, нашел причину отказа автоматической регулировки яркости при кварце на 16МГЦ.
Причина в настройках АЦП была. вернул от ранней версии и все работает на 16МГц.
в новой было так:
Спойлер
void matrixScrollAndADCInit(void){
// Enable Timer2 overflow interrupt and set prescaler to 1024 (7812 Hz)
#if defined(atmega8)
TIMSK |= (1<<TOIE2);
TCCR2 = (1<<CS22) | (1<<CS21) | (1<<CS20);
#else
TIMSK2 = (1<<TOIE2);
TCCR2B |= (1<<CS22) | (1<<CS21) | (1<<CS20);
#endif
// Adjust result to left, use VCC as Vref and set ADC channel //
ADMUX = (1<<ADLAR) | (0<<REFS1) | (1<<REFS0) | ADC_CHANNEL;
// Enable ADC
ADCSRA |= (1<<ADEN);
return;
}
я вернул на вот это из ранней версии:
Спойлер
void matrixScrollAndADCInit(void){
/* Enable Timer2 overflow interrupt and set prescaler to 1024 (7812 Hz) */
#if defined(atmega8)
TIMSK |= (1<<TOIE2);
TCCR2 |= (1<<CS22) | (1<<CS21) | (1<<CS20);
#else
TIMSK2 |= (1<<TOIE2);
TCCR2B |= (1<<CS22) | (1<<CS21) | (1<<CS20);
#endif
ADCSRA |= (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0); /* Set ADC prescaler to 128 */
ADMUX = (1<<ADLAR) | (0<<REFS1) | (1<<REFS0); /* Adjust result to left, use VCC as Vref */
ADMUX |= ADC_CHANNEL; /* Set ADC channel */
ADCSRA |= (1<<ADEN);
return;
}
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Ну так тому же DS18B20 тоже ничто не мешает нагреваться.
Я попробую у себя просто прикрутить плату с BMP180 снаружи. Особо торчать она при этом не будет, зато будет хорошо продуваться комнатным воздухом.
Или, как вариант, можно выпилить прямоугольное "окно" на задней стенке под плату. В общем, пока не знаю как лучше.
Я попробую у себя просто прикрутить плату с BMP180 снаружи. Особо торчать она при этом не будет, зато будет хорошо продуваться комнатным воздухом.
Или, как вариант, можно выпилить прямоугольное "окно" на задней стенке под плату. В общем, пока не знаю как лучше.
- alcxa
- Это не хвост, это антенна
- Сообщения: 1347
- Зарегистрирован: Ср мар 26, 2014 21:50:55
- Откуда: RF-73 ULN
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
DS18B20 проще наружу вытащить, чем BMP180 и не дай бог че нить в евону дырдочку попадет)
Re: Часы на светодиодных матрицах с драйверами MAX7219
у меня DS18B20 в массивном стальном корпусе, тепловая инерция большая и такой кусок железа работает как радиатор, нагрев меньше даже если установлен в корпусе прибора.
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Re: Часы на светодиодных матрицах с драйверами MAX7219
Всем привет!
WiseLord, можете сделать прошивку, в которой выход на "пищалку" будет инвертирован? Это нужно, чтобы подключить ее как в схеме JY-MCU 3208pro, а то сейчас она все время пищит, замолкает только при нажатии на кнопку. И еще, если не сложно, можно отключить вывод температуры с BMP180 и DHT22, а также убрать из бегущей строки атм., рт. ст.? Сам в программировании не силен, поэтому вся надежда на Вас.
Буду очень признателен.
Заранее спасибо.
WiseLord, можете сделать прошивку, в которой выход на "пищалку" будет инвертирован? Это нужно, чтобы подключить ее как в схеме JY-MCU 3208pro, а то сейчас она все время пищит, замолкает только при нажатии на кнопку. И еще, если не сложно, можно отключить вывод температуры с BMP180 и DHT22, а также убрать из бегущей строки атм., рт. ст.? Сам в программировании не силен, поэтому вся надежда на Вас.
Буду очень признателен.
Заранее спасибо.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Пищалка в моём варианте схемы подключена между выводом МК и питанием, т.е. пищит, когда МК выдаёт 0 на линию. В схеме J-MCU Pro пищалка подключена между землёй и коллектором npn-транзистора Q1. Когда на его базу МК выдаёт 0, транзистор (NPN!) открывается, и пищалка начинает звучать.
Разницы в сигналах никакой. Не знаю, как Вы там подключили пищалку, но явно неправильно.
Чтобы не выводить температуры с датчиков DHT22 и BMP180 просто удалите эти строки в исходнике. Программистом быть для этого не надо, а как собрать прошивку под windows тут уже обсуждалось не раз, в том числе совсем недавно. Текстовые метки можно подсократить hex-редактором, подправив eeprom, либо же там же в исходнике убрать вообще. Опять же, программистом быть для этого не нужно, код в этом месте достаточно прост.
Разницы в сигналах никакой. Не знаю, как Вы там подключили пищалку, но явно неправильно.
Чтобы не выводить температуры с датчиков DHT22 и BMP180 просто удалите эти строки в исходнике. Программистом быть для этого не надо, а как собрать прошивку под windows тут уже обсуждалось не раз, в том числе совсем недавно. Текстовые метки можно подсократить hex-редактором, подправив eeprom, либо же там же в исходнике убрать вообще. Опять же, программистом быть для этого не нужно, код в этом месте достаточно прост.
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Re: Часы на светодиодных матрицах с драйверами MAX7219
Спасибо, попробую.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Re: Часы на светодиодных матрицах с драйверами MAX7219
Упс.. А пищалку-то я себе еще и не припаял. От материнской платы пойдет или нужна со встроенным генератором? Упустил я этот момент с пищалкой , ибо будильником на этом устройстве не пользуюсь , т.к. лень будет утром из кровати к нему добираться чтоб выключить. Использую просто как метеостанцию. Вот была бы удалённая кнопка выключения, вроде пульта RC5, то можно и пользоваться. Хотя у меня десятка три платок attiny2313 с обвязкой думаю может их приспособить дергать порты кнопок по нажатию клавиш на пульте. В мегу328 то код влезет, но сам я его не добавлю, мозгов маловато видимо... А для тини2313 библиотеки есть и три порта по приему сигналов от пульта это уж просто сделать.
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Re: Часы на светодиодных матрицах с драйверами MAX7219
WiseLord писал(а):Разницы в сигналах никакой. Не знаю, как Вы там подключили пищалку, но явно неправильно.
Да, действительно стоял другой транзистор(BC847), поставил BC857 - стало все нормально.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Re: Часы на светодиодных матрицах с драйверами MAX7219
WiseLord писал(а):Чтобы не выводить температуры с датчиков DHT22 и BMP180 просто удалите эти строки в исходнике. Программистом быть для этого не надо, а как собрать прошивку под windows тут уже обсуждалось не раз, в том числе совсем недавно. Текстовые метки можно подсократить hex-редактором, подправив eeprom, либо же там же в исходнике убрать вообще. Опять же, программистом быть для этого не нужно, код в этом месте достаточно прост.
Сделал, как Вы советовали тут. display.c и eeprom.h поправил. Что нужно сделать дальше? Первый раз этим занимаюсь, поэтому не судите строго. И еще: при правке меток в eeprom нужно вписывать 0xFF или 0x00?
Заранее спасибо.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Re: Часы на светодиодных матрицах с драйверами MAX7219
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
