27 МОСКОВСКАЯ ВСТРЕЧА
Форум самогонщиков Сайт Барахолка Магазин 27 МОСКОВСКАЯ ВСТРЕЧА

Программа - "Поиск датчиков температуры ds18b20, DS1820 и DS18S20 на СОМ портах"

Форум самогонщиков Автоматика
1 ... 7 8 9 10 11 12 13 ... 19 10

Интересует продолжение публикаций на эту тему

  1. Да
    53
  2. Нет
    6
  3. У меня Ардуино
    7

Всего голосов: 66

mr.ptec Доктор наук Петрозаводск 703 171
Отв.180  06 Нояб. 16, 18:02
sevpro, он имел право надеяться на CD диск в комплекте т.к. на сайте указано наличие библиотек и ещё чего то там для железки.
Kotische Академик Саратов 8.1K 2.5K
Отв.181  06 Нояб. 16, 18:56, через 55 мин
как на 8-ми битах результата один из которых - знак (т.е. результат = 7бит, диапазон значений 0 - 127) рожается ещё три разряда после запятой?m16, 06 Нояб. 16, 14:21
Ты знаешь как на однобитных АЦП получают 24бита разрешения?
Методом последовательных уточнений значения.

Дело в том что у ds1821 внутри фигова туча регистров.
Есть регистр в которм хранится 8битное значение, типа целое число.
И есть два регистра в которых хранится уточнение, типа дробь, которая уточняет исходное значение.

Исходный 8 битный регистр имеет дискретность постоянну, т.е. диапазон разбит на 256 равных отрезков.
А уточняющие регистры разбивают каждый из 256 отрезков на неравное число подотрезков.
Т.е. эквивалентная битность АЦП меняется в зависимости от температуры.
В результате при разных температурах разрешение получается разным 0.003-0.005°С.
briareus Бакалавр Москва 62 39
Отв.182  06 Нояб. 16, 20:55
sevpro, он имел право надеяться на CD диск в комплекте т.к. на сайте указано наличие библиотек и ещё чего то там для железки.mr.ptec, 06 Нояб. 16, 18:02

Да ладно, стоит ли плакать на всю Вселенную: пять минут поиска в гугле и походу вот она, библиотека эта.
сообщение удалено
m16 Модератор Тамбов 1.9K 1K
Отв.183  06 Нояб. 16, 23:21
LM35
плюс средненький ацп
плюс софтигорь223, 06 Нояб. 16, 14:27
LM35 - хороший середнячок
средненький ацп в 16 рарядов? не бывает таких. от AD они более чем хороши.
то что ВБ приличный софт написал - не сомневаюсь
Разрешение 0,001С, сам видел как это работает.игорь223, 06 Нояб. 16, 14:27
П.С. Для наших задач разрешение более чем 0,1Сигорь223, 06 Нояб. 16, 14:27
а)в интересуещем нас диапазоне температур 30-100°С разрешение  - величина относительная (эфимерная) ничего не говорящая о темпераруре реальной
б)точность измерений в указанном диапазоне - есть real time .

так что нам нужно, а) или б)?
******************************************************************************************
И есть два регистра в которых хранится уточнение, типа дробь, которая уточняет исходное значение.Kotische, 06 Нояб. 16, 18:56
ты об этом?
DS1821:
1.   Issue Start Convert protocol (EEh).
2.   When conversion is finished, read 8–bit temperature
value (AAh).
3.   Convert value from 2’s complement to signed inte-
ger (named temp_read).
4.   Read     9–bit     counter     value     (A0h;     named
count_remain).
5.   Send undocumented Load Counter protocol (41h).
6.   Read     9–bit     counter     value     (A0h;     named
count_per_degree).
7.   Calculate  high–resolution  temperature  using  the
high  resolution  temperature  equation  given  in  the
previous section.  Note that for the DS1821, 1/2LSB
= 0.5
недокументированный протокол - ключевая фраза . т.е. производитель в лице далласа не гарантирует истину считываемых показаний при точности измерений
Accuracy is ±1°C over 0°C to +85°C range
посему даллас сие безобразие в даташите не оговаривает (официальный документ же) а публикует апноту Application Note 105 о "закладках" за которые отвечать не прийдётся.
******************************************************************************************
ну это полбеды. вторая - протокол 1-wire который не реализован на аппаратном уровне ни в одном контроллере . реализация чисто софтовая с соблюдением всех таймингов по протоколу, отсюда запрет всех прерываний с вытекающим - not real time mashine. лично меня это не устраивает в совокупе с Accuracy is ±1°C   и   Converts temperature to a digital word in 1 second (max)  .
******************************************************************************************
я по уши наковырялся с дс-ками, потратил куеву тучу времени (нервов) без приемлемого резльтата , плюнул, забросил . без проблем перешёл на pt1000 + 24bit аdc . уж третий год работает безотказно, чего и Вам желаю.
Mnz Магистр Город 254 86
Отв.184  06 Нояб. 16, 23:44, через 24 мин
протокол 1-wire который не реализован на аппаратном уровне ни в одном контроллере . реализация чисто софтоваяm16, 06 Нояб. 16, 23:21
Почти во всех контроллерах есть USART, который вместе с DMA позволяет почти аппаратно реализовать 1-Wire протокол.
m16 Модератор Тамбов 1.9K 1K
Отв.185  06 Нояб. 16, 23:50, через 6 мин
и это всё полезное что ты извлёк из моего опуса?
два раза почти - НЕЗАЧОТ.
capsolo Профессор Зелик 5.3K 1.6K
Отв.186  06 Нояб. 16, 23:52, через 3 мин
mr.ptec, с тех пор я заматерел и погрузился в Ардуину с головой. Могу тебе сваять из двух железок (плюс бп стабилизированный 5в релюхи и платку питать)
Железка 1:
http://www.aliexpress.com/item/32630652771/32630652771.html
Железка 2:

http://www.aliexpress.com/item/2042682698/2042682698.html

Купишь железки, подсоединишь одну к другой, все к бп, зальешь мой скетч - будет видеться как ком порт.
Протокол твой. Навскидку могу выдумать шлешь ему R11\n типа включить первое реле, он тебе R11 первое реле включено. R1?\n Ему шлешь типа как там первое реле? Он тебе R11 типа включено.ну и так со всеми реле.
Ну и цена в несколько раз меньше.

По поводу градусников: точно было бы здорово знать т в кубе, чтобы посчитать текущую навалку, время до конца процесса и т.д. Точно знать т в других узлах необходимо в очень узкоспециализированных задачах, до которых нужно дорасти. Для расчета навалки еще будет нужен датчик атм давления, ну и внести поправочный коэффициент в показания градусника. Ума не приложу как ты его будешь прикручивать оставаясь в парадигме комп-датчики. Если таки допустить промежуточное звено в виде микроконтроллера - датчик прикручивается за час максимум к Ардуине (все библиотеки есть) и так же будет тебе в ком-порт докладывать текущее давление, еще и градусники может опрашивать...
Mnz Магистр Город 254 86
Отв.187  07 Нояб. 16, 00:02, через 10 мин
и это всё полезное что ты извлёк из моего опуса?m16, 06 Нояб. 16, 23:50
Я дополнил твой ответ, ведь не обязательно программно формировать временные слоты протокола 1-Wire. Эту задачу можно переложить на USART и тогда прерывания не помешают работе с датчиками.
capsolo Профессор Зелик 5.3K 1.6K
Отв.188  07 Нояб. 16, 00:08, через 7 мин
Коллеги, подождите. Далласы да не очень точны (хотя изменение т отслеживают до сотых) но работают асинхронно, хоть и медленно. Запустил преобразование и завел секундомер. Потом как время прошло - считал и опять преобразование запустил.
m16 Модератор Тамбов 1.9K 1K
Отв.189  07 Нояб. 16, 00:13, через 6 мин
Mnz, нее. USART мне нужен для более важных дел. теперь мне можно рассказать о расширителе USART-а либо о камне с восемью USART-ми . простой вопрос - зачем?
Mnz Магистр Город 254 86
Отв.190  07 Нояб. 16, 00:23, через 10 мин
В многих микроконтроллерах больше одного USARTа. Например в STM32F103C8T6 их три штуки. А в STM32F098VCT6 их 8 штук.
capsolo Профессор Зелик 5.3K 1.6K
Отв.191  07 Нояб. 16, 00:24, через 2 мин
Mnz, m16, коллеги мы про самогон говорим или про управление ядерным реактором? Жалко что ли пару регистров раз в секунду записать?
mr.ptec Доктор наук Петрозаводск 703 171
Отв.192  07 Нояб. 16, 00:35, через 11 мин
capsolo, Спасибо за предложение! Насчёт твоих железок скажу что платка что на ATmege в ту же цену что и stm32. Платка с релюхами зачётна недорога и видимо заточена под атмегу-ардуино.
Но зачем мне столько релюх, я триаки хочу.:)))
В этой малышке - STM32F103C8T6, насколько я понимаю в микроконтроллерах, выводы есть. В планах прикурить к ним триаки.
Хочется своих граблей.
STM32F103C8T6.png
STM32F103C8T6.png Программа - "Поиск датчиков температуры ds18b20, DS1820 и DS18S20 на СОМ портах". Автоматика.
Mnz Магистр Город 254 86
Отв.193  07 Нояб. 16, 00:40, через 6 мин
На плате с двух сторон находятся по 20 выводов. Три симстора без проблем прикрутить можно.
Kotische Академик Саратов 8.1K 2.5K
Отв.194  07 Нояб. 16, 00:51, через 11 мин
m16, не находишь свои аргументы слегка тухловатыми?
Я из твоего опуса понял только что ты НЕ СМОГ.
А у меня этот датчик прекрасно работал и меня его работа вполне устраивала.
capsolo Профессор Зелик 5.3K 1.6K
Отв.195  07 Нояб. 16, 01:18, через 27 мин
mr.ptec, если с мк до сих пор не дружил лучше бы с Атмеги начать. Ардуина дает "мягкий" вход в мир МК. Сначала на коленке прототип устройства за вечер за счет многообразия библиотек, потом либо памяти не хватает либо тормозит - начинаешь эти библиотеки ковырять, оптимизировать. Потом даташит на мк курить, ну а потом уезжаешь с Ардуины и пишешь напрямую для мк. Я правда пошел наоборот. А то, о чем я написал будет меньше 100 строчек кода и делается на Ардуине за пару часов.
А так то стм более модная. Просто супер более модная, но чтобы получить доступ ко всем ее роскошествам надо прокачаться до определенного уровня. Это как с горными лыжами.
mr.ptec Доктор наук Петрозаводск 703 171
Отв.196  07 Нояб. 16, 02:07, через 50 мин
На плате с двух сторон находятся по 20 выводов. Три симстора без проблем прикрутить можноMnz, 07 Нояб. 16, 00:40
ТОлько три? А не больше?
Сижу читаю-думаю, а не сильно я замахнулся заказав STM32F103C8T6 ? Может с чего то попроще начать?
Мне надо то всего то - USB свисток который определиться на HID устройство. На устройство можно будет повесить штук 6-8 симисторов...
sevpro Доктор наук Worldwide 769 281
Отв.197  07 Нояб. 16, 07:23
в совокупе с Accuracy is ±1°Cm16, 06 Нояб. 16, 23:21
И не нормированном Error того же порядка.
реализация чисто софтовая с соблюдением всех таймингов по протоколуm16, 06 Нояб. 16, 23:21
нужно признать, что тайминги весьма гибкие и в большинстве случаев не сильно мешающие если не сидеть полжизни в прерываниях, рассчитывая в них баллистику полета на марс.
capsolo Профессор Зелик 5.3K 1.6K
Отв.198  07 Нояб. 16, 08:39
mr.ptec, на 8 симисторов и пару градусников хватит наны за глаза.
Mnz Магистр Город 254 86
Отв.199  07 Нояб. 16, 13:20
если с мк до сих пор не дружил лучше бы с Атмеги начать. Ардуина дает "мягкий" вход в мир МК.capsolo, 07 Нояб. 16, 01:18
Минус ардуины в том что нет отладки, и если появится непонятка то посмотреть в железе как выполняется код и что в регистрах не получится.

ТОлько три? А не больше?mr.ptec, 07 Нояб. 16, 02:07
Можно и больше. Выводов хватает.

Мне надо то всего то - USB свисток который определиться на HID устройство.mr.ptec, 07 Нояб. 16, 02:07
Простой пример HID на бейсике в соседней теме [сообщение #12806507]

Если предпочитаешь Си, смотри пример в прикрепленном файле. Прием из компа производится в функции CUSTOM_HID_OutEvent_FS файла usbd_custom_hid_if.c
static int8_t CUSTOM_HID_OutEvent_FS  (uint8_t event_idx, uint8_t state)
{
  /* USER CODE BEGIN 6 */
  if (event_idx == 0xAA) HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
  else if (event_idx == 0x55) HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);

  return (0);
  /* USER CODE END 6 */
}
Передача в комп в функции main файла main.c
    if (HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_12) != 0) // Кнопка не нажата
    {
        if (SendBuff != 40)
        {
            SendBuff = 40;
            USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS, &SendBuff, 1); // Передача данных компьютеру.
        }
    }
    else
    {
        if (SendBuff != 20)
        {
            SendBuff = 20;
            USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS, &SendBuff, 1); // Передача данных компьютеру.
        }
    }