[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: RD3AVJ 
Форум » форумы » Готовые проекты » Еще один цифровой термометр.
Еще один цифровой термометр.
4esterДата: Среда, 23.05.2012, 18:46 | Сообщение # 1
Группа: Друзья
Сообщений: 11

Статус: Offline
Основные возможности термометра:
2 канала измерения, 1 датчик выносной, фиксация максимальной и минимальной температуры без сохранения в еепром т.к. мне это не надо, по желанию можно добавить, связь с пк с возможностью вывода в порт значений измеренной и зафиксированной температуры, по нажатию 1 кнопки выводятся зафиксированные показания, по нажатию второй значения сбрасываются. На печатной плате установлена микросхема MAX232 для связи с ПК, и tiny2313 выполняющего функцию виртуального COM порта. Питается устройство либо от порта юсб ПК, либо от зарядного устройства от мобильного телефона с разъемом юсб типа а, тем же проводом. Сделано для удобства. Все необходимые файлы в архиве.
Фьюзы настроены на внешний кварц.
Прикрепления: 0969739.rar(291Kb)




Сообщение отредактировал 4ester - Среда, 23.05.2012, 18:47
 
exersizzeДата: Среда, 23.05.2012, 23:39 | Сообщение # 2
Группа: Администраторы
Сообщений: 716

Статус: Offline
Функция tini2313 в проекте организовывать виртуальный COM порт через юсб? Тоесть можно использовать как замену FT232RL?
По возможности добавь парочку фотографий получившегося девайса.


 
4esterДата: Четверг, 24.05.2012, 01:19 | Сообщение # 3
Группа: Друзья
Сообщений: 11

Статус: Offline
Quote (exersizze)
Тоесть можно использовать как замену FT232RL?

Да тинька здесь выполняет функцию uart, вот от сюда брал схему за ОСНОВУ, еще можно на меге 8 сделать, но у меня тиньки безхозные валялись, мегу пожалел, а фотки завтра сделаю.


 
RD3AVJДата: Четверг, 24.05.2012, 09:15 | Сообщение # 4
Группа: Модераторы
Сообщений: 175

Статус: Offline
Спасибо за освещение данного момента. Схему видел ранее, но как то пропустил этот момент. Тема термометров не нова, но использование таких решений делают такие проекты очень полезными! СПАСИБО!

 
4esterДата: Четверг, 24.05.2012, 23:30 | Сообщение # 5
Группа: Друзья
Сообщений: 11

Статус: Offline
Ну вот выкладываю обещанные фото
вид платы сверху


Вид платы со стороны дорожек


Вид сбоку со стороны датчика, и разъема для выносного датчика


Вид сбоку со стороны интерфейсных разъемов


вид сверху, в корпусе, пока еще без фальшпанели


вид сбоку


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


Ну и заключительная фотография, этот провод RS232 который я забыл сфотографировать вместе с остальными
Прикрепления: 1142743.jpg(51Kb) · 3838727.jpg(56Kb) · 7324150.jpg(53Kb) · 5243893.jpg(55Kb) · 1661674.jpg(47Kb) · 7340867.jpg(51Kb) · 1208017.jpg(61Kb) · 2525681.jpg(59Kb)


 
pchela5Дата: Вторник, 18.12.2012, 10:43 | Сообщение # 6
Группа: Проверенные
Сообщений: 56

Статус: Offline
Собственно программа термостата с детектором присутствия на 4 канала:
Прикрепления: termostatPIR_Wa.bas(23Kb)


 
Vitek1977Дата: Среда, 19.12.2012, 16:02 | Сообщение # 7
Группа: Пользователи
Сообщений: 3

Статус: Offline
в том та и дело что нет переменных под такой адрес. максимум же 4 байта
Прикрепления: 9806976.rar(28Kb)


 
pchela5Дата: Среда, 19.12.2012, 17:31 | Сообщение # 8
Группа: Проверенные
Сообщений: 56

Статус: Offline
Давай переместимся сюда пообсуждаем программу. Посмотрел - сильна программа, сходу не осилишь ))). Заметил много одинаковых решений - почему их не формить бы в функции? Далее, пробовал ли применить CASE - может так меньше места займет, чем несколько IF-ELSE-ENDIF?

 
pchela5Дата: Среда, 19.12.2012, 17:35 | Сообщение # 9
Группа: Проверенные
Сообщений: 56

Статус: Offline
Quote (Vitek1977)
максимум же 4 байта


А стринги не пробовал? Я бы тебе порекомендовал почитать апноут №193 про использование OVERLAY - вещь посильнее Фауста Гёте будет. Единственное - надо попробовать, как она будет и будет ли работать с EEPROM.
PS

Dim Array(17) As Byte At &H100
Dim String_ram As String * 16 At Array Overlay

Dim ArrayEram(17) As Eram Byte At &H10
Dim StringEram As Eram String * 16 At ArrayEram Overlay

Такая конструкция объявления переменных прокатила - так что можно смело пробовать.




Сообщение отредактировал pchela5 - Среда, 19.12.2012, 17:49
 
Vitek1977Дата: Четверг, 20.12.2012, 14:12 | Сообщение # 10
Группа: Пользователи
Сообщений: 3

Статус: Offline
конечно надо пробовать, ичиться. я месяц назад начал с нуля. и для меня главное было реализовать алгоритм в работе как можно быстрей. запустил ее вообще в сыром виде, без выбора датчиков, без защиты дураков, а потом уже продолжил дописывать. кстати перевел на $eeprom так как на не пощел вариант чо описывал один датчик запоминался. если честно я так пока и не понял с распределением адреса датчика. обращение едет 1wverify Nomdat1(1) первая ячейка массива, после считывания проверяю, в них лежит 28Н у всех датчиков, где то попадалось описание этого 64 битного адреса, на сколько помню это вид изделия, и еще один байт вроде как постоянная величина чего та, а остальные байты как уникальный адрес. вообщем при сравнении 3 байта на моих 3 датчиках одинаковые. на досуге попробую те варианты что ты предлагаешь, на счет CASE выглядеть может и будет меньше, но что выдаст при компиляции ето интересно. надо пробовать smile

 
Vitek1977Дата: Четверг, 20.12.2012, 14:18 | Сообщение # 11
Группа: Пользователи
Сообщений: 3

Статус: Offline
в идеале проработать программу да и перенести ее на другую мегу, есть желание добавить к устройствы gsm, но пока это для меня темный лес cool

 
pchela5Дата: Пятница, 21.12.2012, 11:25 | Сообщение # 12
Группа: Проверенные
Сообщений: 56

Статус: Offline
Quote (Vitek1977)
где то попадалось описание этого 64 битного адреса


Уж не в даташите ли? ))) Надо смотреть, да, какое значения принимают переменные при считывании уникального адреса. Но их размерность известна, местоположение в памяти можно жестко задать, ну и то, что я написал выше - работает - проверял на симуляторе.
Code

$regfile = "m8def.dat"
$crystal = 4000000
$hwstack = 40
$swstack = 16
$framesize = 32

Dim I As Byte
Dim B As Byte

Dim Array(17) As Byte At &H100
Dim String_ram As String * 16 At Array Overlay

Dim Array_eram(17) As Eram Byte At &H10
Dim String_eram As Eram String * 16 At Array_eram Overlay

String_ram = "0123456789adsfgk"                             'String_eram
String_eram = String_ram

Do

For I = 1 To 16                    ' Step -1

B = 17 - I

Array(i) = Array_eram(b)

Next I

String_eram = String_ram

Waitms 10

Loop

End


Данный код меняет местами данные в ОЗУ и EEPROM.


 
Форум » форумы » Готовые проекты » Еще один цифровой термометр.
Страница 1 из 11
Поиск: