Как включить и выключить светодиод на основе входного сигнала от датчика движения PIR? - PullRequest
0 голосов
/ 04 мая 2019

Я пытаюсь включить и выключить светодиод с помощью Arduino Uno. Я использую датчик движения PIR в качестве входа. Я хочу, чтобы светодиод выключался, когда ИК-датчик ничего не обнаруживает. Однако после считывания значения с контакта 12 он остается включенным, даже если ИК-датчик ничего не обнаруживает.

Мой код:

value=readDigitalPin(a,'D12')

while value==1
      writePWMVoltage (a, 'D6', 3)
end

while value==0
      writePWMVoltage (a, 'D6', 0)
end

Ответы [ 3 ]

0 голосов
/ 13 мая 2019

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

После добавления понижающего резистора снова запустите исходный код.

0 голосов
/ 29 мая 2019

Поскольку есть тег MATLAB и некоторый синтаксис, я предполагаю, что вы используете пакет поддержки MATLAB для Arduino.Если это так, попробуйте следующее:

while true 
    value=readDigitalPin(a,'D12');
    if value==1
       writePWMVoltage (a, 'D6', 3)
    else
       writePWMVoltage (a, 'D6', 0)
    end
end

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

0 голосов
/ 06 мая 2019

Try

value=readDigitalPin(a,'D12') {
if (value==1)
      writePWMVoltage (a, 'D6', 3)
}
else {
      writePWMVoltage (a, 'D6', 0)
}
end

Предполагается, что единственными возможными возвращаемыми значениями readDigitalPin являются 0 и 1. Если нет, то замените

else {

на

else if(value==0) {

Другие возвращаемые значения будут игнорироваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...