| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > USB HID термометр Delphi |
| Автор: maloicds 18.1.2012, 17:38 | ||
Собрал устройство ![]() Сама http://bascom.at.ua/publ/usb_termometr_na_2_datchika/1-1-0-33. Возникли проблемы с отрицательными температурами. Ни одна из найденных программ не смогла корректно отобразить эти значения. Решил написать свою на Delphi с использованием JvHidDeviceController. Вот код программы
Как получить значение температуры из JvHidDeviceController1DeviceData?? Переменной s присваивается значение типа A1 FF FE FE. Что делать дальше с ним я не знаю |
| Автор: Romikgy 22.1.2012, 14:30 |
| а что в меге происходит ? |
| Автор: maloicds 22.1.2012, 14:36 |
| Судя повсему мега нормально работает, нашел прогу на pure basic, она показывает с минусом. |
| Автор: Romikgy 22.1.2012, 17:16 |
| что показывает ? какой формат выдачи данных из меги ? |
| Автор: maloicds 22.1.2012, 17:23 |
| Программа, написанная кем то под эту прошивку показывает нормальную температуру (датчик за окном, зима...). С меги я данные получаю через JvHidDeviceController1DeviceData, на выходе что то типа A1 FF FE FE, а вот формат выдачи с меги я не знаю, скорее всего http://digit-el.com/files/open/ds18x20/ds18x20.html. |
| Автор: Romikgy 22.1.2012, 18:13 | ||
| это обмен с DS18S20 а мега может отдавать все что угодно ..... если посмотреть в исходники .... то
попробуй так |
| Автор: maloicds 22.1.2012, 18:26 |
| ругается, array type required. |
| Автор: Romikgy 22.1.2012, 18:48 | ||
|
| Автор: maloicds 22.1.2012, 20:01 |
| Работает. Спасибо!! А каким образом можно узнать код датчика? (для работы с несколькими датчиками). |
| Автор: maloicds 22.1.2012, 20:23 |
| Подпаял второй термометр параллельно первому, показания идут с уличного (на длинном проводе). Показания со второго проскочили один раз и всё. Судя по приёму данных, каждую секунду мега снимает данные с термометров. Попутно с показаниями температуры приходит значение -0.1 градус (FF FF 6A 01, FF FF FF FF, FF FF 67 01). Как быть? |
| Автор: Romikgy 22.1.2012, 21:13 |
| смотреть исходники меги там есть алгоритм работы с несколькими датчиками .... возможно данные идуть поочереди |
| Автор: maloicds 22.1.2012, 21:21 | ||
| Судя по исходнику есть работа с 2мя датчиками, запрос их номеров. А вот про мегу ничего не могу сказать, не разбираюсь. Добавлено через 14 минут и 59 секунд Нашел вот такое
Я так понимаю что данная прошивка расчитана на 2 датчика не более, если нужно больше, необходимо править прошивку заранее под определённое кол-во датчиков. Насколько я знаю 1-wire позволяет работать с большим количеством устройст. Послали запрос, получили номера устройств, послали запрос конкретному ус-ву на измерение температуры, получили ответ. Планирую данную схему к использованию в квартире. Температура пола, в комнате, отопление, балкон, улица.... Каждый раз при добавлении нового датчика править прошивку???? |
| Автор: Romikgy 22.1.2012, 21:42 |
| если самому написать прогу к меге ... то можно сделать и опрос любого числа датчиков |
| Автор: maloicds 22.1.2012, 21:51 |
| В общем хочу сделать что то http://www.masterkit.ru/main/set.php?code_id=565375 и http://www.sinava.ru/images/MP707_pc_many.jpg. Но вот прошивку сделать не смогу. Может пойдёт такой вариант: USB UART на ATTINY45 или ATMEGA2313, соединяю TxD, RxD резисторами (видел схему) и на линию сажаю датчики подключённые по схеме с паразитным питанием. С COM портом попроще будет работать то Добавлено через 4 минуты и 30 секунд Вот http://radiokot.ru/circuit/digital/pcmod/16/ |
| Автор: maloicds 22.1.2012, 22:16 |
| А случайно вторые два числа это не вторая ли температура? Потому что значение FF FF это как раз та ошибка измерений -0.1 градус. |
| Автор: Romikgy 22.1.2012, 23:08 |
| не исключено |
| Автор: maloicds 22.1.2012, 23:11 |
| как тогда это преобразовать в температуру? и что по предыдущему сообщению? |
| Автор: maloicds 22.1.2012, 23:23 |
| Отлично! Работает.С виртуальным COM портом имел в виду. Спасибо за помощь!! |