Аналоговые входы АЦП, шкалирование и линеаризация аналоговых сигналов 0-10В, 4-20мА
ฝัง
- เผยแพร่เมื่อ 19 มิ.ย. 2024
- Продолжение тематики АЦП - в этом видео постараюсь объяснить методику шкалирования и линеаризации аналоговых сигналов в цифровой вычислительной технике на примерах под ПЛК и микроконтроллеры.
В качестве примеров - обработка сигнала с термодатчика, выдающего стандартный сигнал 0-10В / 4-20мА.
Программа под МК, схема и прочие материалы:
files.inbox.lv/shared/file/08...
Эпизоды:
00:00 - Вступление
00:56 - С чего начинается измерение
06:09 - Как подключить датчик
10:56 - Формула, на которой держится весь мир
14:08 - Примеры программ шкалирования
20:20 - Линеаризация
22:38 - Пример шкалирования под микроконтроллер - วิทยาศาสตร์และเทคโนโลยี
Да! Может плохо искал, но только здесь увидел универсальную формулу. Действительно рабочая. Проверял на контроллерах Siemens.
класс , чувак ты большой молодец, смотрю все твои видосы🤟
Вы - очень харизматичный ) Знаете, будучи студентом не понимал ТОЭ. я бы что предложил... рассказать основы основ про узлы, базовые методы и прочее. В помощь студенту. А почему здесь ? а у Вас хорошо получается )
Этакий современный халявный ликбез ? Ну, голубчик, Вы даёте🙂...такая гамма удовольствий дорогого стоит.
Дело даже не в стоимости, а в экранном времени =) Я не знаю с какой стороны подступиться, чтобы это увлекательно рассказать =)))) Но, может когда-нибудь и придумаю =)))
А студентам не слишком захорошеет ?
Все что касается ТОЭ, Ютюб полон информации, могу выделить один канал, которого для любознательных хватит за глаза. youtube.com/@ToeRavilov
Лично мне очень помог в освоении предмета: электротехника, в частности, комплексные числа зашли на ура.
спасибо за видео, буду пересматривать ещё не раз
Блин, только с работы домой собрался, и на тебе - ролик...
СПАСИБО =)))
Остался на подработку???
@@user-rp4fu1nr7z Объявил всем, что меня нет и заварил чайку =) Ролик и правда отличный. Впрочем, не сомневался. И тема для меня актуальная актуальная оказалась, только мне на производстве нужно замерять 150-250 градусов, так что второй день читаю про термопары и отзывы на датчики. У старого агрегата не работает терморегулирование, и если вовремя не выключить нагрев, он может продолжаться до красного железа, а мне надо максимум 220-230, и потом вырубать, а при понижении за 200 включать нагрев. Вроде на вид просто. В задаче есть легкое место - погрешность в границах 5 градусов погоды не делает. Но есть трудное, пока не решил, как победить. Суть такова - агрегат греет плиту, а она массивная и в плане температуры инертная. То есть чтобы удерживать в рабочем диапазоне плиту, нужно «предвосхищать» перегрев и переостывание. И вроде бы тоже не трудно, надо диапазоны срабатывания сдвинуть. Но тут возникает еще условие - агрегат работает с разным материалом, и под каждый нужна своя температура, которую хорошо бы соблюдать. То есть вот есть пленка с рабочей температурой 220. 210 ей уже мало, а 230 много, и вот надо, чтобы плита с ее инертностью и болталась 220 +/-5 градусов, а следующим материал будет на 200 и то же самое с диапазоном. Кажется, что не сложно, в плане кода пока какая-то каша. Хочется, конечно, схалтурить, и просто приколотить гвоздями несколько готовых предустановленных программ и оставить выбор только между ними, но вроде бы и не серьезно. потому что материал от разных производителей, и где-то надо прям на ходу подбавить газку, где-то остудить...
Извините, что все это вывалил. Мысли вслух =) Спасибо вам за канал и ролики, которые регулярно наталкивают на какие-то мысли. То на что-то с другой стороны посмотришь, то пробел какой вскроется и надо пойти почитать, то вообще не думал, а тут - бац - а у вас разжевано =)
@@iMOOMMOOM В таких случаях решение известно - PID регулирование. Чувствуется что вы сейчас вряд-ли сможете его реализовать самостоятельно, но Вам и не нужно. Всё придумано до нас. Практически любой контроллер температуры с функцией автонастройки PID решит вашу проблему в корне и с большим запасом по точности. И цена вопроса смешная, буквально несколько тр за контроллер и термопару. Ну может около 5 тр. При этом вы один раз даёте контроллеру настроить коэффициенты и дальше радуетесь жизни - в работе просто устанавливаете на табло нужную температуру и идете спать. Выбор контроллера правда зависит ещё и от типа нагревателя. Если электрический то всё просто, но можно порешать и с форсункой и с чем угодно. Только тогда вам потребуется помощь специалиста и в 5 тр уже не уложиться. Вот щас Гневисть проснется и разъяснит вам по полочкам )))
@Роман Вестра , вам действительно нужен терморегулятор с ПИД-ом, как и сказал @SaihoS1 , "релейной" логикой вашу задачу качественно не решишь. Проще всего взять готовое решение от любого крупного производителя - Шнайдер, Сименс, Омрон - у них у всех есть в каталогах подходящие вам продукты =)
@@iMOOMMOOM Добавил бы не столь именитых и соответственно не столь дорогих корейский Autonics и наш ОВЕН. У обоих есть модели на все случаи жизни и по надёжности хорошо себя зарекомендовали. Осталось только определиться с нагревателем. Если электрический, то управлять лучше через твердотелки. Они практически вечные и коммутировать могут до ста раз в секунду.
Уже не знаю что и сказать вроде уже всё сказал и не раз. Ну как всегда: подача, манера, музыка, последовательность, интонация, всё на высшем уровне.
Здравствуйте кстати 😂.
Даже до такого валенка как я с такой подачей стало доходить хоть кое что. Боюсь перехвалить.
Олег но просто бомба. Некоторые блогеры долго к такому идут а у вас прям с первого видео всё получилось. Я кстати после первого просмотренного видео подписался. Готов на часовые и даже двучасовые видео. Нет не видео... Уроки.
Как всегда отлично.👍
Спасибо, буду продолжать радовать новыми видео! =)))
Спасибо. Дай бог тебе счастья и здоровья. Очень понятно и просто рассказал то, что казалось сложным.)))
Шикарный видос от уже любимого автора). Как обычно харизматично, популярно, шикарно)
Класс! Спасибо очень поучительно! Ждем новых уроков!
Не слова, а золото! 🎉
Очень полезно! Спасибо! За Ваш труд.
Подписан, посмотрел с удовольствием, поставил лайк! :-)
У тебя талант рассказчика. Приятно с пивком в пятницу посидеть под такой интересный разговор.
Наоборот с утра смотрю, когда выспался, отдохнул от рабочей недели
М...да..аааа. Показал мастер класс. Супер.
Спасибо Вам за такое полезное видео, очень информативно и интересно 😊
Замечательная подача. Если можно, запилите ролик про аналоговые выходы. И в частноти, как получить 0 - 10 v из Ардуины.
вот оно как делается! спасибо! теперь буду знать как пилить штуку на ардуино для измерения чегото
Когда в глаза не смотришь не так страшно, слушать приятно, полезно. Спппаассиибо :)
Привет. Отличный пример документации на датчик!😂
сразу лайк, потом просмотр)
ооо опять чёто умное))) спасибо за кинофильм
Хочется научиться программировать . Ваша инфо очень полезная, спасибо за потраченное время .
Круть
Спасибо! Это лучшая подача материала!
Ваши видео просто ОФИГИТЕЛЬНЫЕ!
Спасибо, так держать. Даёшь годный материал!
Едрииить, Песняры подъехали, сольный концерт! :)
Класс! Отличная подача материала. Талант не пропьёшь!👍🏻🤝🏻
Начинаю качать видео с канала для будущих поколений 🙂
Спасибо за труды. Может когда нибудь пригодится.
Ура! Есть ролик!!! Лайк в копилку. Всегда жду с нетерпением!!! 👍🤝
Супер. Я измеритель уровня воды на герконах и резисторах собрал написал длинющий код который сопротивление в уровень воды переводит, а тут все проще с формулой (вот чем отличаются самоучки как я от профи) мы пишем "быдлокод"до которого дошли путем проб и ошибок 😉
Побольше таких видео и если можно то также на пальцах объяснить про I2C
Любой профи когда-то был самоучкой, и уж поверьте, все мы учимся на своих ошибках, и своем же "быдлокоде" =))))
И про I2C, и про SPI готовится материал =))
Все клёво. Материал интересный. Подача его замечательная. Респект и уважуха. Но...
Ни как не могу оторваться от глаз автора. 😄
Друже ты реально крут! такие сложные вещи (если самостоятельно изучать по литературе) так просто подаешь, что дебилу будет понятно)
Спасибо за видео! Ты супер крутой чувак!
Вот знаю, что инфа нифига не пригодится, но всё равно интересно. Заодно вспомнить восьмибитные времена, когда надо было впихнуть весь функционал (весьма богатый, уровня АОН-а) в 8К ПЗУ и 2К ОЗУ. Да, там была и куча аналоговых входов...
Поверьте, и сейчас порой приходится - притащит клиент какой-нить корейский ПЛК со своим не менее корейским пароходиком, и пищит - "любые деньги, только сделайте чтобы вот тут чтобы было вот так!" =))))) Ну раз "любые деньги" - то можно и заморочиться =)))))
Спасибо!
Супер, спасибо! Жду выпуск по ООП!
Ура! Новый выпуск!
Здравствуйте, на повестке дня значит Аналоговые входы АЦП, буду делать изучать. Моё пожелание это что бы вы не бросили это дело, из всех источников которые я нашёл ваш самый понятный. По возможности нужно сделать возможность закидывать монету в ваш сундучок за хороший контент. Я уже сам написал несколько своих программ ,всё работает,🙂 доволен как слон! Простые, но как говорил китайский мудрец самый долгий путь начинается с первого шага. С уважением!
нравятся мне твои ролики)))
Так интересно ,что не заметил как полчаса прошло.
Спасибо.
Автор, спасибо за видео! Уж сколько было в моей жизни сожраных мышами кабелей, "потерянных" датчиков и прочего, не счесть. Но смотреть интересно, ибо талант есть у тебя!
Кстати, есть ещё экзотические выходные сигналы 0.8...3.2 В. И это всё на линии, длинной несколько сотен метров, в условиях жутких индустриальных помех. Вот где жесть.
Лайк
Очень хорошо! И немного гневисти совсем не мешает.
Спасибо!👍
Хетфилд еще и поёт как боженька😊
А ещё надо иметь представление о работе многих устройств и происходящих при этом процессов
Я НСЦТАИ, 20 лет в бизнесе. Значит так электронщики, видят наше оборудование:) Зашел посмотреть на реализацию автоматики уровня в баке и завис на следующее видео. Сигнализаторы предельных сопротивлений наше все
Отличное объяснение реально отделил мух от котлет))))
Ща будет разнос мозга)))
Замотай голову бинтом, чтобы мозг по стенам не раскидало.
Крутяк. Универсальные аналоговые сигналы рассмотрели. Предлагаю теперь рассмотреть сигналы термосопротивления и термопар. Там тоже можно весьма много накопать (характеристики, компенсации холодного спая, схемы подключения и т.д.) Целый мир.
Да, и весьма интересный мир. Может как-нибудь сниму видео и о термопарах =)))
ООП... так так так, с этого места поподробнее. Я серьезно, я веб-разработчик. Но всегда любил паять (и до программирования работал в сервисе) и плавно добрался до изучения МК. Сразу взял stm32... и взгянув на Си c CMSIS (да и HAL не слаще), пыл мой поубавился. Есть пара библиотек на C++ (его я кстати не знаю) типа mbed, но что-то сложнее hello_world сварганить не удалось (ардуино не в счет). Попадался даже прикольный доклад, где организация применяя ООП, на С++, экономит на разработке, благодаря единой кодовой базе. Вот только открытых проектов, да и даже простых статей днем с огнем не сыщешь.
21:27 описание 👍
R-C фильтр для лохов ))) улыбнуло. Спасибо за видео, супер!!!
Описание к датчику огонь! :)) опять не могу прожать несколько лайков, а жаль..
Только дочитав до повреждения пространственно-временного континиума понял что что-то не так)))
Спасибо, рад что понравилось =)))))
Хорошие у вас уроки. Единственное по теме с датчиком. Везде со всех утюгов трезвонят избегайте операцию деления, типа мк выполняет ее медленно тормозит.
Я пытался сделать манометр до 600 бар, в руки попал датчик давления с харвестера, у него диапозон выхода от 1-5в, или от4-20ма и он линейный. Я его прикрутил к мк, но при проверке на гидростанции он показывал то 160 то 190бар, и ноля стабильного не было. Это при питании от аккумулятора. Скорее всего датчик б.у и уже был не исправен. Было бы интересно узнать, как разводить платы и о апаратных фильтрах от помех что бы показания таких датчиков были точнее.
После операции пришивания пальцев... Доктор а я смогу теперь на скрипке играть? О да конечно... Здорово, раньше я не умел. .. так и мне, ещё долго мозг перепрограммировать, писать ему свой интерпретатор для этих вещей 😂
Добрый день! Есть необычная задача, которую необходимо выполнить на МК. Считывается значение АЦП 10 бит и шкалируется по шкале 0-7 с точностью 0.1. Задача: увеличивать значение счетчика на 1 при уменьшении значения переменной и переходе через целое значение шкалы, т.е. 5.2->5.1->5.0 увеличивается счетчик на 1, а если 4.8->4.9->5.0, то счетчик не изменяется. Своего рода обратный счетчик. Направьте, пожалуйста, на правильную дорожку =)
ооп 🥲
А можете ещё рассказать о методе Симпсона (парабола) в АЦП , спасибо за ваши уроки 👍
Вы имеете в виду измерение действующего значения сигнала, того же RMS? Окей, как-нибудь запилю видео, довольно интересная тема кстати =)))
Значит в Ардуино,преобразование в заданный диапазон функцией map,происходит по этой формуле линейной интерполяции. Большое спасибо за разъяснения.
Да, эта формула используется везде, где нужно преобразовать сигнал в иной диапазон, те же LIN_TRAFO, SCALE, UNSCALE в "больших" ПЛК также основаны на этой формуле =)
Ееееее. 🎉
4мА есть величина в первую очередь для питания прибора для подключения по двупроводной схеме.
Трудно сказать как сложилось исторически; учитывая что первые датчики имели четырех- и трехпроводные схемы подключения, то вероятнее всего делали это именно для обнаружения обрыва, а уж потом поняли что можно и питать через это =)
Точно так же как со шкалой 2 - 10В, где два вольта и есть ноль шкалы, а все что ниже - неисправность =)
Расскажите пожалуйста о ds18b20 очень труден для понимания для меня оказался.
В ардуине команда "maps" )
А будет ли продолжение темы 'мифы альтернативной энергетики '?
Будет! Даже немножко материала поднакопил =))) Не могу сказать как скоро эти выпуски увидят свет, ввиду происходящего киш-миша в работе, но планы имеются =))))
это получается, что чем уже измеряемый диапазон (температуры, например) - тем точнее будет измерение, и упрётся всё, по-итогу, в точность измерителя? И, по-идее, можно еще точнее "линеаризовать датчик", если есть более точный измеритель - построить свой график под конкретный датчик. И, по-идее, имея более точный измеритель - можно сделать калибровочную программку, типа гонять интервал и циферки вбивать и оно само все посчитает. Я, конечно, нифига во всём этом не разбираюсь - но очень интересно (и плюс минус понятно).
Да, вы правильно все поняли - если количество делений на шкале не меняется (как в случае с АЦП МК - всегда 1024 единицы-деления), то чем более узкий диапазон реальных единиц вы хотите измерить, тем точнее получится =) И действительно так - основное это датчик - никакой АЦП хоть со 128 битами не улучшит сигнал, если датчик изначально имеет низкую разрешающую способность.
Вспомните дешевые цифровые медицинские термометры из аптек - диапазон небольшой, но ошибаются чуть ли не в половину диапазона порой =))))) Именно по причине качества датчика, ИМХО =)))
Всё понятно, а как линеаризовать экспоненциальный поборолически и др датчики, где характеристика похожа на синус?
Самый простой и часто применяемый метод - именно кусочная интерполяция, как я рассказывал; то есть расписываете по маленьким кусочкам таблицу входного сигнала, и вводите нужное количество блоков сравнения с уставками для формулы.
Или же, если полностью известна характеристика входного сигнала с ее коэффициентами - применяете обратную функцию - для синуса - арксинус, для экспоненты - логарифм, и т.д. =))
@@Gnevistj спасибо!
При рассказе про миллиамперы у меня флешбеки - Ебаная пожарка, как она вынесла мозг на работе, с такими токами эти особенные люди линию на скрутках собирают)
А функция map это и есть интерполяция?
Я, как человек, далекий от пром. автоматики, хотел спросить в порядке любопытства:
В коде (25:50) переменная Xx имеет тип Long, но при этом на этапе считывания Xx=READ10(AN0) ей присваивается дробное значение, которое затем преобразуется. Как это работает? :-)
Результатом работы функции ReadAD10 является WORD в диапазоне от 0 до 1023, и 16 его значащих бит загружаются в младшее слово переменной Xx, старшее слово не изменяется =)))
@@Gnevistj Эх, Семен Семеныч!.. Теперь ясно, что умножением просто "перекидываем" в старшие разряды? Правильно понял?
Именно! Чтобы оставить место для " х десятых после запятой" который возникнет в результате вычислений. Десятичное значение окажется в "целых" разрядах, с которыми умеет работать машина =)) А мы потом его оттуда выковыряем =)))))
Если бы мы хотели показать точность до сотых (два знака после запятой) - умножали бы на сотню =)))
@@Gnevistj Спасибо за объяснение! :-) Возьму это на вооружение.
Как поставить второй лайк за описание к экранному датчику?))
Спасибо, приму виртуальный второй лайк =))))))
13:49 Нуууу... не совсем.. Только в том случае, если величина будет меняться линейно. (а если по сложной кривой, парабола, гипербола и т.п.)
Поправьте, если в чем-то не прав.
SPS УВАЖУХА
Уж если кто спасет мир от необдуманного использования датчика, то только Чак Норрис. 🤣
"умная коробочка" выдаёт только ac или может и dc ,какая частота выхода , или это мини генератор сигналов 😁👍👍
Умная коробочка выдает то, что установлено на ее дисплее при помощи крутилки =)))) Т.е. любое значение сигнала в диапазоне от 0 до 10В, или 0 до 20мА, причем с точностью до третьего знака после запятой. Умеет также выдавать треугольный сигнал - с настраиваемыми значениями нуля и максимума (в тех же диапазонах), и периодом изменения в секундах и долях секунд. Как-нибудь сделаю обзорчик =)
+
Отлично! Спасибо! Но до оргазма малёха не хватает (((
Не ну правда, если уж играть с фиксированной точкой и врукопашную использовать дополнительный код, но при этом не провести элементарной оптимизации вычислений это как-то странновато. Если б я вот так вот влоб сделал четыре сложения, два умножения и, ёрш его налево, деление вместо одного сложения и одного умножения... да меня б выгнали без выходного пособия ))) Гневисть, не гневитесь пожалуйста. Просто до последнего момента ждал когда вы скажете "Ну мы то знаем как раскрывать скобки и заменять деление умножением! Смотри народ как одной только ловкостью рук мы превращаем жуткую формулу в пару операций!" И ощущение теперь как будто облом испытал ))) Конечно это учебный материал и тема другая и всё охватить невозможно... Всё так конечно. Но всё же очень жаль. Такая была возможность красиво закончить!
Спасибо за столь развернутый комментарий, очень рад что вам понравилось =))
В свою защиту скажу - что моя цель в этом видео была показать работу формулы линейной интерполяции, и именно поэтому я ее вводил без всяческих преобразований - для наглядности =)))
И уж в своих дорогих зрителях я уверен, что раскрыть скобки и выполнить часть действий вручную, перед записью их в программу, они сумеют и без моей помощи =))))
З.Ы. как хорошо, что вы не видели программы от моих французских коллег, там даже я за валидол хватаюсь, хотя сам тот еще лентяй по части математики =))))))))) И ничего, все работает, все довольны, и никого не выгоняют =)))))))
@@Gnevistj Ну понятно, понятно ))) Я на самом деле прекрасно понимаю что без сучка и задоринки с первого раза не сделать такой материал. Всегда есть что улучшить. Пусть моим конструктивным вкладом будет эта формула (с учётом замены 1024 на 1023): 0,244379277*X-100
Только не пугайтесь что коэффициент при X имеет много знаков после запятой. Это он так несуразно выглядит без округления в десятичной системе, а в двоичной сущие пустяки: 0,001111101 Всего-то 9 двоичных разрядов после запятой. Так что представления LONG хватает с запасом для вашей задачи. А ещё дорогое умножение на этот коэффициент следует заменить на несколько дешёвых действия (2 сложения, 2 сдвига, инверсию и инкремент). Ну и конечно в двоичной системе работать приятнее ибо деление на степени двойки это сдвиг - работа с фиксированной точкой просто песня. Получается что в основных вычислениях нам даже аппаратное умножение не нужно! Этим приемам и впрямь можно отдельный выпуск посвятить. Всё просто, но не очевидно, как все любят )))
Вот кстати хорошая идея! Подумаю, и сделаю выпуск по части оптимизации математики.
Но, сразу - из опыта скажу - если программа пишется на один раз, или исходники остаются только "у себя", то конечно можно поковыряться и как следует оптимизировать ее; но если исходные коды отдаются клиенту, который имеет свою собственную службу АСУ - то мое глубокое ИМХО, что лучше формулы вводить "как есть", пускай машина сама все скобки раскрывает - люди потом спасибо скажут, и не раз, ибо им и так в чужом коде разобраться не всегда легко, а тут еще киш-миш с авторской методикой умножения =))))))
почему защитник виндовс ругается на предложений вами basic?
Вопрос этот скорее к разработчикам, я лишь пользователь этой среды. Кстати, у меня не ругался, вы точно с sourceforge качали?🙃
@@Gnevistj да, по вашей ссылке, а какой Виндоус вы пользуетесь и какая разрядность?
@@mj-maks , на данный момент 10ка 64 бита, но без единого обновления.
По опыту, если антивирус ругается на любой компилятор - это норма, потому как компилятор обладает основным признаком вируса - создает исполняемый код =)))
Не знаю насколько мой опыт будет полезен - с sourceforge я все ставил без доп проверок, ибо у них довольно жесткие проверки на самом сервере. Но, осторожность никогда не бывает излишней, я возможно несколько легкомысленно подхожу к этому вопросу =)
@Gnevistj спасибо, а ардуино также на бейсике? сильно отличается?
@@mj-maks , у ардуино свой язык; но учитывая что они все (если память мне не изменяет) построены на контроллерах авр, то не вижу проблем писать и под них на гцбейсике. Я готовлю выпуск и об этом =)
В каких участках их ДНК находится ошибка!))))
Ору просто, красавчик! (Я не про внешность если что)
Странно что все комментарии положительные, видео трут, видимо и этот сотрут.
В плане ПЛК возможно такие подходы и норм, но микроконтроллеры уже так как лет 20 не программируют. Любой контроллер поддерживает знаковые числа, вы никогда не задумывались почему перевод из знаковых в беззнаковые делается так, а не скажем добавление единицы слева? А это для того чтобы знаковые и беззнаковые числа считались на одном алу. Так что это только лень разработчиков языка, на си все ВСЕГДА поддерживается. Также уже тонна контроллеров аппаратно считает float и даже double, например stm32H7. И опять же в С/С++ это прекрасно поддерживается потому что это базовые фичи компилятора.
Вообщем соболезную не окрепшим умам которые решат изучать программирование микроконтроллеров использую данные подходы и данные методы.
4-20мА тоже мериется через делитель.
"Здравствуйте, кстати" более уместно звучало бы где-нибудь на 5-той минуте )
Есть два вопроса.
- Почему используется 1024, а не 1023?
- Не совсем ясно как происходит математика с отрицательным числом. Т. е. как получить отрицательное число это понятно. Но ведь МК все равно "не знает", что это число отрицательное, он же "думает", что там записано 4 294 966 796, а не -500.
1024 это косяк, а что МК думает про содержимое переменной это не важно. Главное мы знаем как он обрабатывает переполнение при сложении и пользуемся этим. Дополнительный код для того и придуман чтобы пользуясь переполнением реализовать вычитание с помощью сложения.
@Артем Полянчук , да, 1024 - это мой косяк, зарапортовался вначале, так и пошло-поехало сквозь все видео - до самого момента загрузки видео на ютуб не сообразил. Такие ошибки свойственны не только новичкам, но и старичкам, как видите =)))) Естественно, везде нужно читать 0-1023.
По поводу отрицательных чисел - все правильно сказал @SaihoS1 , рекомендую пересмотреть мой выпуск про память ЭВМ, в нем довольно подробно рассмотрен механизм работы с отрицательными числами =)
@@Gnevistj Благодарю ;)
@@Gnevistj Да, пересмотрел и вспомнил. Действительно все очень просто))
Я блин часа два понимал , а все дело в 4( условный ноль ) , и шкалировонии
Xmax (да и вообще максимальное значение по АЦП), в данном случае, должно быть 1023. Да, у вас 1024 значения (состояния), но максимальное числовое - 1023. Вы никогда не получите на входе 1024 (ну или 256 для 8 бит). Так вы теряете в точности. Такая ошибка есть в 99.9% случаев работы с АЦП.
Коты не грызут кАбели??? Ещё как грызут!!! Особо, когда у них зубы меняются. Мой- все шнуры от зарядок погрыз! Теперь все шнурки в разноцветных термоусадках. Чиненые - паянные😅
В прокатном цеху моего родного завода было довольно много котов - их все подкармливали, и суровые ребята с линии, и веселые девчонки из ОТК. В один прекрасный день, начальник цеха (видимо встав не с той ноги), потребовал безобразиЁ прекратить, котов с территории выдворить. Узнав об этом приказе электрослужба цеха напряглась. Коты же удалились, так как их перестали кормить, и начали гонять; но самый шухер, ожидаемо, начался пару-тройку недель спустя - длительные простои то на одном, то на другом прокатном стане - обнаглевшие крысы повадились грызть кабеля в неслыханных масштабах - и компьютерные сети АСУ, и прочие контрольники, избегая неведомым образом силовые кабели.
После недельного шухера негласным приказом коты были возвращены на территорию цеха, прикормлены, и погрызание кабелей резко прекратилось =))))
@@Gnevistj Из двух зол выбрали меньшее 😄👍
Мой британец несколько раз перегрызал кабель от любимой клавиатуры. А всё потому, что когда он был мелким, часто с ним играл "хвостом" от компьютерной мышки или кабелем для наушников.
Каждый раз из-за этого у меня стопорилась работа. Представьте себе: вам - менеджеру проектов из мск - в обед звонит _погроммист_ и сообщает, что сегодня ещё даже не принимался за работу, т.к. "кот прогрыз кабель от клавиатуры" 😆
Нууукааанешна! Не грызут коты кабели, ага...
Коты грызут кабели на производстве только в индивидуальном порядке, и строго согласно наряду-допуску! =))))
А вот крысы - грызут в промышленных масштабах, без смс и регистрации =))))))))
@@Gnevistj я так полагаю, что наряд-допуск для кота - это пределы терпения его хозяев? )))
В институте бы также объясняли!!! А то на лекции быстрее в сон загонит, чем чему то научишься)))
На лекциях главное - не храпеть =)))))))
Все зависит от преподавателя. Видел и таких, кто настолько увлекательно рассказывает с примерами из жизни, что даже придя к нему на лекцию после ночной смены слушаешь затаив дыхание, и сна как не бывало; а бывают что монотонно прочел конспект сонной аудитории, и усе =))))
🙂👍🇺🇦
Это в каком МК АЦП дает 0-1024? 11 битное ацп? ай-яй-яй!
Где-то здесь же в комментариях я уже извинялся за эту неточность =)) Так бывает, когда снимаешь и монтируешь видео по ночам =))))))
Стабилитрон это уже саботаж. При делителе 10к удачи вам с компенсацией тока утечки в стабилитроне. Нарисовали бы bat54s (утечка при 5в 100 нА) сбросив излишки на шины питая как собственно и положено. "Никакой погрешности не внесут" ))))))))))). типовой стабилитрон на 5,1в 10мка при 1в обратный ток. при 2,5 уже 100мка. подумаешь +1в на 1/2 FSR. (испытанно на своей шкуре после вот таких "решений" по защите аналоговых входов). Не надо так.
Формула для маленьких детей увлёкшимся ардуинкой..
Но если уже говорите о промышленных датчиках, то практически никто в здравом уме, линейной интерполяцией пользоваться не будет.
Большие дяди юзают експоненту, так как прямые линии еллектронные компоненты рисуют лишь в мурзилке.
Нда, я удивлен. Вроде взрослый уже дядя, а экспоненту применял всего несколько раз в жизни =))) На прошлой неделе подключал весовой преобразователь к ПЛК по аналогу 0-10В, и о чудо - сошкалировав его в двух точках он оказался абсолютно линейным (ради интереса шкалировал при 20% и 70% от полного веса); так и ниже рекомых 20%, и выше 70% - чистая линия. И да, именно по этой формуле работает линеаризация в моей программе, т.к. штатный LIN_TRAFO ругается, когда выходишь за нижнюю/верхнюю точку диапазона.
Суть в чем - если производитель преобразователя/датчика сказал что он линеен - значит он линеен, мерь хоть вдоль, хоть поперек. Пользуйте качественные датчики! =))))
Или вы о схемотехническом косяке Сименса в его аналоговых модулях 6ES7-331-..., когда "зарезали" часть диапазона, и вместо шкалы от минус 32767 до плюс 32767, имеют шкалу -27649 до 27649? А, это дааа, маркетинг гениальный без сомнения - тщательно задокументировать свой косяк, и выдавать за преимущество - мол вот, у всех "загибается по экспоненте, а у нас есть специальное срэдство!" =)))) Но главный прикол в том, что у всех ничего не загибается, и для проверки сего чуда хватит обычного поцика, тестера, и небольшой программки, с той самой формулой линейной интерполяции =)))))
@@Gnevistj Пользуемся более чем "нормальными" датчиками, но все которые мне попадались - от датчиков глубокого вакуума, расхода газа и тд, до показаний выходной мощности различных ВЧ генераторов - все имеют экспоненту.
На самых крутых, даже есть "линеаризаторы" - подстройка офсета нуля, коэффициент(крутизна) и та самая экспонента. Последняя типа настроенна с завода и с пломбой, пломбу срываешь - гарантия слетает.
А иной раз, сам датчик может выдавать высокую точность, но производитель в паспорте её специально занижает - на случай если криворукий настраивал.
Крутить нельзя - гарантия снимется, по гарантии менять тоже, потому что для производителя всё в допуске.
@@Gnevistj Да что далеко ходить, элементарно смотрим на таблицу ходовых хромель-алюмель тип К термопар: температура 0 по Цельсию - 0в, температура 100 4.096в.
Используем линейную интерполяцию и считаем 50 градусов: получаем 2.048в. А потом идём и сверяем с таблицей, а там херак 2.023 вольт.
@@alexorlovecky6662 , вы не совсем внимательно просмотрели выпуск - термином "датчик" я назвал законченное устройство со стандартным сигналом на выходе; если говорить о термопарах, и о любви людей сэкономить на "спичках", то да, приводим на входной блок ПЛК сигнал напрямую с термопары, а дальше мучимся и пишем все ручками, в т.ч. компенсацию холодного спая с термостатированием блока ПЛК =)))
Кстати, в линеаризации нелинейных датчиков (сорри за микротавтологию =))) прекрасно работает эта же формула - пример показан в этом же видео =)
местами истеричные эмоции, пугает.
Не пугайтесь! =))))
К чёрту условности!!! К чёрту схемы, формулы и красные стрелочки!!!
Объясняй в Алкашах и бутылках Водки на квадратный дюйм!!!! Так гораздо доходчивей )))))))))))))))
уколотый молодец.😊
Как автор создаёт такую уютную атмосферу? Харизма + немного магии?
Только тссс! Никому! Ведь магия вне Хогвартса запрещена =))))))
Подскажи пожалуйста. Не могу допереть, как сделать следующее. На порту во время разговора меняется состояние, 1 разговора нет, 0 разговор есть и нужно если в течение скажем 15 сек разговора нет, т.е. на порту лог.1, завершить работу программы. Контроль переключения порта в бесконечном цикле это понятно. Но не могу понять как написать, чтобы не хватала у меня первое состояние лог. 1, т.е. короткой паузы при разговоре и контролировало наличие этой единицы 15 сек, а если лог.1 был меньше этого времени, то сбрасывало время и программа продолжала работать, покуда лог. 1 именно будет на порту присутствовать 15 сек, а не цеплялась за первую же паузу.