Аналоговые входы АЦП, шкалирование и линеаризация аналоговых сигналов 0-10В, 4-20мА

Ғылым және технология

Продолжение тематики АЦП - в этом видео постараюсь объяснить методику шкалирования и линеаризации аналоговых сигналов в цифровой вычислительной технике на примерах под ПЛК и микроконтроллеры.
В качестве примеров - обработка сигнала с термодатчика, выдающего стандартный сигнал 0-10В / 4-20мА.
Программа под МК, схема и прочие материалы:
files.inbox.lv/shared/file/08...
Эпизоды:
00:00 - Вступление
00:56 - С чего начинается измерение
06:09 - Как подключить датчик
10:56 - Формула, на которой держится весь мир
14:08 - Примеры программ шкалирования
20:20 - Линеаризация
22:38 - Пример шкалирования под микроконтроллер

Пікірлер: 161

  • @VladimirPolishchuk-jc8sh
    @VladimirPolishchuk-jc8sh2 ай бұрын

    Да! Может плохо искал, но только здесь увидел универсальную формулу. Действительно рабочая. Проверял на контроллерах Siemens.

  • @faresservice
    @faresservice6 ай бұрын

    класс , чувак ты большой молодец, смотрю все твои видосы🤟

  • @user-xr5rh8ig9s
    @user-xr5rh8ig9s Жыл бұрын

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

  • @user-ul6iu3nu7i

    @user-ul6iu3nu7i

    Жыл бұрын

    Наоборот с утра смотрю, когда выспался, отдохнул от рабочей недели

  • @user-gz4vf4pu4t
    @user-gz4vf4pu4t Жыл бұрын

    Спасибо. Дай бог тебе счастья и здоровья. Очень понятно и просто рассказал то, что казалось сложным.)))

  • @belov9903
    @belov9903 Жыл бұрын

    Шикарный видос от уже любимого автора). Как обычно харизматично, популярно, шикарно)

  • @iMOOMMOOM
    @iMOOMMOOM Жыл бұрын

    Блин, только с работы домой собрался, и на тебе - ролик... СПАСИБО =)))

  • @user-rp4fu1nr7z

    @user-rp4fu1nr7z

    Жыл бұрын

    Остался на подработку???

  • @iMOOMMOOM

    @iMOOMMOOM

    Жыл бұрын

    @@user-rp4fu1nr7z Объявил всем, что меня нет и заварил чайку =) Ролик и правда отличный. Впрочем, не сомневался. И тема для меня актуальная актуальная оказалась, только мне на производстве нужно замерять 150-250 градусов, так что второй день читаю про термопары и отзывы на датчики. У старого агрегата не работает терморегулирование, и если вовремя не выключить нагрев, он может продолжаться до красного железа, а мне надо максимум 220-230, и потом вырубать, а при понижении за 200 включать нагрев. Вроде на вид просто. В задаче есть легкое место - погрешность в границах 5 градусов погоды не делает. Но есть трудное, пока не решил, как победить. Суть такова - агрегат греет плиту, а она массивная и в плане температуры инертная. То есть чтобы удерживать в рабочем диапазоне плиту, нужно «предвосхищать» перегрев и переостывание. И вроде бы тоже не трудно, надо диапазоны срабатывания сдвинуть. Но тут возникает еще условие - агрегат работает с разным материалом, и под каждый нужна своя температура, которую хорошо бы соблюдать. То есть вот есть пленка с рабочей температурой 220. 210 ей уже мало, а 230 много, и вот надо, чтобы плита с ее инертностью и болталась 220 +/-5 градусов, а следующим материал будет на 200 и то же самое с диапазоном. Кажется, что не сложно, в плане кода пока какая-то каша. Хочется, конечно, схалтурить, и просто приколотить гвоздями несколько готовых предустановленных программ и оставить выбор только между ними, но вроде бы и не серьезно. потому что материал от разных производителей, и где-то надо прям на ходу подбавить газку, где-то остудить... Извините, что все это вывалил. Мысли вслух =) Спасибо вам за канал и ролики, которые регулярно наталкивают на какие-то мысли. То на что-то с другой стороны посмотришь, то пробел какой вскроется и надо пойти почитать, то вообще не думал, а тут - бац - а у вас разжевано =)

  • @SaihoS1

    @SaihoS1

    Жыл бұрын

    @@iMOOMMOOM В таких случаях решение известно - PID регулирование. Чувствуется что вы сейчас вряд-ли сможете его реализовать самостоятельно, но Вам и не нужно. Всё придумано до нас. Практически любой контроллер температуры с функцией автонастройки PID решит вашу проблему в корне и с большим запасом по точности. И цена вопроса смешная, буквально несколько тр за контроллер и термопару. Ну может около 5 тр. При этом вы один раз даёте контроллеру настроить коэффициенты и дальше радуетесь жизни - в работе просто устанавливаете на табло нужную температуру и идете спать. Выбор контроллера правда зависит ещё и от типа нагревателя. Если электрический то всё просто, но можно порешать и с форсункой и с чем угодно. Только тогда вам потребуется помощь специалиста и в 5 тр уже не уложиться. Вот щас Гневисть проснется и разъяснит вам по полочкам )))

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    @Роман Вестра , вам действительно нужен терморегулятор с ПИД-ом, как и сказал @SaihoS1 , "релейной" логикой вашу задачу качественно не решишь. Проще всего взять готовое решение от любого крупного производителя - Шнайдер, Сименс, Омрон - у них у всех есть в каталогах подходящие вам продукты =)

  • @SaihoS1

    @SaihoS1

    Жыл бұрын

    @@iMOOMMOOM Добавил бы не столь именитых и соответственно не столь дорогих корейский Autonics и наш ОВЕН. У обоих есть модели на все случаи жизни и по надёжности хорошо себя зарекомендовали. Осталось только определиться с нагревателем. Если электрический, то управлять лучше через твердотелки. Они практически вечные и коммутировать могут до ста раз в секунду.

  • @BioTech81
    @BioTech81 Жыл бұрын

    Уже не знаю что и сказать вроде уже всё сказал и не раз. Ну как всегда: подача, манера, музыка, последовательность, интонация, всё на высшем уровне. Здравствуйте кстати 😂. Даже до такого валенка как я с такой подачей стало доходить хоть кое что. Боюсь перехвалить. Олег но просто бомба. Некоторые блогеры долго к такому идут а у вас прям с первого видео всё получилось. Я кстати после первого просмотренного видео подписался. Готов на часовые и даже двучасовые видео. Нет не видео... Уроки. Как всегда отлично.👍

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Спасибо, буду продолжать радовать новыми видео! =)))

  • @Anti_During
    @Anti_During Жыл бұрын

    Вы - очень харизматичный ) Знаете, будучи студентом не понимал ТОЭ. я бы что предложил... рассказать основы основ про узлы, базовые методы и прочее. В помощь студенту. А почему здесь ? а у Вас хорошо получается )

  • @alexnet8943

    @alexnet8943

    Жыл бұрын

    Этакий современный халявный ликбез ? Ну, голубчик, Вы даёте🙂...такая гамма удовольствий дорогого стоит.

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Дело даже не в стоимости, а в экранном времени =) Я не знаю с какой стороны подступиться, чтобы это увлекательно рассказать =)))) Но, может когда-нибудь и придумаю =)))

  • @alexnet8943

    @alexnet8943

    Жыл бұрын

    А студентам не слишком захорошеет ?

  • @andrisrubens2588

    @andrisrubens2588

    Жыл бұрын

    Все что касается ТОЭ, Ютюб полон информации, могу выделить один канал, которого для любознательных хватит за глаза. youtube.com/@ToeRavilov Лично мне очень помог в освоении предмета: электротехника, в частности, комплексные числа зашли на ура.

  • @user-xd1wr9md2z
    @user-xd1wr9md2z Жыл бұрын

    спасибо за видео, буду пересматривать ещё не раз

  • @vernnms78
    @vernnms78 Жыл бұрын

    Подписан, посмотрел с удовольствием, поставил лайк! :-)

  • @yrisu6098
    @yrisu6098 Жыл бұрын

    Класс! Спасибо очень поучительно! Ждем новых уроков!

  • @user-gl4xp6ct4z
    @user-gl4xp6ct4z Жыл бұрын

    Очень полезно! Спасибо! За Ваш труд.

  • @user-iz4gq9gi2s
    @user-iz4gq9gi2s7 ай бұрын

    Замечательная подача. Если можно, запилите ролик про аналоговые выходы. И в частноти, как получить 0 - 10 v из Ардуины.

  • @pavel_dmitrievich
    @pavel_dmitrievich10 ай бұрын

    Спасибо Вам за такое полезное видео, очень информативно и интересно 😊

  • @user-wp3to9tz1m
    @user-wp3to9tz1m Жыл бұрын

    Когда в глаза не смотришь не так страшно, слушать приятно, полезно. Спппаассиибо :)

  • @Vitaly_Y
    @Vitaly_Y10 ай бұрын

    Привет. Отличный пример документации на датчик!😂

  • @vernnms78
    @vernnms78 Жыл бұрын

    Ура! Новый выпуск!

  • @vsche3688
    @vsche3688 Жыл бұрын

    сразу лайк, потом просмотр)

  • @klimovtima81
    @klimovtima81 Жыл бұрын

    Хочется научиться программировать . Ваша инфо очень полезная, спасибо за потраченное время .

  • @rudegor858
    @rudegor8588 ай бұрын

    Не слова, а золото! 🎉

  • @user-xq7wz2nu6l
    @user-xq7wz2nu6l Жыл бұрын

    вот оно как делается! спасибо! теперь буду знать как пилить штуку на ардуино для измерения чегото

  • @TSM_149
    @TSM_149 Жыл бұрын

    Ура! Есть ролик!!! Лайк в копилку. Всегда жду с нетерпением!!! 👍🤝

  • @kovalski5539
    @kovalski55399 ай бұрын

    Класс! Отличная подача материала. Талант не пропьёшь!👍🏻🤝🏻 Начинаю качать видео с канала для будущих поколений 🙂

  • @trytrytrytrytrytryt
    @trytrytrytrytrytryt3 ай бұрын

    Едрииить, Песняры подъехали, сольный концерт! :)

  • @sannexsannex4528
    @sannexsannex4528 Жыл бұрын

    Все клёво. Материал интересный. Подача его замечательная. Респект и уважуха. Но... Ни как не могу оторваться от глаз автора. 😄

  • @UA3USY
    @UA3USY Жыл бұрын

    ооо опять чёто умное))) спасибо за кинофильм

  • @user-si3vc8my8t
    @user-si3vc8my8t Жыл бұрын

    Ваши видео просто ОФИГИТЕЛЬНЫЕ!

  • @benyashnyperson9271
    @benyashnyperson9271 Жыл бұрын

    Спасибо! Это лучшая подача материала!

  • @user-xs4is5lq5v
    @user-xs4is5lq5v Жыл бұрын

    Супер. Я измеритель уровня воды на герконах и резисторах собрал написал длинющий код который сопротивление в уровень воды переводит, а тут все проще с формулой (вот чем отличаются самоучки как я от профи) мы пишем "быдлокод"до которого дошли путем проб и ошибок 😉 Побольше таких видео и если можно то также на пальцах объяснить про I2C

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Любой профи когда-то был самоучкой, и уж поверьте, все мы учимся на своих ошибках, и своем же "быдлокоде" =)))) И про I2C, и про SPI готовится материал =))

  • @user-nk9iz3yo5w
    @user-nk9iz3yo5w Жыл бұрын

    Спасибо, так держать. Даёшь годный материал!

  • @user-js3vc6lt2v
    @user-js3vc6lt2v Жыл бұрын

    Спасибо за труды. Может когда нибудь пригодится.

  • @YanYasnyi
    @YanYasnyi Жыл бұрын

    Так интересно ,что не заметил как полчаса прошло.

  • @user-ev6si7ff9q
    @user-ev6si7ff9q Жыл бұрын

    Спасибо за видео! Ты супер крутой чувак!

  • @user-mh5vd9zo1x
    @user-mh5vd9zo1x Жыл бұрын

    Друже ты реально крут! такие сложные вещи (если самостоятельно изучать по литературе) так просто подаешь, что дебилу будет понятно)

  • @bit_happens_
    @bit_happens_8 ай бұрын

    Спасибо!

  • @MrAlexandrYZ
    @MrAlexandrYZ Жыл бұрын

    Супер, спасибо! Жду выпуск по ООП!

  • @user-je6qz4yk6v
    @user-je6qz4yk6v Жыл бұрын

    Вот знаю, что инфа нифига не пригодится, но всё равно интересно. Заодно вспомнить восьмибитные времена, когда надо было впихнуть весь функционал (весьма богатый, уровня АОН-а) в 8К ПЗУ и 2К ОЗУ. Да, там была и куча аналоговых входов...

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Поверьте, и сейчас порой приходится - притащит клиент какой-нить корейский ПЛК со своим не менее корейским пароходиком, и пищит - "любые деньги, только сделайте чтобы вот тут чтобы было вот так!" =))))) Ну раз "любые деньги" - то можно и заморочиться =)))))

  • @user-fs1bq5nf8n
    @user-fs1bq5nf8nАй бұрын

    Хетфилд еще и поёт как боженька😊

  • @asdffewfew
    @asdffewfew Жыл бұрын

    нравятся мне твои ролики)))

  • @leonidnovatski9815
    @leonidnovatski9815 Жыл бұрын

    Здравствуйте, на повестке дня значит Аналоговые входы АЦП, буду делать изучать. Моё пожелание это что бы вы не бросили это дело, из всех источников которые я нашёл ваш самый понятный. По возможности нужно сделать возможность закидывать монету в ваш сундучок за хороший контент. Я уже сам написал несколько своих программ ,всё работает,🙂 доволен как слон! Простые, но как говорил китайский мудрец самый долгий путь начинается с первого шага. С уважением!

  • @user-pn4tu1pu2z
    @user-pn4tu1pu2z11 ай бұрын

    Спасибо.

  • @azamnatali
    @azamnatali Жыл бұрын

    Отличное объяснение реально отделил мух от котлет))))

  • @rustybroom7071
    @rustybroom7071 Жыл бұрын

    Очень хорошо! И немного гневисти совсем не мешает.

  • @inventossencillos
    @inventossencillos Жыл бұрын

    Спасибо!👍

  • @johntraylore8103
    @johntraylore8103 Жыл бұрын

    21:27 описание 👍

  • @vladyslavshchedryn7008
    @vladyslavshchedryn7008 Жыл бұрын

    Автор, спасибо за видео! Уж сколько было в моей жизни сожраных мышами кабелей, "потерянных" датчиков и прочего, не счесть. Но смотреть интересно, ибо талант есть у тебя! Кстати, есть ещё экзотические выходные сигналы 0.8...3.2 В. И это всё на линии, длинной несколько сотен метров, в условиях жутких индустриальных помех. Вот где жесть.

  • @user-jr3mb5bo7z
    @user-jr3mb5bo7z10 ай бұрын

    А ещё надо иметь представление о работе многих устройств и происходящих при этом процессов

  • @Pro100Xaker5
    @Pro100Xaker5 Жыл бұрын

    Ща будет разнос мозга)))

  • @user-rp4fu1nr7z

    @user-rp4fu1nr7z

    Жыл бұрын

    Замотай голову бинтом, чтобы мозг по стенам не раскидало.

  • @user-yj5ye7mj8r
    @user-yj5ye7mj8r5 ай бұрын

    Хорошие у вас уроки. Единственное по теме с датчиком. Везде со всех утюгов трезвонят избегайте операцию деления, типа мк выполняет ее медленно тормозит. Я пытался сделать манометр до 600 бар, в руки попал датчик давления с харвестера, у него диапозон выхода от 1-5в, или от4-20ма и он линейный. Я его прикрутил к мк, но при проверке на гидростанции он показывал то 160 то 190бар, и ноля стабильного не было. Это при питании от аккумулятора. Скорее всего датчик б.у и уже был не исправен. Было бы интересно узнать, как разводить платы и о апаратных фильтрах от помех что бы показания таких датчиков были точнее.

  • @user-qu5xj4no5q
    @user-qu5xj4no5q Жыл бұрын

    ООП... так так так, с этого места поподробнее. Я серьезно, я веб-разработчик. Но всегда любил паять (и до программирования работал в сервисе) и плавно добрался до изучения МК. Сразу взял stm32... и взгянув на Си c CMSIS (да и HAL не слаще), пыл мой поубавился. Есть пара библиотек на C++ (его я кстати не знаю) типа mbed, но что-то сложнее hello_world сварганить не удалось (ардуино не в счет). Попадался даже прикольный доклад, где организация применяя ООП, на С++, экономит на разработке, благодаря единой кодовой базе. Вот только открытых проектов, да и даже простых статей днем с огнем не сыщешь.

  • @user-lj6ub3lf7f
    @user-lj6ub3lf7f Жыл бұрын

    Крутяк. Универсальные аналоговые сигналы рассмотрели. Предлагаю теперь рассмотреть сигналы термосопротивления и термопар. Там тоже можно весьма много накопать (характеристики, компенсации холодного спая, схемы подключения и т.д.) Целый мир.

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Да, и весьма интересный мир. Может как-нибудь сниму видео и о термопарах =)))

  • @sr_pomidor7140
    @sr_pomidor71404 ай бұрын

    Я НСЦТАИ, 20 лет в бизнесе. Значит так электронщики, видят наше оборудование:) Зашел посмотреть на реализацию автоматики уровня в баке и завис на следующее видео. Сигнализаторы предельных сопротивлений наше все

  • @andrisrubens2588
    @andrisrubens2588 Жыл бұрын

    R-C фильтр для лохов ))) улыбнуло. Спасибо за видео, супер!!!

  • @asutp2089
    @asutp2089 Жыл бұрын

    Лайк

  • @sima8623
    @sima8623 Жыл бұрын

    Описание к датчику огонь! :)) опять не могу прожать несколько лайков, а жаль.. Только дочитав до повреждения пространственно-временного континиума понял что что-то не так)))

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Спасибо, рад что понравилось =)))))

  • @egor_sam
    @egor_sam4 ай бұрын

    Добрый день! Есть необычная задача, которую необходимо выполнить на МК. Считывается значение АЦП 10 бит и шкалируется по шкале 0-7 с точностью 0.1. Задача: увеличивать значение счетчика на 1 при уменьшении значения переменной и переходе через целое значение шкалы, т.е. 5.2->5.1->5.0 увеличивается счетчик на 1, а если 4.8->4.9->5.0, то счетчик не изменяется. Своего рода обратный счетчик. Направьте, пожалуйста, на правильную дорожку =)

  • @user-ve9xh6si1r
    @user-ve9xh6si1r9 ай бұрын

    Расскажите пожалуйста о ds18b20 очень труден для понимания для меня оказался.

  • @olegnovikov9160
    @olegnovikov9160 Жыл бұрын

    Значит в Ардуино,преобразование в заданный диапазон функцией map,происходит по этой формуле линейной интерполяции. Большое спасибо за разъяснения.

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Да, эта формула используется везде, где нужно преобразовать сигнал в иной диапазон, те же LIN_TRAFO, SCALE, UNSCALE в "больших" ПЛК также основаны на этой формуле =)

  • @kosmos8460
    @kosmos8460 Жыл бұрын

    А можете ещё рассказать о методе Симпсона (парабола) в АЦП , спасибо за ваши уроки 👍

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Вы имеете в виду измерение действующего значения сигнала, того же RMS? Окей, как-нибудь запилю видео, довольно интересная тема кстати =)))

  • @CAGGICAR007
    @CAGGICAR007 Жыл бұрын

    4мА есть величина в первую очередь для питания прибора для подключения по двупроводной схеме.

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Трудно сказать как сложилось исторически; учитывая что первые датчики имели четырех- и трехпроводные схемы подключения, то вероятнее всего делали это именно для обнаружения обрыва, а уж потом поняли что можно и питать через это =) Точно так же как со шкалой 2 - 10В, где два вольта и есть ноль шкалы, а все что ниже - неисправность =)

  • @user-kx7ch1zr3q
    @user-kx7ch1zr3q Жыл бұрын

    Всё понятно, а как линеаризовать экспоненциальный поборолически и др датчики, где характеристика похожа на синус?

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Самый простой и часто применяемый метод - именно кусочная интерполяция, как я рассказывал; то есть расписываете по маленьким кусочкам таблицу входного сигнала, и вводите нужное количество блоков сравнения с уставками для формулы. Или же, если полностью известна характеристика входного сигнала с ее коэффициентами - применяете обратную функцию - для синуса - арксинус, для экспоненты - логарифм, и т.д. =))

  • @user-kx7ch1zr3q

    @user-kx7ch1zr3q

    Жыл бұрын

    @@Gnevistj спасибо!

  • @user-it6gr8ig2r
    @user-it6gr8ig2r Жыл бұрын

    А будет ли продолжение темы 'мифы альтернативной энергетики '?

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Будет! Даже немножко материала поднакопил =))) Не могу сказать как скоро эти выпуски увидят свет, ввиду происходящего киш-миша в работе, но планы имеются =))))

  • @user-lq4qe4mt4x
    @user-lq4qe4mt4x6 ай бұрын

    После операции пришивания пальцев... Доктор а я смогу теперь на скрипке играть? О да конечно... Здорово, раньше я не умел. .. так и мне, ещё долго мозг перепрограммировать, писать ему свой интерпретатор для этих вещей 😂

  • @ghjklfghk
    @ghjklfghk Жыл бұрын

    Ееееее. 🎉

  • @gogamagogov161
    @gogamagogov161 Жыл бұрын

    это получается, что чем уже измеряемый диапазон (температуры, например) - тем точнее будет измерение, и упрётся всё, по-итогу, в точность измерителя? И, по-идее, можно еще точнее "линеаризовать датчик", если есть более точный измеритель - построить свой график под конкретный датчик. И, по-идее, имея более точный измеритель - можно сделать калибровочную программку, типа гонять интервал и циферки вбивать и оно само все посчитает. Я, конечно, нифига во всём этом не разбираюсь - но очень интересно (и плюс минус понятно).

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Да, вы правильно все поняли - если количество делений на шкале не меняется (как в случае с АЦП МК - всегда 1024 единицы-деления), то чем более узкий диапазон реальных единиц вы хотите измерить, тем точнее получится =) И действительно так - основное это датчик - никакой АЦП хоть со 128 битами не улучшит сигнал, если датчик изначально имеет низкую разрешающую способность. Вспомните дешевые цифровые медицинские термометры из аптек - диапазон небольшой, но ошибаются чуть ли не в половину диапазона порой =))))) Именно по причине качества датчика, ИМХО =)))

  • @DyaFedya
    @DyaFedya Жыл бұрын

    ооп 🥲

  • @user-ul6iu3nu7i
    @user-ul6iu3nu7i Жыл бұрын

    Как поставить второй лайк за описание к экранному датчику?))

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Спасибо, приму виртуальный второй лайк =))))))

  • @vernnms78
    @vernnms78 Жыл бұрын

    Я, как человек, далекий от пром. автоматики, хотел спросить в порядке любопытства: В коде (25:50) переменная Xx имеет тип Long, но при этом на этапе считывания Xx=READ10(AN0) ей присваивается дробное значение, которое затем преобразуется. Как это работает? :-)

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Результатом работы функции ReadAD10 является WORD в диапазоне от 0 до 1023, и 16 его значащих бит загружаются в младшее слово переменной Xx, старшее слово не изменяется =)))

  • @vernnms78

    @vernnms78

    Жыл бұрын

    @@Gnevistj Эх, Семен Семеныч!.. Теперь ясно, что умножением просто "перекидываем" в старшие разряды? Правильно понял?

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Именно! Чтобы оставить место для " х десятых после запятой" который возникнет в результате вычислений. Десятичное значение окажется в "целых" разрядах, с которыми умеет работать машина =)) А мы потом его оттуда выковыряем =))))) Если бы мы хотели показать точность до сотых (два знака после запятой) - умножали бы на сотню =)))

  • @vernnms78

    @vernnms78

    Жыл бұрын

    @@Gnevistj Спасибо за объяснение! :-) Возьму это на вооружение.

  • @dan-cru3er
    @dan-cru3er10 ай бұрын

    А функция map это и есть интерполяция?

  • @Barmotolog
    @Barmotolog Жыл бұрын

    В ардуине команда "maps" )

  • @user-hd7hq4lf4y
    @user-hd7hq4lf4y Жыл бұрын

    13:49 Нуууу... не совсем.. Только в том случае, если величина будет меняться линейно. (а если по сложной кривой, парабола, гипербола и т.п.) Поправьте, если в чем-то не прав.

  • @ionelywolf3286
    @ionelywolf3286 Жыл бұрын

    "умная коробочка" выдаёт только ac или может и dc ,какая частота выхода , или это мини генератор сигналов 😁👍👍

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Умная коробочка выдает то, что установлено на ее дисплее при помощи крутилки =)))) Т.е. любое значение сигнала в диапазоне от 0 до 10В, или 0 до 20мА, причем с точностью до третьего знака после запятой. Умеет также выдавать треугольный сигнал - с настраиваемыми значениями нуля и максимума (в тех же диапазонах), и периодом изменения в секундах и долях секунд. Как-нибудь сделаю обзорчик =)

  • @mj-maks
    @mj-maks10 ай бұрын

    почему защитник виндовс ругается на предложений вами basic?

  • @Gnevistj

    @Gnevistj

    10 ай бұрын

    Вопрос этот скорее к разработчикам, я лишь пользователь этой среды. Кстати, у меня не ругался, вы точно с sourceforge качали?🙃

  • @mj-maks

    @mj-maks

    10 ай бұрын

    @@Gnevistj да, по вашей ссылке, а какой Виндоус вы пользуетесь и какая разрядность?

  • @Gnevistj

    @Gnevistj

    10 ай бұрын

    @@mj-maks , на данный момент 10ка 64 бита, но без единого обновления. По опыту, если антивирус ругается на любой компилятор - это норма, потому как компилятор обладает основным признаком вируса - создает исполняемый код =))) Не знаю насколько мой опыт будет полезен - с sourceforge я все ставил без доп проверок, ибо у них довольно жесткие проверки на самом сервере. Но, осторожность никогда не бывает излишней, я возможно несколько легкомысленно подхожу к этому вопросу =)

  • @mj-maks

    @mj-maks

    10 ай бұрын

    @Gnevistj спасибо, а ардуино также на бейсике? сильно отличается?

  • @Gnevistj

    @Gnevistj

    10 ай бұрын

    @@mj-maks , у ардуино свой язык; но учитывая что они все (если память мне не изменяет) построены на контроллерах авр, то не вижу проблем писать и под них на гцбейсике. Я готовлю выпуск и об этом =)

  • @SaihoS1
    @SaihoS1 Жыл бұрын

    Отлично! Спасибо! Но до оргазма малёха не хватает ((( Не ну правда, если уж играть с фиксированной точкой и врукопашную использовать дополнительный код, но при этом не провести элементарной оптимизации вычислений это как-то странновато. Если б я вот так вот влоб сделал четыре сложения, два умножения и, ёрш его налево, деление вместо одного сложения и одного умножения... да меня б выгнали без выходного пособия ))) Гневисть, не гневитесь пожалуйста. Просто до последнего момента ждал когда вы скажете "Ну мы то знаем как раскрывать скобки и заменять деление умножением! Смотри народ как одной только ловкостью рук мы превращаем жуткую формулу в пару операций!" И ощущение теперь как будто облом испытал ))) Конечно это учебный материал и тема другая и всё охватить невозможно... Всё так конечно. Но всё же очень жаль. Такая была возможность красиво закончить!

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Спасибо за столь развернутый комментарий, очень рад что вам понравилось =)) В свою защиту скажу - что моя цель в этом видео была показать работу формулы линейной интерполяции, и именно поэтому я ее вводил без всяческих преобразований - для наглядности =))) И уж в своих дорогих зрителях я уверен, что раскрыть скобки и выполнить часть действий вручную, перед записью их в программу, они сумеют и без моей помощи =)))) З.Ы. как хорошо, что вы не видели программы от моих французских коллег, там даже я за валидол хватаюсь, хотя сам тот еще лентяй по части математики =))))))))) И ничего, все работает, все довольны, и никого не выгоняют =)))))))

  • @SaihoS1

    @SaihoS1

    Жыл бұрын

    @@Gnevistj Ну понятно, понятно ))) Я на самом деле прекрасно понимаю что без сучка и задоринки с первого раза не сделать такой материал. Всегда есть что улучшить. Пусть моим конструктивным вкладом будет эта формула (с учётом замены 1024 на 1023): 0,244379277*X-100 Только не пугайтесь что коэффициент при X имеет много знаков после запятой. Это он так несуразно выглядит без округления в десятичной системе, а в двоичной сущие пустяки: 0,001111101 Всего-то 9 двоичных разрядов после запятой. Так что представления LONG хватает с запасом для вашей задачи. А ещё дорогое умножение на этот коэффициент следует заменить на несколько дешёвых действия (2 сложения, 2 сдвига, инверсию и инкремент). Ну и конечно в двоичной системе работать приятнее ибо деление на степени двойки это сдвиг - работа с фиксированной точкой просто песня. Получается что в основных вычислениях нам даже аппаратное умножение не нужно! Этим приемам и впрямь можно отдельный выпуск посвятить. Всё просто, но не очевидно, как все любят )))

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Вот кстати хорошая идея! Подумаю, и сделаю выпуск по части оптимизации математики. Но, сразу - из опыта скажу - если программа пишется на один раз, или исходники остаются только "у себя", то конечно можно поковыряться и как следует оптимизировать ее; но если исходные коды отдаются клиенту, который имеет свою собственную службу АСУ - то мое глубокое ИМХО, что лучше формулы вводить "как есть", пускай машина сама все скобки раскрывает - люди потом спасибо скажут, и не раз, ибо им и так в чужом коде разобраться не всегда легко, а тут еще киш-миш с авторской методикой умножения =))))))

  • @user-fg9sp9sy7f
    @user-fg9sp9sy7f Жыл бұрын

    4-20мА тоже мериется через делитель.

  • @futuriones
    @futuriones Жыл бұрын

    "Здравствуйте, кстати" более уместно звучало бы где-нибудь на 5-той минуте )

  • @ecstasy3701
    @ecstasy37014 ай бұрын

    В каких участках их ДНК находится ошибка!)))) Ору просто, красавчик! (Я не про внешность если что)

  • @user-ul6iu3nu7i
    @user-ul6iu3nu7i Жыл бұрын

    При рассказе про миллиамперы у меня флешбеки - Ебаная пожарка, как она вынесла мозг на работе, с такими токами эти особенные люди линию на скрутках собирают)

  • @andreimedeisha5692
    @andreimedeisha5692 Жыл бұрын

    Уж если кто спасет мир от необдуманного использования датчика, то только Чак Норрис. 🤣

  • @werew03
    @werew03 Жыл бұрын

    SPS УВАЖУХА

  • @Nito4kin
    @Nito4kin10 ай бұрын

    +

  • @wandemeir4394
    @wandemeir4394 Жыл бұрын

    Странно что все комментарии положительные, видео трут, видимо и этот сотрут. В плане ПЛК возможно такие подходы и норм, но микроконтроллеры уже так как лет 20 не программируют. Любой контроллер поддерживает знаковые числа, вы никогда не задумывались почему перевод из знаковых в беззнаковые делается так, а не скажем добавление единицы слева? А это для того чтобы знаковые и беззнаковые числа считались на одном алу. Так что это только лень разработчиков языка, на си все ВСЕГДА поддерживается. Также уже тонна контроллеров аппаратно считает float и даже double, например stm32H7. И опять же в С/С++ это прекрасно поддерживается потому что это базовые фичи компилятора. Вообщем соболезную не окрепшим умам которые решат изучать программирование микроконтроллеров использую данные подходы и данные методы.

  • @artemdavinci
    @artemdavinci Жыл бұрын

    Есть два вопроса. - Почему используется 1024, а не 1023? - Не совсем ясно как происходит математика с отрицательным числом. Т. е. как получить отрицательное число это понятно. Но ведь МК все равно "не знает", что это число отрицательное, он же "думает", что там записано 4 294 966 796, а не -500.

  • @SaihoS1

    @SaihoS1

    Жыл бұрын

    1024 это косяк, а что МК думает про содержимое переменной это не важно. Главное мы знаем как он обрабатывает переполнение при сложении и пользуемся этим. Дополнительный код для того и придуман чтобы пользуясь переполнением реализовать вычитание с помощью сложения.

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    @Артем Полянчук , да, 1024 - это мой косяк, зарапортовался вначале, так и пошло-поехало сквозь все видео - до самого момента загрузки видео на ютуб не сообразил. Такие ошибки свойственны не только новичкам, но и старичкам, как видите =)))) Естественно, везде нужно читать 0-1023. По поводу отрицательных чисел - все правильно сказал @SaihoS1 , рекомендую пересмотреть мой выпуск про память ЭВМ, в нем довольно подробно рассмотрен механизм работы с отрицательными числами =)

  • @artemdavinci

    @artemdavinci

    Жыл бұрын

    @@Gnevistj Благодарю ;)

  • @artemdavinci

    @artemdavinci

    Жыл бұрын

    @@Gnevistj Да, пересмотрел и вспомнил. Действительно все очень просто))

  • @r_h1030
    @r_h10302 ай бұрын

    Я блин часа два понимал , а все дело в 4( условный ноль ) , и шкалировонии

  • @mikesaiganov4535
    @mikesaiganov4535 Жыл бұрын

    Коты не грызут кАбели??? Ещё как грызут!!! Особо, когда у них зубы меняются. Мой- все шнуры от зарядок погрыз! Теперь все шнурки в разноцветных термоусадках. Чиненые - паянные😅

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    В прокатном цеху моего родного завода было довольно много котов - их все подкармливали, и суровые ребята с линии, и веселые девчонки из ОТК. В один прекрасный день, начальник цеха (видимо встав не с той ноги), потребовал безобразиЁ прекратить, котов с территории выдворить. Узнав об этом приказе электрослужба цеха напряглась. Коты же удалились, так как их перестали кормить, и начали гонять; но самый шухер, ожидаемо, начался пару-тройку недель спустя - длительные простои то на одном, то на другом прокатном стане - обнаглевшие крысы повадились грызть кабеля в неслыханных масштабах - и компьютерные сети АСУ, и прочие контрольники, избегая неведомым образом силовые кабели. После недельного шухера негласным приказом коты были возвращены на территорию цеха, прикормлены, и погрызание кабелей резко прекратилось =))))

  • @mikesaiganov4535

    @mikesaiganov4535

    Жыл бұрын

    @@Gnevistj Из двух зол выбрали меньшее 😄👍

  • @deniskhakimov

    @deniskhakimov

    11 ай бұрын

    Мой британец несколько раз перегрызал кабель от любимой клавиатуры. А всё потому, что когда он был мелким, часто с ним играл "хвостом" от компьютерной мышки или кабелем для наушников. Каждый раз из-за этого у меня стопорилась работа. Представьте себе: вам - менеджеру проектов из мск - в обед звонит _погроммист_ и сообщает, что сегодня ещё даже не принимался за работу, т.к. "кот прогрыз кабель от клавиатуры" 😆

  • @TriFid249
    @TriFid249 Жыл бұрын

    В институте бы также объясняли!!! А то на лекции быстрее в сон загонит, чем чему то научишься)))

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    На лекциях главное - не храпеть =))))))) Все зависит от преподавателя. Видел и таких, кто настолько увлекательно рассказывает с примерами из жизни, что даже придя к нему на лекцию после ночной смены слушаешь затаив дыхание, и сна как не бывало; а бывают что монотонно прочел конспект сонной аудитории, и усе =))))

  • @drone_tales
    @drone_tales11 ай бұрын

    Xmax (да и вообще максимальное значение по АЦП), в данном случае, должно быть 1023. Да, у вас 1024 значения (состояния), но максимальное числовое - 1023. Вы никогда не получите на входе 1024 (ну или 256 для 8 бит). Так вы теряете в точности. Такая ошибка есть в 99.9% случаев работы с АЦП.

  • @LookThroughTheButt
    @LookThroughTheButt10 ай бұрын

    Нууукааанешна! Не грызут коты кабели, ага...

  • @Gnevistj

    @Gnevistj

    10 ай бұрын

    Коты грызут кабели на производстве только в индивидуальном порядке, и строго согласно наряду-допуску! =)))) А вот крысы - грызут в промышленных масштабах, без смс и регистрации =))))))))

  • @LookThroughTheButt

    @LookThroughTheButt

    10 ай бұрын

    @@Gnevistj я так полагаю, что наряд-допуск для кота - это пределы терпения его хозяев? )))

  • @RogovAB
    @RogovAB Жыл бұрын

    Это в каком МК АЦП дает 0-1024? 11 битное ацп? ай-яй-яй!

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Где-то здесь же в комментариях я уже извинялся за эту неточность =)) Так бывает, когда снимаешь и монтируешь видео по ночам =))))))

  • @alexorlovecky6662
    @alexorlovecky6662 Жыл бұрын

    Формула для маленьких детей увлёкшимся ардуинкой.. Но если уже говорите о промышленных датчиках, то практически никто в здравом уме, линейной интерполяцией пользоваться не будет. Большие дяди юзают експоненту, так как прямые линии еллектронные компоненты рисуют лишь в мурзилке.

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Нда, я удивлен. Вроде взрослый уже дядя, а экспоненту применял всего несколько раз в жизни =))) На прошлой неделе подключал весовой преобразователь к ПЛК по аналогу 0-10В, и о чудо - сошкалировав его в двух точках он оказался абсолютно линейным (ради интереса шкалировал при 20% и 70% от полного веса); так и ниже рекомых 20%, и выше 70% - чистая линия. И да, именно по этой формуле работает линеаризация в моей программе, т.к. штатный LIN_TRAFO ругается, когда выходишь за нижнюю/верхнюю точку диапазона. Суть в чем - если производитель преобразователя/датчика сказал что он линеен - значит он линеен, мерь хоть вдоль, хоть поперек. Пользуйте качественные датчики! =)))) Или вы о схемотехническом косяке Сименса в его аналоговых модулях 6ES7-331-..., когда "зарезали" часть диапазона, и вместо шкалы от минус 32767 до плюс 32767, имеют шкалу -27649 до 27649? А, это дааа, маркетинг гениальный без сомнения - тщательно задокументировать свой косяк, и выдавать за преимущество - мол вот, у всех "загибается по экспоненте, а у нас есть специальное срэдство!" =)))) Но главный прикол в том, что у всех ничего не загибается, и для проверки сего чуда хватит обычного поцика, тестера, и небольшой программки, с той самой формулой линейной интерполяции =)))))

  • @alexorlovecky6662

    @alexorlovecky6662

    Жыл бұрын

    @@Gnevistj Пользуемся более чем "нормальными" датчиками, но все которые мне попадались - от датчиков глубокого вакуума, расхода газа и тд, до показаний выходной мощности различных ВЧ генераторов - все имеют экспоненту. На самых крутых, даже есть "линеаризаторы" - подстройка офсета нуля, коэффициент(крутизна) и та самая экспонента. Последняя типа настроенна с завода и с пломбой, пломбу срываешь - гарантия слетает. А иной раз, сам датчик может выдавать высокую точность, но производитель в паспорте её специально занижает - на случай если криворукий настраивал. Крутить нельзя - гарантия снимется, по гарантии менять тоже, потому что для производителя всё в допуске.

  • @alexorlovecky6662

    @alexorlovecky6662

    Жыл бұрын

    @@Gnevistj Да что далеко ходить, элементарно смотрим на таблицу ходовых хромель-алюмель тип К термопар: температура 0 по Цельсию - 0в, температура 100 4.096в. Используем линейную интерполяцию и считаем 50 градусов: получаем 2.048в. А потом идём и сверяем с таблицей, а там херак 2.023 вольт.

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    @@alexorlovecky6662 , вы не совсем внимательно просмотрели выпуск - термином "датчик" я назвал законченное устройство со стандартным сигналом на выходе; если говорить о термопарах, и о любви людей сэкономить на "спичках", то да, приводим на входной блок ПЛК сигнал напрямую с термопары, а дальше мучимся и пишем все ручками, в т.ч. компенсацию холодного спая с термостатированием блока ПЛК =))) Кстати, в линеаризации нелинейных датчиков (сорри за микротавтологию =))) прекрасно работает эта же формула - пример показан в этом же видео =)

  • @clora1136
    @clora1136 Жыл бұрын

    Стабилитрон это уже саботаж. При делителе 10к удачи вам с компенсацией тока утечки в стабилитроне. Нарисовали бы bat54s (утечка при 5в 100 нА) сбросив излишки на шины питая как собственно и положено. "Никакой погрешности не внесут" ))))))))))). типовой стабилитрон на 5,1в 10мка при 1в обратный ток. при 2,5 уже 100мка. подумаешь +1в на 1/2 FSR. (испытанно на своей шкуре после вот таких "решений" по защите аналоговых входов). Не надо так.

  • @user-ne4bd3ry1n
    @user-ne4bd3ry1n Жыл бұрын

    местами истеричные эмоции, пугает.

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Не пугайтесь! =))))

  • @alexnet8943
    @alexnet8943 Жыл бұрын

    🙂👍🇺🇦

  • @valerab5687
    @valerab5687 Жыл бұрын

    К чёрту условности!!! К чёрту схемы, формулы и красные стрелочки!!! Объясняй в Алкашах и бутылках Водки на квадратный дюйм!!!! Так гораздо доходчивей )))))))))))))))

  • @chsnchsn564
    @chsnchsn564 Жыл бұрын

    уколотый молодец.😊

  • @alexnik3884
    @alexnik3884 Жыл бұрын

    Подскажи пожалуйста. Не могу допереть, как сделать следующее. На порту во время разговора меняется состояние, 1 разговора нет, 0 разговор есть и нужно если в течение скажем 15 сек разговора нет, т.е. на порту лог.1, завершить работу программы. Контроль переключения порта в бесконечном цикле это понятно. Но не могу понять как написать, чтобы не хватала у меня первое состояние лог. 1, т.е. короткой паузы при разговоре и контролировало наличие этой единицы 15 сек, а если лог.1 был меньше этого времени, то сбрасывало время и программа продолжала работать, покуда лог. 1 именно будет на порту присутствовать 15 сек, а не цеплялась за первую же паузу.

  • @nilstriamera4016
    @nilstriamera4016 Жыл бұрын

    Как автор создаёт такую уютную атмосферу? Харизма + немного магии?

  • @Gnevistj

    @Gnevistj

    Жыл бұрын

    Только тссс! Никому! Ведь магия вне Хогвартса запрещена =))))))

Келесі