Цитата(power_factor #064; 22.6., 10#58;03)

Есть абстрактный ПЛК с AI на ток и/или напряжение. Как к нему подключить потенциометр, допустим, на диапазон от 0 до 1000 Ом? Во вложении схема с моим видением подключения ко входу 0. 10 В - правильно мыслю или не очень? Если правильно, то как будет выглядеть схема для подключения ко входу 4. 20 мА?

Цитата(power_factor #064; 22.6., 10#58;03)

Есть абстрактный ПЛК с AI на ток и/или напряжение. Как к нему подключить потенциометр, допустим, на диапазон от 0 до 1000 Ом? Во вложении схема с моим видением подключения ко входу 0. 10 В - правильно мыслю или не очень? Если правильно, то как будет выглядеть схема для подключения ко входу 4. 20 мА?

если нужна точность, подайте на другой AI напряжение с точки соединения резисторов R и RP, оно будет опорным

Цитата(power_factor #064; 22.6., 12#58;53)

1. Мне не понятная эта идея и способ её реализации.

2. Неправильно выразился. Мне нужна не схема, а номинал резистора, чтобы получить чёткий диапазон 4. 20 мА (при сопротивлении нагрузки не в 500 Ом, как у Вас на схеме, а в 250 Ом). Можно также поменять номинал потенциометра. Все варианты, которые я рассматривал, не дали требуемого результата. Наиболее близкий диапазон, который мне удалось получить 7,5. 20 мА. Понятно, что в ПЛК его можно отмасштабировать, но хотелось бы получить требуемый ток в цепи.

3. Откуда взялись 48 В?

4. Пожалуйста, пишите либо по теме, либо не пишите вообще.

1. Арифметические пропорции, средняя школа, 5-6 класс
2. Закон Ома, математика, пропорции. Если не можете разделить напряжение на ток, переходите к п. 4
3. Из нарисованного двухполярного питания
4. Наплодили в России инженеров без знания закона Ома

- по утрам тренироваться в арифметике
- днем учить правило Кирхгофа о сумме напряжений в замкнутом контуре

+24- (-24)=48В источник
-24-(+24)=-48 В потребитель
-48+48=0В полный контур


Группа: Участники форума
Сообщений: 53
Регистрация: 22.6.
Пользователь №: 237371

Цитата(power_factor #064; 6.6., 2#58;22)

Сам я автоматчик

и мне нужно автоматизировать ВНС (схема прикреплена).
Я не хочу возиться с измерением и контролем уровня непосредственно в резервуаре (ибо тот ещё геморроец), а хочу контролировать его в насосной посредством установки на трубопровод разбора воды из резервуара датчика гидростатического давления. Когда вода в этой трубе стоит (то есть не работает насос подачи), то тогда уровень воды я могу получить из соотношения Р = #961;gh. Это понятно. Погрешность в этом случае будет обуславливаться только волнением воды в резервуаре.
Но у меня есть подозрения, что при работе насоса подачи, когда вода в трубе уже не будет стоять, данная схема вычисления уровня уже не подойдёт. Спросил этот вопрос у технолога, он говорит, что все законы и пропорции сохраняться, то есть как вычислял я h = P/#961;g, так я и должен вычислять. Решив проверить его слова, я полез в интернеты и тут начался тёмный лес: уравнение Бернулли, динамическое и статическое давление (причём, я так понял, что статическое и гидростатическое давление – вещи разные), потери на трение и вязкость… В общем, в голове каша.
Поможет ли мне кто-нибудь понять: насколько может изменяться давление в точке измерения и от чего оно будет зависеть (думаю, что от скорости потока), чтобы вносить поправки к показаниям датчика и уровень измерять точно? А уровень надо измерять достаточно точно, ибо по нему работает и скважинный насос, и защита насоса подачи.
Насос подачи Grundfos CR 64-3-1, работает с частотником по давлению в сети за насосной станцией, соответственно обороты его будут меняться, и соответственно и расход, и скорость жидкости тоже. Параметры сети, если надо будет, скажу.
Спасибо.

не владеете элементарными вопросами

Цитата(HVAC #064; 27.8., 11#58;58)


Если вы задаете такой вопрос - значит вы не проектировщик.


Тогда совет вам - если есть необходимость установки оборудования во взрывобезопасном исполнении (в частности - искоробезопасные цепи), значит в 99% процентах случаев речь идет о поднадзорном оборудовании. Так вот, лучше даже не пытайтесь лепить на таком оборудовании разного рода самоделки не имея на это проект, разработанный специализированной проектной организацией. Ибо когда произойдет авария, несчастный случай на этом объекте (не важно, по вине смонтированного вами оборудования или нет, не важно - случится это завтра или через 20 лет когда вы будете работать уже на другом предприятии), то вы вторым после вашего директора и начальника пойдете на допрос к следователю в прокуратуру и получите срок.

Аналоговые порты. Потенциометр

Последний урок, который остался в меню File Examples 1.Basics - это AnalogReadSerial. Для примера нам понадобится новый компонент - потенциометр. Поначалу я напрягся, прочитав незнакомое слово. Но взглянув на деталь, понял, что это обычный регулятор. С его помощью можно регулировать напряжение проходимого тока. Цель урока - плавно изменять напряжение и подавать его на аналоговый вывод, чтобы получить текущее значение напряжения.

Чуть теории. На плате есть шесть выводов, которые подписаны от A0 до A5. Они работают с напряжением от 0 до 5V. Для чтения показания напряжения есть встроенный метод analogRead(). возвращающий значение от 0 до 1023. Значение 0 относится к 0V, а 1023 к 5V. Таким образом, если мы хотим конвертировать значение от 0 до 5, то нужно произвести деление 1023/5 = 204.6

Кроме того, аналоговые выходы могут работать как цифровые, хотя по умолчанию используются как аналоговые.

И, наоборот, цифровые порты с символом

(3, 5, 6, 9, 10, 11) могут работать как аналоговые выходы.

Для начала изучим простой пример с проводом. Соединим проводом порты A0 и 3.3V. Напишем скетч.

Откройте окно Serial Monitor и наблюдайте за показаниями. Должны выводиться числа, близкие к значению 3.3: 3.1, 3.2, 3.3. Если, не закрывая программу, вытащить конец провода из порта 3.3V и вставить в порт 5V. то показания изменяется и на экране появятся числа 5.0. Если перекинуть конец провода на GND. то увидим значения 0.

Таким образом мы видим, что можем получать значения напряжения из аналоговых портов.

Потенциометр

Итак, для изучения следующего урока нам понадобятся плата Arduino, потенциометр и несколько проводов (или перемычек). Обратите внимание, что потенциометра есть две парные ножки и еще одна отдельная ножка (средняя). Соединяем парные ножки с выводами на плате 5V и GND. Среднюю ножку необходимо соединить с аналоговым выводом на плате, помеченную как A0 .

Не важно, какая из крайних ножек потенциометра будет подключена к 5V. а какая к GND. поменяется только направление, в котором нужно крутить ручку для изменения напряжения. Сам сигнал считывается со средней ножки, которая связана с аналоговым портом. Для считывания аналогового сигнала, принимающего широкий спектр значений, а не просто 0 или 1, подходят только порты, помеченные на плате как ANALOG IN. Они все пронумерованы с префиксом A (A0-A5).

Схема готова. Вращая регулятором потенциометра, мы можем менять сопротивление от 5 Вольт до 0. Arduino позволяет считывать текущее напряжение, которое подается на среднюю ножку при помощи аналогового вывода. Результаты могут колебаться от 0 до 1023.

Схема будет выглядеть следующем образом.

Код

Код очень простой. При инициализации устанавливаем нужную скорость связи: Serial.begin(9600);. Далее в цикле мы постоянно считываем данные, поступающие с потенциометра при помощи метода analogRead(). Так как значения будут находиться в диапазоне от 0 до 1023, мы можем использовать тип int для переменной sensorValue .

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

Проверка

Запустите программу, а также откройте окно последовательного монитора (Tools Serial Monitor ). Вращая регулятором потенциометра, вы можете наблюдать, как в окне будут меняться значения от 0 до 1023.

Пример интересен своей универсальностью. Потенциометр является ручным делителем напряжения. Существуют другие детали, которые выполняют такую же работу. Например, фоторезистор меняет напряжение в зависимости от освещённости. Также напряжение может меняться от нажатия, от температуры и т.д. При этом нам не нужно менять программу, просто одну деталь меняем на другую и код будет выполняться. Единственное различие будет в выводимых результатах - каждый делитель напряжения имеет свои характеристики и, соответственно, будет давать свои показания.

Подключаем светодиод

Усложним конструкцию, добавив светодиод. Первую часть схему можно было не трогать. Но для экономии в предыдущем примере я соединил ножку потенциометра сразу с портом GND. На этот раз сделаем соединение из двух проводов. Это необходимо, чтобы светодиод тоже мог соединиться с заземлением. Поэтому финальный макет будет следующим.

Практически все инструкции вам знакомы. Тут нужно уяснить момент, что яркость светодиода управляется нашим кодом, а не подачей напряжения через потенциометр. Мы считываем показания потенциометра, как в первом варианте и переводим получаемые значения в диапазон от 0 до 255. Затем воспроизводим старый пример с плавной регулировкой светодиода и подаём ему нужные значения. Теперь при вращении ручки потенциометра мы одновременно управляем степенью накала светодиода. Напомню, что светодиод следует подключить к портам с тильдой, например,

Другие примеры

Реклама

Потенциометр (переменный резистор) и Arduino

В этом примере показано как подключать потенциометр к плате Arduino, как можно считывать аналоговые значения с пина 0, преобразовывать данные из analogRead() в вольты и отображать их в серийном мониторе.

Что вам понадобится

  • Плата Arduino
  • Переменный резистор (потенциометр)

Схема подключения потенциометра к Arduino

Подключите три коннектора от потенциометра к плате Arduino. Черный - к земле. Второй - красный - от потенциометра к 5 вольтам на плате. Третий - средний - идет от аналогового входа 2 к центральному коннектору потенциометра

Поворачивая вал потенциометра, вы меняете значение сопротивления на центральном коннекторе потенциометра, что в свою очередь меняет напряжение на 0 пине платы. Когда сопротивление между центральным и боковым коннектором, который подключен к 5 вольтам, близится к 0 (а сопротивление на втором конце близится к 10 килоомам), напряжение на центральном пине близко к 5 вольтам. В противоположном случае, при повороте в другую сторону, напряжение на центральном пине приближается к 0 или земле. Это напряжение и есть аналоговым, которые вы считываете на пине платы.

На плате Arduino есть встроенный аналогово-цифровой конвертер, который считывает напряжение и преобразовывает его в числовые значения от 0 до 1023. При полном повороте вала в одну сторону на пин подается 0 вольт и числовое значение, которое генерируется равно 0. Когда вал повернут в противоположном направлении, на пин подается 5 вольт, что соответствует значению 1023. Между этими граничными значениями, analogRead() возвращает числовое значение в диапазоне от 0 до 1023, которое будет пропорциональным напряжению, подаваемому на пин.

Электросхема подключенного к Arduino потенциометра

Вариант шилда с потенциометром для Arduino

Описание программы для Arduino

Первое, что необходимо в программе - настроить обмен информации платой с компьютером с помощью серийного подключения. При этом скорость обмена данными устанавливается на уровне 9600 бит в секунду с помощью строки

В цикле main вам необходимо инициализировать переменную для передачи данных с резистора (которые будут генерироваться в диапазоне от 0 до 1023)

int sensorValue = analogRead(A0);

Для изменения значений 0-1023 на те, что будут соответствовать напряжению на пине, вам необходимо создать другую переменную типа float и совершить математическую операцию. Для масштабирования значений, разделите 5 на 1023 и умножьте результат на значение переменной sensorValue:

float voltage= sensorValue * (5.0 / 1023.0);

В конце, для отображения информации на мониторе компьютера, используйте команду Serial.println():

Теперь, после запуска серийного монитора в оболочке Arduino IDE, вы увидите поток значений в диапазоне от 0.0 до 5.0. При повороте потенциометра значения будут меняться в соответствии с напряжением на пине А0

Считывает аналоговое напряжение на пине 0, преобразует его в напряжение и отображает результат в серийном мониторе.

Подключите центральный коннектор потенциометра к пину А0, два по краям - к земле и питанию 5 вольт.

// функция setup отрабатывает один раз после перезагрузки платы:

// инициализация серийного обмена данными на скорости 9600 бит в секунду:

// цикл loop повторяется бесконечно:

// считывает значение на аналоговом пине 0:

int sensorValue = analogRead(A0);

// конвертирует аналоговое считывание (которое идет от 0-1023) в напряжение (0-5 вольт):

float voltage = sensorValue * (5.0 / 1023.0);

// отображает в серийном мониторе считанное значение:

Считывание аналоговых значений с использованием потенциометра

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

Когда вы крутите вал потенциометра, меняется сопротивление на краях проводника, который подключен к центральному коннектору. Когда сопротивление между центральным коннектором и боковым, который подключен к 5 вольтам близок к 0 (а сопротивление на другом конце близко к 10 кОм), напряжение на центральном пине близится к 5 вольтам. Когда сопротивление меняется, напряжение на центральном пине стремится к земле, то есть к 0 вольт. Это напряжение является аналоговым, которое и считывается в качестве входного сигнала.

На платах Arduino есть встроенный аналогово-цифровой преобразователь, который считывает меняющееся напряжение и преобразует его в числовое значение в диапазоне от 0 до 1023. В момент, когда вал повернут до упора в одном из направлений, на пине будет 0 вольт, значение, которое сгенерируется будет равно 0. Когда вал повернут до упора в другом направлении, на пин подается 5 вольт и числовое значение будет равно 1023. В положениях между крайними, функция analogRead() возвращает цифровое значение в диапазоне между 0 и 1023, которое будет пропорционально напряжению на пине.

Скетч с пояснениями

В приведенной ниже программе, единственное, что вам необходимо объявить в теле функции setup - это обмен данными по серийному протоколу, со скоростью 9600 бит в секунду с помощью строки

В цикле main loop, необходимо объявить переменную для хранения значений сопротивления (которое будет находиться в диапазоне от 0 до 1023, то есть, рациональным будет использование типа данных int при объявлении), которые поступают от потенциометр:

int sensorValue = analogRead(A0);

В конце, вы выведете полученные данные (DEC) в окне серийного монитора в виде целого числа. В этом вам поможет команда Serial.println():

Теперь, когда вы откроете ваш серийный монитор в среде Arduino IDE (нажав кнопку справа от Upload в главном меню), вы сможете отследить поток числовых значений в диапазоне 0-1023, характеризующие положение вала потенциометра. При повороте ручки потенциометра, данные будут изменяться.

Считывает аналоговый сигнал на пине 0 и отображает результат на серийном мониторе.

Подключите центральный пин потенциометра к пин А0 на плате, боковые - к +5 вольтам и к земле (-).

// цикл setup отрабатывает один раз после перезагрузки платы Arduino

// инициализация обмена данными по серийному протоколу со скоростью 9600 бит в секунду:

// цикл loop повторяется бесконечно:

// считывает значение с аналогового пина 0:

int sensorValue = analogRead(A0);

// отображает считанное значение:

delay(1); // задержка между считываниями для стабильности работы

Please enable JavaScript to view the comments powered by Disqus.

ARDUINO-DIY.COM - это информационный ресурс с лучшими инструкциями и туториалами по использованию контроллеров Arduino.

Источники: http://forum.abok.ru/index.php?showtopic=96680, http://developer.alexanderklimov.ru/arduino/analogreadserial.php, http://arduino-diy.com/arduino-potentsiometr-peremennyy-rezistor






Комментариев пока нет!

Поделитесь своим мнением