Структура корпуса LabVIEW и ШИМ

У меня возникла проблема с LabVIEW; Я работаю над этой простой программой, которая является частью более крупного школьного проекта. По какой-то причине часть его не выполняется должным образом. Проще говоря, зеленый светодиод должен загореться, когда температура ниже 20, а красный светодиод должен загореться, когда она выше 30 (это работает до этой части), теперь хитрая часть, вентилятор должен включаться, когда температура превышает 35, при использовании ШИМ для увеличения скорости вентилятора, пока температура растет. Дело в том, что вентилятор вообще не включается! Для этого я использовал Scaling and Mapping внутри структуры корпуса, я установил его на 0, когда температура составляет 35, и на 255, когда она составляет 45 градусов.

введите здесь описание изображения


person Le_FryingPan    schedule 14.05.2015    source источник
comment
Добро пожаловать в StackOverflow! Если у вас возникли проблемы с кодом, вы, скорее всего, получите ответ, если сможете показать, что у вас уже есть, что не работает и как, и что вы пробовали. Если проблема связана не с кодом, а со схемой, вы должны опубликовать ее на сайте обмена стеками электротехники: electronics.stackexchange.com   -  person Schlaus    schedule 14.05.2015
comment
Здравствуйте, я не знаком с функциями Android для ввода-вывода, который вы используете. Вы уверены, что генерируете PWM , возможно ли, что вы продолжаете записывать одно и то же значение на каждой итерации вашего цикла в ввод-вывод, что означает, что ваш сигнал не меняется?   -  person mac671    schedule 14.05.2015
comment
Пробовали ли вы начать с управления вентилятором с самого начала: написать какой-нибудь код, который только настраивает выход ШИМ на указанный вами уровень, без петли? Это работает? Если это так, добавьте другие функции, пока не найдете, где они перестают работать. Вместо того, чтобы приводить выходной сигнал «Масштабирование и сопоставление» к числу на входе Arduino VI (показан красной точкой), попробуйте явно преобразовать его в DBL и проверьте, что полученное значение является таким, каким оно должно быть. Также, возможно, переместите ВП конфигурации вывода за пределы цикла - вам нужно настроить их только один раз.   -  person nekomatic    schedule 15.05.2015


Ответы (1)


Вещи, которые вы, возможно, захотите изменить:

  1. Поместите Set Digital Pin Mode.vi перед циклом while, потому что вы не меняете режим вывода во время выполнения кода.
  2. Вам нужен только один Close.vi, так как вы закрываете только один Arduino Resource
  3. Используйте shift registers, чтобы сохранить содержимое проводника ошибки между итерациями цикла.
  4. По возможности избегайте Express VIs (VI с синей рамкой)

Пример для ШИМ (протестировано с Mega 2560):

Я думаю, что моя версия работает, а ваша нет, потому что что-то не так с масштабированием. Я не использовал Scaling and Mapping, вместо этого я масштабировал сигнал с помощью основных математических операций.

Передняя панель Блок-схема

person KasparJohannes    schedule 30.03.2016
comment
Я не думаю, что с Express VI что-то не так, как правило, вам просто нужно понять, что они делают - так же, как и для любой другой функции. В этом случае я думаю, что вы правы в том, что ОП должен проверить, действительно ли вывод Scaling and Mapping дает им значение, которое они хотят после принуждения. - person nekomatic; 13.07.2016