STM32 #4. DS18B20 - подключение любого количества датчиков на одну линию UART`а.

  Рет қаралды 13,669

NR.electronics

NR.electronics

Күн бұрын

Пікірлер: 163
@Груз-ч2ь
@Груз-ч2ь 2 жыл бұрын
Двойная польза, зашел посмотреть как осуществляется работа нескольких датчиков (в процессе собираю термоконтроллер для печи) из за скудности ума, каждый раз продолжаю свою сборку прототипа, как заново.... на Arduino Nano....приметил тут интересные "фичи" однако Спасибо за подробный ввод с нуля, stm32 -знал, что это мощный контроллер, но еще и среда разработки соответствующая. Более удобная на мой субьективный взгляд. огромное Спасибо за труды! Просмотров Вам! Здоровья и хорошего настроения)
@NRelectronics
@NRelectronics 2 жыл бұрын
Спасибо! Переходите с ардуино на stm32! Мой канал и сообщество в этом вам поможет. 👍
@andrewdronsson9028
@andrewdronsson9028 2 жыл бұрын
@@NRelectronics По нынешним временам приходится откатываться с STM-а на ардуй (AVR то есть). Я не далее как вчера как раз для AVR сделал софт, считывающий температуру DS18B20, правда, пока не заморачивался со многими на одной линии, и без уарта, просто ногодрыганием.
@NRelectronics
@NRelectronics 2 жыл бұрын
По нынешним временам stm32 достать уже не проблема
@andrewdronsson9028
@andrewdronsson9028 2 жыл бұрын
@@NRelectronics Подорожало всё резко. Мне перед самым НГ дед мороз принёс немного ардуёв про микро где-то по триста рублей плата. И три термодатчика в нержавейке на DS18D20. 🙂
@NRelectronics
@NRelectronics 2 жыл бұрын
Подорожало гораздо раньше... Но сейчас хотя бы что-то стало доступным, стало возможно хотя бы купить... Советую вам всё же не ардуино, а stm32 изучать.
@МихаилКононенко-ж3ю
@МихаилКононенко-ж3ю 2 жыл бұрын
С наступающим! Спасибо за вашу работу.
@NRelectronics
@NRelectronics 2 жыл бұрын
Спасибо!
@avr_stm_pro2955
@avr_stm_pro2955 2 жыл бұрын
Спасибо что делитесь своими знаниями
@NRelectronics
@NRelectronics 2 жыл бұрын
Пожалуйста, теперь и вы ими делитесь, так должно быть в цивилизованном обществе.
@Ironziz
@Ironziz 2 жыл бұрын
@@NRelectronics благодарю за просвещение людей в сфере электронных технологий!!! Так хочется чтобы появлялись грамотные спецы которые что то создают, а то мы (общество вокруг меня) увлеклись перепродажей ((
@ewfreg5nythyhtewt4w
@ewfreg5nythyhtewt4w 6 ай бұрын
Спасибо за то что поправили реализацию с libopencm3 на HAL! :)
@NRelectronics
@NRelectronics 6 ай бұрын
Не за что)
@ГеннадийГром-в8ю
@ГеннадийГром-в8ю 2 жыл бұрын
На 11:25 "//код семейва датчика", а на ускоренном я прочитал "код СЕЙВА датчика", о как, думаю, а что датчики ещё и сейвятся?! 😲 Но повторный замедленный просмотр вернул всё на круги своя! А на 18:14 "люди смотрят с мобильных телефонов", ну как на мой взгляд, смотреть видос о программировании с телефона - такое себе удовольствие... хм-м, и тут же набивать код в Cube IDE для Android, для проверки!? Это круто! И всех-всех с Новым Годом!!! 👍😁🤪
@NRelectronics
@NRelectronics 2 жыл бұрын
Так смотрят! И просят сделать шрифт крупнее!))) 😂 неоднократно писали, я ведь не придумываю)) С новым годом и вас!
@ГеннадийГром-в8ю
@ГеннадийГром-в8ю 2 жыл бұрын
@@NRelectronics Да не, я без претензий, я верю! Я просто пытаюсь понять, для чего это нужно? 🤔 Текст мелкий, видно чуть, может что бы выучить наизусть? 😜 Не понимаю просто, как то в черепушке не укладывается... 😲 Мож старею?! 👍😁🤪
@NRelectronics
@NRelectronics 2 жыл бұрын
Мне порой кажется, что, есть люди которым просто поболтать в комментариях 🙂 профессионалов мало))
@ГеннадийГром-в8ю
@ГеннадийГром-в8ю 2 жыл бұрын
@@NRelectronics Ну дык, больше комментов - выше рейтинг! По любому, профит для автора! 👍😁🤪
@NRelectronics
@NRelectronics 2 жыл бұрын
Профит по любому, это да! 😉😂👍
@ИванСидоров-к9м
@ИванСидоров-к9м 2 жыл бұрын
Код библиотеки не смотрел, но согласно appnote, код прекращает поиск ROM в тот момент, когда опросит все датчики. Поэтому та двойка, о которой Вы говорите это нечто другое. 64 датчика - это тупое выделение памяти под ROM коды датчиков. Если памяти хватает, то без проблем можно выделять еще. Еще один момент: 10 или 12 датчиков у меня в тесте опрашивались в течении примерно 100 мС. Это их уникальные адреса. Чтение температуры также будет довольно длительной процедурой: запуск на конвертацию общий, а вот чтение - отправка двух команд, уникального ROM (8 байт) и потом чтение scratchpad для того, чтобы проверить CRC. Итого, при таймслоте в 70 uS: 160 бит * 70 = 11.2 мС... А если датчиков 10 - 100?
@NRelectronics
@NRelectronics 2 жыл бұрын
Ну будет чуть дольше 😉
@andrewdronsson9028
@andrewdronsson9028 2 жыл бұрын
А куда торопиться? температура же...
@ГеннадийГром-в8ю
@ГеннадийГром-в8ю 2 жыл бұрын
И, вдобавок, опрос датчиков, хотя-бы раз в секунду, вызывает их нагрев и чем чаще тем сильней, а соответственно, искажаются данные о температуре! Опрос раз в 100 мс повышает температуру чуть ли не на градус, проверено лично! 👍😁🤪
@NRelectronics
@NRelectronics 2 жыл бұрын
респект за такой коммент!
@andrewdronsson9028
@andrewdronsson9028 2 жыл бұрын
@@ГеннадийГром-в8ю Вот, кстати, ага. Спасибо, что напомнили.
@Maximir_
@Maximir_ Жыл бұрын
Здравствуйте , скажите пожалуйста, в каком регистре находятся флаги ALARM , которые срабатывают при разницы температуры (TH) и (TL) ?
@sergeygrechishnikov282
@sergeygrechishnikov282 2 жыл бұрын
Николай спасибо за видео и с наступающим новым годом вас! Возник вопрос, а возможно разработка при помощи Cmsis сетевого модуля ENC28J60 или стоит присмотреться к другому модулю? Спасибо.
@NRelectronics
@NRelectronics 2 жыл бұрын
Спасибо! ENC на 10Мб/с, он мало интересен при современных жирных МК. Хотя конечно всё зависит от задачи.
@sergeygrechishnikov282
@sergeygrechishnikov282 2 жыл бұрын
@@NRelectronics да задача самая простая, изучение сетевого взаимодействия между МК и ПК.
@NRelectronics
@NRelectronics 2 жыл бұрын
Я планирую какой-нибудь взять контроллер для сети, пока никак не определюсь...
@sergeygrechishnikov282
@sergeygrechishnikov282 2 жыл бұрын
@@NRelectronics как определитесь, поделитесь пожалуйста инфой))
@NRelectronics
@NRelectronics 2 жыл бұрын
Конечно определюсь, обязательно!)
@openFrimeTv
@openFrimeTv 2 жыл бұрын
полезная инфа. как всегда спасибо!)
@openFrimeTv
@openFrimeTv 2 жыл бұрын
но я до сих пор жду про юсб))
@NRelectronics
@NRelectronics 2 жыл бұрын
Спасибо! Юсб будет, записан в ближайшем плане. Это точно
@openFrimeTv
@openFrimeTv 2 жыл бұрын
@@NRelectronics отлично. режим ждуна включен)
@NRelectronics
@NRelectronics 2 жыл бұрын
Прикольно!)))
@ГеннадийГром-в8ю
@ГеннадийГром-в8ю 2 жыл бұрын
@@openFrimeTv Смотрите там поаккуратней, не обждунитесь ненароком, случайно! 😂 Если чо - это шутка! 🤣 С Новым Годом! 👍😁🤪
@maskon78
@maskon78 2 жыл бұрын
Спасибо! С новым годом!
@NRelectronics
@NRelectronics 2 жыл бұрын
Спасибо! С новым годом!
@vichu9268
@vichu9268 5 ай бұрын
please tell me how to use this library in the f4 serries i triedd this code in the f4 series the values were shown in negative how to change this to f4 controller, please tell me the changes
@NRelectronics
@NRelectronics 5 ай бұрын
I don't know.
@karlosss1
@karlosss1 2 жыл бұрын
Интересна длина линии и помехоустойчивость.
@NRelectronics
@NRelectronics 2 жыл бұрын
Правильный вопрос. Если где-нибудь в поезде то плохо получалось, а если стенд закрытый и экранированный сам то отлично.
@karlosss1
@karlosss1 2 жыл бұрын
@@NRelectronics у 1-wire сантиметров 30 если я не ошибаюсь
@NRelectronics
@NRelectronics 2 жыл бұрын
но можно легко и несколько метров...
@ИванСидоров-к9м
@ИванСидоров-к9м 2 жыл бұрын
@@karlosss1 Бухта кабеля ВВГнг в катушке 200 метров. Работает, только несколько условий: резистор подтяжки при 3.3 вольта питания - 1кОм, обязательная проверка при нагреве! - вместо ответа 0xFF вроде делал 0xFE. Ну и CRC обязательно. При защитной проверке (50 циклов чтения в коде при неправильной CRC) ни одного сбоя или неправильного показания.
@NRelectronics
@NRelectronics 2 жыл бұрын
О, круто! Спасибо за столь подробный пример применения!
@antiminddamping2096
@antiminddamping2096 2 жыл бұрын
Спасибо большое Вам за видеоурок! Как всегда - подробно и поэтапно. Кстати, а мне казалось, что библиотека OneWire может работать не только через UART, а вообще с любым цифровым пином? По крайней мере, на МК от AVR (Microchip) так можно делать. Прошу прощение, если глупость сморозил - возможно в предыдущих уроках пропустил этот момент. С Новым годом Вас и с наступающими праздниками!
@NRelectronics
@NRelectronics 2 жыл бұрын
Спасибо большое. Теоритически может работать на любом цифром пине, только обработку соответствующую сделать, код из моего видеоурока не подойдёт. С Новым годом и с наступающим Рождеством!
@exiit2779
@exiit2779 Жыл бұрын
Здравствуйте, у меня вопрос , когда я уже собираюсь сделать Build Project - выскакивает проблема что stm32f1xx_hal.h в OneWire.c «No such file or dir.» Если я меняю на f0xx то красное уходит , появляются ошибки в участках кода , где мы с usart работаем , где функции приема и передачи.Может быть это из-за того что у меня другой контроллер?Не могу разобраться …
@exiit2779
@exiit2779 Жыл бұрын
Я использую для своей работы мк stm32f042f6p6.Заранее прошу прощения если проблема элементарная🙏🏻
@NRelectronics
@NRelectronics Жыл бұрын
Конечно из-за того что другой МК,функции называются по другому,халовские.
@allallall2321
@allallall2321 2 жыл бұрын
Здравствуйте спасибо большое Вам за уроки я начинающий, не посоветуете или не подскажите продавца на али с рабочими отладочными платками STM32F103с8е6 или STM32f103c6t6 буду очень благодарен не охота начинать учится на не рабочем или не рабочем перемаркированым чипе, заранее спасибо)) Те Мк что по ссылочке можно брать для работы и изучение?)))
@NRelectronics
@NRelectronics 2 жыл бұрын
Здравствуйте, пожалуйста) Я бы с радостью поделился ссылочками, но ютуб их удалить без моего разрешения. Напишите пожалуйста мне в контакте или электронный почтовый ящик, эту инфу можно взять с канала из окна - О канале.
@maxtim7063
@maxtim7063 2 жыл бұрын
Здравствуйте. В STM32CubeIDE Version: 1.8.0 У меня пропала пошаговая отладка на СИ. На микро Асемблере осталась. Мне очень не удобно делать отладку. Программы у меня большие 30 и более КБ и куча переферии. Помогите, пожалуйста, мне с настройками пошаговой отладки. Спасибо.
@NRelectronics
@NRelectronics 2 жыл бұрын
С наступающим Новым годом!!!
@stepansml6713
@stepansml6713 Жыл бұрын
А три сотни на каждый уарт можно? Чем это ограничено кроме как циклом опроса и трудностью регистрции датчиков. 130 шт на один улей хочу и штук пять так электрифицировать. Итого 650 датчиков.
@NRelectronics
@NRelectronics Жыл бұрын
Проанализируйте, ваш улей)
@stepansml6713
@stepansml6713 Жыл бұрын
@@NRelectronics так чем ограничено их количество?
@NRelectronics
@NRelectronics Жыл бұрын
Тем, на сколько вы сами сможете, своим алгоритмом их обрабатывать. Вообще такое количество на одну линию сажать крайне не удобно, а как вы их определять/обслуживать будете?
@stepansml6713
@stepansml6713 Жыл бұрын
@@NRelectronics то есть неудобство регистрции это единственное ограничение?
@NRelectronics
@NRelectronics Жыл бұрын
Неудобство их сопровождения, я бы назвал единственным и большим неудобством.
@АндрейМихайлов-о6я3ц
@АндрейМихайлов-о6я3ц 2 жыл бұрын
спасибо за "консоль" :)
@NRelectronics
@NRelectronics 2 жыл бұрын
Ой, а что за "консоль"?)
@АндрейМихайлов-о6я3ц
@АндрейМихайлов-о6я3ц 2 жыл бұрын
@@NRelectronics 19:35. мне не приходила в голову идея выводить вместо скажем UART-а прямо в память в текстовом виде :) забавно и может быть полезно.
@NRelectronics
@NRelectronics 2 жыл бұрын
Сформировать вывод, с учётом предыдущих трёх видео серии видео уже не проблема 😉 а тут ю, как я и говорил в начале видео, если вы внимательно слушали, оригинальное или не типичное применение 😉
@Minas__Morgul
@Minas__Morgul Жыл бұрын
Решил использовать эту либу под F407 стмку (плата есть в наличии) и 1 датчик 18b20. Все поперепробовал, убил вечер, но ни на одном из usart не хочет работать либо "CRC ERROR" либо вообще все по нулям при чтении getRomid. 100% раз все перепроверил, не могу понять где косяк.
@Minas__Morgul
@Minas__Morgul Жыл бұрын
Тьфу блин! Решил проблему. Отключил долбанную оптимизацию в кейл и стало нормально видно в дебагере. Жалко не увидел реализацию измерения отрицательных температур в этой либе
@NRelectronics
@NRelectronics Жыл бұрын
Вот видите, казалось бы. Главное увидели в чем дело ;)
@ArtemKAD1
@ArtemKAD1 2 жыл бұрын
Зря не рассмотрели внутренности библиотеки как в ней используется UART для обработки 1-Wire. В данном случае это критичный для качества реализации приема момент. ЗЫ. И да, ссылку на гитхаб исходной библиотеки все-же стоило разместить...
@NRelectronics
@NRelectronics 2 жыл бұрын
Бегло рассмотрели, думаю это во всё не сложно так как всё на поверхности. Предложенная на гитхабе она заточена под libopencm3 и сразу не стартанет в нашем проекте, у меня уже как раз адаптирована и работает. Ссылка на рабочий проект имеется, чего оттуда не взять?
@ArtemKAD1
@ArtemKAD1 2 жыл бұрын
@@NRelectronics Та не, я, естественно, имел ввиду общее описание как тут UART используют для приема, а не подробности синтаксиса библиотеки libopencm3. Просто многие не понимают чем протокол 1-Wire отличается от LIN и на какие ухищрения приходится идти ради его реализации. Ну или почему его на таймере обработать не сильно сложнее чем на UART-е.
@NRelectronics
@NRelectronics 2 жыл бұрын
Просто тема не LIN и сравнение с OneWire, а применение на юарте. Возможно когда-нибудь и эту тему рассмотрю.
@ArtemKAD1
@ArtemKAD1 2 жыл бұрын
@@NRelectronics Не видел там ссылки, хотя есть фамилия автора по которой можно найти. Я всего лишь о дани уважения автору работой которого бесплатно пользуешься. Выглядит это как-то более цивилизованно.
@NRelectronics
@NRelectronics 2 жыл бұрын
Может мне виднее что выкладывать и почему? Чтобы небыло вопросов почему от автора не работает, а мой код работает.
@sergeyzolin7297
@sergeyzolin7297 2 жыл бұрын
STM32 поддерживает python3 если да будут прикольные уроки.
@NRelectronics
@NRelectronics 2 жыл бұрын
Пока не в планах, но всё может быть... По python есть пара роликов по Raspberry Pi Pico.
@Ololoshize
@Ololoshize 2 жыл бұрын
Урок хороший, вот только при чём тут UART? По названию ролика складывается впечатление, что в нём описывается способ как подключить несколько устройств к одному UART, но на самом деле устройства подключаются по одному OneWire, который вполне себе работает с кучей устройств, так как у устройств разные адреса. А в UART нет понятия адреса.
@NRelectronics
@NRelectronics 2 жыл бұрын
Вот и показано как подключить и работать с несколькими датчиками и их id через интерфейс UART. Всё всему соответствует. Не ну вы открыли Америку что нет адреса, и прошлые три ролика тоже естественно не смотрели. P. S. Складывается впечатление что только знакомитесь с программированием.
@NRelectronics
@NRelectronics 2 жыл бұрын
Вот вы глупости написали в следующем посте ааа... Бред полный, мне видней как называть.... К тому же несколько мк на одном юарте легко уживаются...
@Ololoshize
@Ololoshize 2 жыл бұрын
@@NRelectronics называйте как хотите, ваши же ролики.
@NRelectronics
@NRelectronics 2 жыл бұрын
Вы так и не поняли содержания видеоурока, совершенно. Можно легко работать с кучей устройст ds18b20 через UART, до 75 кажется, об этом и как работает это на нём также не поняли. Если не вникните тогда напишу сюда ещё разик 😂😉
@NRelectronics
@NRelectronics 2 жыл бұрын
Спасибо за разрешение как называть) 👍🙂
@CTO_Mechanik
@CTO_Mechanik 2 жыл бұрын
Хз не собирается ваш проект ошибка , пробовал свой проект создал добавил все как в видео тоже ошибка 🤷‍♂️
@NRelectronics
@NRelectronics 2 жыл бұрын
Напишите мне сообщение на выходных, посмотрим что у вас. У меня в видео, как вы заметили, всё собирается.
@CTO_Mechanik
@CTO_Mechanik 2 жыл бұрын
@@NRelectronics да вижу , но блин вроде все так же , но не собирается , пробовал с разными камнями , и проект с нуля и ваш 🤷‍♂️ поэтому и решил тут написать
@CTO_Mechanik
@CTO_Mechanik 2 жыл бұрын
Завтра скину код ошибки
@NRelectronics
@NRelectronics 2 жыл бұрын
Да, и код и сам проект лучше, чтобы посмотреть внимательней...
@NRelectronics
@NRelectronics 2 жыл бұрын
скиньте в телегу на имя Freeman_Ni
@АлексейМышевский
@АлексейМышевский Жыл бұрын
Уже не работает. Все походу уже по другому. Можна новое видео снимать
@NRelectronics
@NRelectronics Жыл бұрын
Что по другому? У меня работает.
@АлексейМышевский
@АлексейМышевский Жыл бұрын
@@NRelectronics Я скачал с гитхаба єти два файла. Там код уже другой. Нет тех строк что у вас в видео. Ну и я при сборке получаю ошибки, одна из них : ../Core/Src/OneWire.h:16:10: fatal error: libopencm3/stm32/rcc.h: No such file or directory. Попробуй скачай новий вариант с гитхаба.
@NRelectronics
@NRelectronics Жыл бұрын
Я у себя не использую libeopencm3. Используй мой гитхаб или где оно выложено.
@avi-crakhome2524
@avi-crakhome2524 2 жыл бұрын
Большое количество DS18B20 на одной линии могут работать, но смысла при этом ноль. Невозможно физически идентифицировать показания температуры в получившемся списке. Греть каждый датчик отдельно не всегда возможно, особенно если он уже находится в труднодоступном месте. Иного способа просто не существует.
@NRelectronics
@NRelectronics 2 жыл бұрын
Физически как раз они идентифицируются индивидуальным собственным ID, об этом как раз я говорил.
@NRelectronics
@NRelectronics 2 жыл бұрын
А смысл как раз большой, такой же точно как и сажать подобные датчики на линии i2c, CAN... Используя единственный интерфейс.
@avi-crakhome2524
@avi-crakhome2524 2 жыл бұрын
@@NRelectronics Я тоже так думал, но в реальности оборудование будут собирать однобитные механики/электрики, которые воткнут датчик в посадочное место, и подключат к шине согласно схеме. А сверху ещё 100500 болтов гаек и кусков металла. И вот когда придёт время тестового включения - начнётся головная боль. Решения которые работают на лабораторном столе - не всегда применимы в реальном железе. Гирлянда из DS18B20 - это забавный фокус, несовместимый с реальностью.
@NRelectronics
@NRelectronics 2 жыл бұрын
Если подходить с точки зрения рукожопов то лучше вообще ничего не делать и пить пиво перед телеком 😂. Это несколько сложный вариант, но при должной маркировки и планировании всё работает, вешал в термокамере всё работает как часы.
@intelektum
@intelektum 2 жыл бұрын
В чем проблема, определит ИД датчика, присвоить ему номер и по номерам устанавливать датчики в нужное место ?
@jansalk3636
@jansalk3636 2 жыл бұрын
Спасибо за видео, но у меня вылазит ошибка при компиляции. В OneWire.h ругается на структуру в 78 строке ("DEVInfo devInfo") typedef struct { int device; char info[30]; }DEVInfo; DEVInfo devInfo; // 78 строка Ругается так: - "Include/OneWire.h:78: first defined here" Не могу понять, что не так... Я конечно вынес отдельно переменные из структуры в OneWire.c, удалив её int device; char info[30]; Но, просто интересно почему не компилируется? :)
@NRelectronics
@NRelectronics 2 жыл бұрын
Выведено из контекста программы. Явно не правильно сделали по сравнению с моим кодом. Сравните.
@dedushkamitya
@dedushkamitya Жыл бұрын
Попытался завести ds18b20 способом как на видео. При сборке проекта выдает такую ошибку: "c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\bin\ld.exe: ./Core/Src/main.o:C:/Users/Dimo/STM32CubeIDE/workspace_1.11.0/ds18b20_012/Debug/../Core/Inc/OneWire.h:78: multiple definition of `devInfo'; ./Core/Src/OneWire.o:C:/Users/Dimo/STM32CubeIDE/workspace_1.11.0/ds18b20_012/Debug/../Core/Inc/OneWire.h:78: first defined here"
@NRelectronics
@NRelectronics Жыл бұрын
Здравствуйте. devInfo попробуйте в одном убрать, или во втором, чтобы без ошибки собралось. Двойное его определение.
@dedushkamitya
@dedushkamitya Жыл бұрын
@@NRelectronics так оно там в одном месте объявляется. Не понимаю, почему ошибка. Я посмотрел, что оно только для вывода в консоль используется и убрал совсем этот кусок кода, все заработало.
@dedushkamitya
@dedushkamitya Жыл бұрын
@@NRelectronics благодарю за ответ
@NRelectronics
@NRelectronics Жыл бұрын
@@dedushkamitya главное что заработало, я рад. Но я портировал заново этот проект под видео по ссылочке, собрал его, ошибки такой не возникло, х.з. почему...У меня: STM32CubeIDE Version: 1.12.1 Build: 16088_20230420_1057 (UTC)
@NRelectronics
@NRelectronics Жыл бұрын
@@dedushkamitya всегда пожалуйста! задавайте что нужно узнать или поправить...
When Cucumbers Meet PVC Pipe The Results Are Wild! 🤭
00:44
Crafty Buddy
Рет қаралды 39 МЛН
Каха и лужа  #непосредственнокаха
00:15
Визитка программиста
19:40
Александр Красников
Рет қаралды 159 М.
Цифровой термометр DS18B20  и  arduino
10:17
Ардуино для начинающих
Рет қаралды 6 М.