Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
Спасибо автору! Ну и мой вариант исполнения)))
- Вложения
-
- кнопки часы.lay
- Печатка для кнопок
- (22.53 КБ) 842 скачивания
-
- часы.lay
- Печатка основной платы платы
- (79 КБ) 703 скачивания
-
- Копия DSC09492.JPG
- Фото
- (34.91 КБ) 1219 скачиваний
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
Добрый день! Собираю данные часы, только я прошивку перекинул на Atmega16, и вчера залив программу, увидел, что на индикаторе ничего не отображается, правда я еще не подключил DS1307, но в протеусе при отключенных часах индикатор работает, как в живую, должен показывать индикатор? Индикатор висит на порту С, JTAG отключен.
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
без DS1307 работать не будет.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
Danko писал(а):без DS1307 работать не будет.
Т.е экран будет полностью пустой? Интересно почму протеус не так моделирует?
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
Запустил часы, как только прикрутил DS1307 сразу пошла заставка, переделал 2 скина под экран 20*2, я себе прикупил с белыми буквами и голубой заставкой, в темноте вид супер, единственное хочу попробовать управлять подсветкой экрана плавно с помощью ШИМ. И еще вопрос к знатокам, я перешел на Atmega16, для того чтобы вставить в программу кусок кода RC5, и убрать кнопки, но когда начал все это соединять запутался, в общем если кто-то сможет добавить туда код по обработке RC5, могу выложить проект на Atmega16 и генератор кода RC5для проверки, если не получится, тогда буду добавлять приемник команд на Attiny2313 и с него 6 выходов на кнопки(у меня сейчас 6 кнопок отдельно на входа заходят, почему-то АЦП я не смог запустить при переходе с Mega8 на 16)
- levaclaus
- Потрогал лапой паяльник
- Сообщения: 302
- Зарегистрирован: Пн янв 07, 2008 16:56:28
- Откуда: Минск
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
у меня тоже часы, с пультом ду, скоро термометр добацаю. Помогите толковый протокол rc5 добавить. Счас два устройства
2313v - пульт ду с 3 кнопка
и сами часы на atmega8
- по нажатии кнопок пульт мигает 100,200,300 мс, часы воспринимают это как нажатые 3 кнопки и всё управляется. Только конспирации никакой, на любой пульт откликаются(((
2313v - пульт ду с 3 кнопка
и сами часы на atmega8
- по нажатии кнопок пульт мигает 100,200,300 мс, часы воспринимают это как нажатые 3 кнопки и всё управляется. Только конспирации никакой, на любой пульт откликаются(((
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
levaclaus писал(а):у меня тоже часы, с пультом ду, скоро термометр добацаю. Помогите толковый протокол rc5 добавить. Счас два устройства
2313v - пульт ду с 3 кнопка
и сами часы на atmega8
- по нажатии кнопок пульт мигает 100,200,300 мс, часы воспринимают это как нажатые 3 кнопки и всё управляется. Только конспирации никакой, на любой пульт откликаются(((
Я делал немного по другому, на Attini 2313 спаял декодер RC5, получилось 16 выходов, просканировал все кнопки с пульта, на предмет адресов, выбрал адреса кнопок лево- право, вверх-вниз, меню, и esc-включение подсветки, и еще добавил на кнопку Power регулировку яркости дисплея. Выходы с микросхемы запаял на входы Atmega 16, т.е работали все кнопки и можно было работать с пультом. Но это была отдельная микросхема, яа мне надо было сасунуть этот код в сами часы, в общем написал я код по аналогии только обработка была на T1, но команды распознаются с ошибками, может из-за того что таймер 16 разрядный, и я его неправильно обрабатываю. Хотя в Протеусе моделируется нормально, на команды RC5 часы реагируют. А когда зашил в железо, то реакция на кнопку происходит только один раз, и больше не реагирует. Единственное что я хочу проверить, это подключить TSOP со всеми конденсаторами и резисторами, может какие помехи идут, хотя в Attiny2313 у меня выход напрямую подключался к INT0, и все работало. вчера еще переписал код обработки RC5 на таймере T0, закоментировав пока будильник, теперь команды распознаются четко, без ошибок, но в железе пока не работает.
- levaclaus
- Потрогал лапой паяльник
- Сообщения: 302
- Зарегистрирован: Пн янв 07, 2008 16:56:28
- Откуда: Минск
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
шикарно, можно считать что программа-декодер есть... А на каком языке написал? (скрестив пальцы загадываю С)
В принципе на барахолках продаются китайские пульты на пяток кнопок, можно былобы его заюзать
В принципе на барахолках продаются китайские пульты на пяток кнопок, можно былобы его заюзать
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
levaclaus писал(а):шикарно, можно считать что программа-декодер есть... А на каком языке написал? (скрестив пальцы загадываю С)
В принципе на барахолках продаются китайские пульты на пяток кнопок, можно былобы его заюзать
Ну я толком ничего не писал, просто подправил исходник на С под свои нужды, кстати вчера поборол свою программу, нашел в чем косяк был, теперь часики управляются без навешивания внешней микросхемы, а просто с помощью припаяного к INT0 TSOPу. Осталось разобраться с подсветкой при помощи ШИМ, и еще хочу задействовать свободные выходы Atmega16 под управление на основании данных с часов и датчиков температуры.
- levaclaus
- Потрогал лапой паяльник
- Сообщения: 302
- Зарегистрирован: Пн янв 07, 2008 16:56:28
- Откуда: Минск
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
а что за исходник, можеш поделиться?
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
levaclaus писал(а):а что за исходник, можеш поделиться?
Вот из этой статьи http://avru.cwx.ru/project/rc5_decoder_na_tiny2313.html
- levaclaus
- Потрогал лапой паяльник
- Сообщения: 302
- Зарегистрирован: Пн янв 07, 2008 16:56:28
- Откуда: Минск
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
хочу уточнить
у меня часы управляются 3 флагами, set=0, up=0, down=0.
В тех исходниках конечная последовательность принятого кода хранится в RC5_buffer?
Грубо говоря надо создать 3 сравнения с RC5_buffer и заданных бинарных кодов той или иной команды пульта, к примеру
if (RC5_buffer=11000001000000)
set=0;
if (RC5_buffer=11000001000001)
up=0;
if (RC5_buffer=11000001000010)
down=0;
RC5_buffer=0;
Так?
у меня часы управляются 3 флагами, set=0, up=0, down=0.
В тех исходниках конечная последовательность принятого кода хранится в RC5_buffer?
Грубо говоря надо создать 3 сравнения с RC5_buffer и заданных бинарных кодов той или иной команды пульта, к примеру
if (RC5_buffer=11000001000000)
set=0;
if (RC5_buffer=11000001000001)
up=0;
if (RC5_buffer=11000001000010)
down=0;
RC5_buffer=0;
Так?
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
скажите как увеличить скорость измерения температуры
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
вместо 76-го заливаете 95-й
а лучше ракетное топливо
Посмотрите исходники опрос датчиков крутится в цикле.
Кол-во оборотов цикла и их период завязаны в кучей параметров.
Измените один повалится вся пирамида.
Посмотрите исходники опрос датчиков крутится в цикле.
Кол-во оборотов цикла и их период завязаны в кучей параметров.
Измените один повалится вся пирамида.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
- hawkman
- Потрогал лапой паяльник
- Сообщения: 319
- Зарегистрирован: Ср окт 31, 2007 17:57:21
- Откуда: Украина Запорожье
- Контактная информация:
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
а как решить проблему с враньем показаний датчиков. оба врут в большую сторону на 1,5-2 градуса... обчитался форумов по этой проблеме так вразумительно и не понял ничего. одни кричат что датчики точные, а руки голова кривая, писавшая программу. другие, что сами датчики фигня и не являются точными.
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
hawkman писал(а):а как решить проблему с враньем показаний датчиков. оба врут в большую сторону на 1,5-2 градуса... обчитался форумов по этой проблеме так вразумительно и не понял ничего. одни кричат что датчики точные, а руки голова кривая, писавшая программу. другие, что сами датчики фигня и не являются точными.
У меня пока что, оба датчика находятся в комнате, показывают максимальный расброс 0.5 градуса, иногда 0.1, иногда показывают одинаковую температуру.
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
levaclaus писал(а):хочу уточнить
у меня часы управляются 3 флагами, set=0, up=0, down=0.
В тех исходниках конечная последовательность принятого кода хранится в RC5_buffer?
Грубо говоря надо создать 3 сравнения с RC5_buffer и заданных бинарных кодов той или иной команды пульта, к примеру
if (RC5_buffer=11000001000000)
set=0;
if (RC5_buffer=11000001000001)
up=0;
if (RC5_buffer=11000001000010)
down=0;
RC5_buffer=0;
Так?
Может можно и так, но там с буфера, формируется два слова, одно номер девайса, другое номер команды, а далее уже идет сравнение с командой, или можно еще и девайс использовать, если надо разделять пульты.
Код: Выделить всё
device = (RC5_buffer [3] << 4)|(RC5_buffer [4] << 3)|(RC5_buffer [5] << 2)|(RC5_buffer [6] << 1)|RC5_buffer[7]; //формируем адрес ПДУ
command = (RC5_buffer [8] << 5)|(RC5_buffer [9] << 4)|(RC5_buffer [10] << 3 )|(RC5_buffer [11] << 2)|(RC5_buffer [12] << 1)|RC5_buffer [13]; //формируем команду
t=command; //вспомагательная переменная
// ---------- чтение состояния кнопок ----------
unsigned char read_key(void) {
unsigned char i, k1; //key_adc;
k1=0;
// key_adc=read_adc(0);
for (i=0;i<5;i++){ // програмный антидребезг контактов
delay_ms(5);
if (~PINB.0|t==34) k1++; // 0 - кнопка не нажата, 1 - кнопка нажата
}
if (t==17|PINA.0==0) return KEY_L;
if (t==16|PINA.1==0) return KEY_R;
if (t==32|PINA.2==0) return KEY_U;
if (t==33|PINA.3==0) return KEY_D;
if (t==59|PINA.4==0) return KEY_MENU;
if (t==13|PINA.5==0) return KEY_ESC;
if ((t==12|PINA.6==0)&(PIN_BL == 1)) { OCR2=OCR2+5, t=200;} // если работает подсветка и нажата ESС, изменять яркость подсветки с помощью ШИМ
if (k1 > 3) return KEY_BL;
return 0;
Так сделано у меня.
-
Amator
- Открыл глаза
- Сообщения: 65
- Зарегистрирован: Вс дек 06, 2009 19:18:11
- Откуда: Ukrain, Sumy
- Контактная информация:
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
hawkman писал(а):а как решить проблему с враньем показаний датчиков. оба врут в большую сторону на 1,5-2 градуса... обчитался форумов по этой проблеме так вразумительно и не понял ничего...
Возможно опрос датчиков осуществляется очень часто, при этом происходит "саморазогрев" датчика (как раз на 1,5-2 градуса). Было проверено мной экспериментально.
Если на клетке со слоном увидишь надпись "Буйвол" - не верь глазам своим.
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
интервал 5 секунд. Это часто ?
Вопрос ко всем кто не боится экспериментов: влияет ли длина выводов у датчика на его "вранье"?
Когда я делал термодатчик из кремневого диода, то важным были длина выводов и сечение провода идущего к датчику.
Вопрос ко всем кто не боится экспериментов: влияет ли длина выводов у датчика на его "вранье"?
Когда я делал термодатчик из кремневого диода, то важным были длина выводов и сечение провода идущего к датчику.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Re: Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
Кто-то цеплял больше двух датчиков температуры, хочу прицепить три, определяются все три, но после начала индикации на экране мусор, в железе пока не пробовал. Вопрос к автору, сложно ли добавить показания 3-го датчика, если я оставлю допустим только 1 меню и уберу режим будильников, хочу собрать это в машину, нужны три температуры?