Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Термометр PIC16F683+TIC3321
anatol Дата: Пн, 31.05.2010, 14:23  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 471
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Купил себе по акции PICrit2 программатор ну и началось... Захотелось несколько дешевых ПИКов и ЖКИ чтобы знаки покрупнее и соединений поменьше. cool
Термометр как первый проект был выбран по необходимости на работе, важна была экономичность. Результат 1 резистор, 1 ПИК, 1 индикатор, 1 датчик плюс питание (устойчивая работа от 2,5 В до 5 В ).
В прикрепленном файле исходник, прошивка и "модель" моей первой разработки. В последующем планируется перевод в режим программирования термостата и работа с АЦП и ШИМ (паяльник с термопарой). Клавиатура на резистивном делителе использующая один вход. Если у кого есть наработки ( на бейсике ) просьба поделиться. К сожалению возраст (немного за 50 ) и стойкое нежелание мозга освоить английский затрудняют работу. Proteus 7.6 sp4 и Proton 2.0.05.
Схема потребляет 1.5 мА при частоте 4 мГц и 0,6 мА при 32 кГц (устанавливается конфигурацией). Индикатор TIC3321 работает при -10 градусах. Проверил в морозильной камере.
Прикрепления: termometr_P12_6.rar (160.3 Kb)

Сообщение отредактировал anatol - Пн, 31.05.2010, 15:43
ЯНДЕКС Дата: 31.05.2010
Dmitry Дата: Пн, 31.05.2010, 23:18  |                                                                                                                Сообщение # 2
Группа: Пользователи
Ранг:  Могу и подсказать
Сообщений: 157
Репутация: 6   ±
Замечания:   ±
На сайте с 12.05.2009

Статус: Offline

Прикольная штучка. Минимальная цена и сложность - сам такое люблю.
Жрет правда все равно много - на автономное питание не повесишь, быстро высосет батарейку.
Надо так: дал команду DS-ке, заснул, через секунду проснулся, считал DS-ку, вывел, заснул опять на секунду. Получится обновление с частотой 0,5 Гц и потребление в разы меньше.
А, еще от 0 до -10 градусов тоже надо бы с десятичной дробью выводить, разрядов же хватает.
anatol Дата: Пн, 31.05.2010, 23:41  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 471
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Dmitry. Я решал в основном проблему освоения программирования ПИКов. И в основном создания "модели" TIC3321 для проверки следующих разработок. Режим сна можно ввести, а также запитать датчик от порта - но это не изделие (пусть работоспособное), а ЗАГОТОВОЧКА.
К сожалению создать полноценную модель для протеуса не в силах (да и желания особого нет). А PIC12F683 заинтересовал своей наполненностью (покруче будет PIC16F84A или PIC16F628A) при своей маленькой цене.
Wictorych Дата: Сб, 24.07.2010, 11:47  |                                                                                                                Сообщение # 4
Группа: Пользователи
Ранг:  Пытаюсь разобраться
Сообщений: 53
Репутация: 0   ±
Замечания:   ±
На сайте с 11.07.2010

Статус: Offline

Дабы не плодить тем (уже одну не там создал) спрошу здесь...
Будем считать продолжением http://www.picbasic.ru/forum/8-452-1
Значит вооот:
После инвертирования данные показометра изменились с 890 на 64635, ну не суть... Это гдето комнатная температура, ну пусть 25 градусов.
Теперь при повышении температуры показометр увеличивает значение, и соотв-но наоборот... супер !
Но поскольку зависимость сопротивления от температуры нелинейная, то как организовать преобразование данных ?

Например:

64630 - 64635 это 25
64625 - 64630 это 24,9
...
а дальше значительное расширение диапазона

64500 - 64600 это 22
64300 - 64500 это 22,5

Надеюсь понятны выразил мысли... biggrin

Массив какой создавать чтоли, или IF'ами описывать ?!

brown Дата: Сб, 24.07.2010, 20:54  |                                                                                                                Сообщение # 5
Группа: Пользователи
Ранг:  Помогаю всем
Сообщений: 333
Репутация: 12   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

Quote
Зависимость сопротивления тер-
мистора R2 от температуры в общем случае носит нелинейный характер, поэтому используется
табличный метод с заранее подобранными коэффициентами. Таблица преобразования
напряжения АЦП в температуру предварительно заносится в ПЗУ МК;

В этом у меня опыта нет. sad


Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
Dmitry Дата: Сб, 24.07.2010, 21:31  |                                                                                                                Сообщение # 6
Группа: Пользователи
Ранг:  Могу и подсказать
Сообщений: 157
Репутация: 6   ±
Замечания:   ±
На сайте с 12.05.2009

Статус: Offline

Quote (Wictorych)
Массив какой создавать чтоли, или IF'ами описывать ?!

Если зависимость в интересующем диапазоне действительно нелинейная, то да, городить
таблицу в памяти. Оператор LOOKUPL тут очень пригодится. Я на нем даже психрометрическую таблицу в ПИК засунул happy
Wictorych Дата: Вт, 27.07.2010, 18:04  |                                                                                                                Сообщение # 7
Группа: Пользователи
Ранг:  Пытаюсь разобраться
Сообщений: 53
Репутация: 0   ±
Замечания:   ±
На сайте с 11.07.2010

Статус: Offline

Dmitry, возможно ли подсмотреть примеры "общения" с внутренним ПЗУ МК.
Каким образом заполняется память, и как соответственно потом это все считывается... ?

Интересен также вариант корректировки данных. Т.е. когда МК уже прошит и работает в схеме, данные в "таблицу ПЗУ" заносятся с клавиатуры.. biggrin

Сообщение отредактировал Wictorych - Вт, 27.07.2010, 18:07
Dmitry Дата: Чт, 29.07.2010, 23:26  |                                                                                                                Сообщение # 8
Группа: Пользователи
Ранг:  Могу и подсказать
Сообщений: 157
Репутация: 6   ±
Замечания:   ±
На сайте с 12.05.2009

Статус: Offline

Та я пытался ответить, форум писал "недостаточно прав"...

Смотря что понимать под "внутренним ПЗУ". У пиков их два - память программ и память данных.
Первая больше по размеру, но не все пики могут сами в нее писать, и ресурс у нее поменьше. Вторая
(память данных) - она поменьше, сотни байт, но писать туда могут все пики и ресурс у нее на порядок выше.
Запись в нее - команда:

EWRITE адрес, значение,значение,значение,...

считывание - команда:

переменная = EREAD адрес

При записи/чтении следите за размером переменных, т.е. если пишете число большее 255 (и меньше 65536), то это уже WORD, считывайте в такую же переменную, и адрес при следующем записи/чтении увеличивайте на 2, а не на 1-цу.

Поскольку планируется изменять таблицу в процессе работы, то команда LOOKUPL вам не подойдет, в ней значения в таблице задаются в тексте программы.

Wictorych Дата: Пт, 30.07.2010, 00:27  |                                                                                                                Сообщение # 9
Группа: Пользователи
Ранг:  Пытаюсь разобраться
Сообщений: 53
Репутация: 0   ±
Замечания:   ±
На сайте с 11.07.2010

Статус: Offline

Dmitry,

Я некорректно выразился, имелся в виду EEPROM конечно...
Спасибо за упомянутые выше команды, все = пригодятся ! good

Мдааа, вот я себе придумал ! happy
Ну его этот ММТ-4, надо прикупить DS18B20 ! wink

Dmitry Дата: Пт, 30.07.2010, 23:34  |                                                                                                                Сообщение # 10
Группа: Пользователи
Ранг:  Могу и подсказать
Сообщений: 157
Репутация: 6   ±
Замечания:   ±
На сайте с 12.05.2009

Статус: Offline

Quote (Wictorych)
Ну его этот ММТ-4, надо прикупить DS18B20 !

Это правильно, если диапазон устраивает.
Правда там тоже не дважды два, сначала репу чуток почухать надо, зато потом красота-а biggrin
  • Страница 1 из 1
  • 1
Поиск: