Страница 1 из 16
Термометр: меньше не бывает?
Добавлено: Вт апр 27, 2010 23:08:38
love-chat
http://radiokot.ru/circuit/digital/home/61/Есть пару вопросов по етой схеме,ответьте пожайлуста.
1-Что за индикатор использован в статье автора?(маркировка)
2-можно ли ету схему запитать от низкого напряжения?(поставить-микроконтролер с буковкой L)
3-какие минимальные робочие напряжения для етой схемы?(микросхема,термодатчик)(какой из датчиков будет точнее измерять напряжение?маркировку)
4-обезательно впаивать резистор и конденсатор?зачем оны нужны?
5-микроконтролер программировался уже впаяным в схему?(или какимто другим способом?)
К чему ети вопросы-да схемка маленькая,но-питание 5 вольт-ето три пальчиковых батарейки...которые больше самого термометра...неувязочка.Хотелось бы собрать ету схему с питание от компьютерной круглой батарейки.
Re: Термометр: меньше не бывает?
Добавлено: Ср апр 28, 2010 09:23:18
Banjin
ИМХО, предел миниатюризации не достигнут, надо попробовать сделать термометр с применением жидкокристалического индикатора - в толщину меньше станет девайс
Re: Термометр: меньше не бывает?
Добавлено: Ср апр 28, 2010 10:59:18
ARV
тут давеча новости от NXP в мыло пришли - сделали они ARM Cortex в корпусе 2х2 мм. думаю, если взять его за основу, можно-таки будет достичь предела

Re: Термометр: меньше не бывает?
Добавлено: Чт апр 29, 2010 18:01:16
love-chat
Товарищи можно ответы по существу

Re: Термометр: меньше не бывает?
Добавлено: Чт апр 29, 2010 18:05:24
wws63
Надолго батарейки не хватит. Максимум - один день и то под сомнением

А отсутствие токоограничивающих резисторов, это вообще плохо. Так делать нельзя. Стремясь за миниатюризацией, не стоит забывать о надёжности работы устройства и яркости (качестве) свечения индикаторов. Оно будет плохим и сильно зависящим от напряжения питания устройства.
Re: Термометр: меньше не бывает?
Добавлено: Пт апр 30, 2010 12:22:12
Shushik
Скажите, а где и что поменять в прошивке, чтобы можно было использовать индикатор с общими анодами?
Re: Термометр: меньше не бывает?
Добавлено: Вт май 04, 2010 13:51:47
Danko
love-chat писал(а):Есть пару вопросов по этой схеме,ответьте пожалуйста.
1-Что за индикатор использован в статье автора?(маркировка)
2-можно ли эту схему запитать от низкого напряжения?(поставить-микроконтроллер с буковкой L)
3-какие минимальные рабочие напряжения для этой схемы?(микросхема, термодатчик)(какой из датчиков будет точнее измерять напряжение?маркировку)
4-обязательно впаивать резистор и конденсатор? зачем они нужны?
5-микроконтроллер программировался уже впаяным в схему?(или каким-то другим способом?)
К чему эти вопросы-да схемка маленькая, но-питание 5 вольт-это три пальчиковых батарейки...которые больше самого термометра...неувязочка.Хотелось бы собрать эту схему с питание от компьютерной круглой батарейки.
1-
RL-T3610GDAW/D152-эксперимент с буквой
L не производил, у обычного tiny2313 питание от 2,7 до 5,5 В.
3-для тини минимум 2,7В, для DS18S20 и DS18B20 минимум 3,0В
4-резистор 4,7кОм - подтягивающий для шины 1-wire. Конденсатор - в зависимости от источника питания. Если от батарейки возможно и не ставить, если от блока питания то можно добавить еще и электролит.
5-МК прошивается прямо на плате. Литиевая компьютерная батарейка выдает 3,0В. МК работать будет, а вот термодатчик
?Фотки сделаны при питании от батареек (4,0В) три подсевшие батарейки.
Для уменьшения ширины у МК перед монтажом ножки подгибаются под корпус.
Shushik писал(а):... что поменять в прошивке, чтобы можно было использовать индикатор с общими анодами?
в файле
mini-term.c строки: 50-68, 72-90, 99, 119, 124, 126. Инвертировать нужно значения и действия. Нужно подробнее?
Re: Термометр: меньше не бывает?
Добавлено: Вт май 04, 2010 15:39:10
Shushik
Danko Да, желательно поподробнее

Re: Термометр: меньше не бывает?
Добавлено: Ср май 05, 2010 11:07:00
Danko
Shushik, для сравнения выкладываю обе версии.
в папке plus схема, плата, фузы.
Re: Термометр: меньше не бывает?
Добавлено: Ср май 05, 2010 19:07:40
Shushik
Danko Огромнейшее спасибо!!!
Re: Термометр: меньше не бывает?
Добавлено: Ср май 05, 2010 20:38:26
xelos
ARV писал(а):тут давеча новости от NXP в мыло пришли - сделали они ARM Cortex в корпусе 2х2 мм. думаю, если взять его за основу, можно-таки будет достичь предела

из пушки по воробьям называется. нет смысла ставить ARM для термометра. еще и ос на него забацать.
Re: Термометр: меньше не бывает?
Добавлено: Пн май 31, 2010 18:44:36
fkvfaydar
Хм... странно, собрал на макетке. Подключил питание, вроде работает, но раз в секунду (а может и чаще) показывает на индикаторе f_1
То есть сначала температура - 26.3
в следующую секунду надпись -F 1
Не подскажете из-за чего это может быть?
Проблема устранена. Плавал контакт между data и vcc через резистор
Re: Термометр: меньше не бывает?
Добавлено: Ср июн 02, 2010 20:44:53
Лютик
скажите, а что будет на индикаторе при отрицательной температуре?
Re: Термометр: меньше не бывает?
Добавлено: Чт июн 03, 2010 11:06:16
uyra
можно ли питать термометр от таблеточных батареек
Re: Термометр: меньше не бывает?
Добавлено: Чт июн 03, 2010 11:12:13
Seal
uyra писал(а):можно ли питать термометр от таблеточных батареек
Можно, но не долго. Точнее батареек не на долго хватит.
Re: Термометр: меньше не бывает?
Добавлено: Чт июн 03, 2010 11:14:04
Seal
Лютик писал(а):скажите, а что будет на индикаторе при отрицательной температуре?
В статье есть файл для ПРОТЕУС,запусти и увидешь.
Re: Термометр: меньше не бывает?
Добавлено: Чт июн 03, 2010 14:55:04
Лютик
мне для этого еще и протеус качать и устанавливать

?! может проще просто ответить, я колеблюсь собирать или нет, т.к. показания отрицательной температуры меня тоже интрересуют
Re: Термометр: меньше не бывает?
Добавлено: Чт июн 03, 2010 17:39:07
Danko
Ограничений по индикации нет. Все то, что датчик измерит то термометр и покажет.

Re: Термометр: меньше не бывает?
Добавлено: Пт июн 04, 2010 10:10:12
Лютик
Danko писал(а):Ограничений по индикации нет. Все то, что датчик измерит то термометр и покажет.

спасибо, будем собирать

Re: Термометр: меньше не бывает?
Добавлено: Пн июн 07, 2010 11:09:59
pelican
Собрал девайс с 2-мя датчиками + прикрутил светик, который горит с показаниями одного датчика, и не горит с показаниями второго (что бы знать, какой датчик в данный момент работает). Заметил такой проблем: в какой-то момент светик начинает работать уже с другим датчиком, т.е. показания первого датчика остаются на индикаторе ещё на 2 сек., а светик гаснет, потом появляются показания второго датчика, а с ними зажигается светик... Что может быть? Подтянул ресет ч/з 10к к + питания (кнопку сброса поставил), так после этого таких сбоев стало меньше (1-2 раза в день, до этого - 10-15 раз в день а то и больше).
Вот думаю, как отловить этот момент?
вот код основного цикла:
Код: Выделить всё
while (1) {
if (ds18x20_devices >= 1) { // если обнаружено больше одного датчика
for (i=0;i<ds18x20_devices;) {
if (rom_code[i][0] == DS18B20_FAMILY_CODE){
temperature=ds18b20_temperature(&rom_code[i][0]);
}
if (rom_code[i][0] == DS18S20_FAMILY_CODE){
temperature=ds18s20_temperature(&rom_code[i][0]);
}
if (temperature!=-9999){
view_term();
if (ds18x20_devices > 1){
led_ON=~led_ON;
}
}
delay_ms(2000);
i++;
}
}
Может быть в моём случае есть смысл читать показания 1-го датчика в одну переменную, а второго - в другую, и, чётко зная, с каким датчиком идёт работа, светить или не светить диодом?
Или переписать основной цикл примерно так:
Код: Выделить всё
[code] while (1) {
if (ds18x20_devices = 2) { // если обнаружено 2 датчика
i = 0;
if (rom_code[i][0] == DS18B20_FAMILY_CODE){
temperature=ds18b20_temperature(&rom_code[i][0]);
}
if (rom_code[i][0] == DS18S20_FAMILY_CODE){
temperature=ds18s20_temperature(&rom_code[i][0]);
}
if (temperature!=-9999){
view_term();
}
led_ON = 1; // зажигаем диод
delay_ms(2000);
i = 1;
if (rom_code[i][0] == DS18B20_FAMILY_CODE){
temperature=ds18b20_temperature(&rom_code[i][0]);
}
if (rom_code[i][0] == DS18S20_FAMILY_CODE){
temperature=ds18s20_temperature(&rom_code[i][0]);
}
if (temperature!=-9999){
view_term();
}
led_ON = 0; // гасим диод
delay_ms(2000);
}
if (ds18x20_devices = 1) { // если обнаружен 1 датчик
if (rom_code[0][0] == DS18B20_FAMILY_CODE){
temperature=ds18b20_temperature(&rom_code[0][0]);
}
if (rom_code[0][0] == DS18S20_FAMILY_CODE){
temperature=ds18s20_temperature(&rom_code[0][0]);
}
if (temperature!=-9999){
view_term();
}
led_ON = ~led_ON; // просто мигаем каждые 2000 ms
delay_ms(2000);
}
}
[/code]
Какой вариант предпочтительней? Кто что сможет подсказать?