Обнаружение сигнала, поступающего от другого датчика движения, который запускает затвор камеры
У меня есть датчик движения (используемый для захвата камеры), который посылает сигнал на камеру, чтобы вызвать затвор. Я пытаюсь использовать Arduino для включения света на 10 секунд, получая сигнал от датчика движения. Я знаю, что есть способы использовать датчик движения, который можно использовать с Arduino. Однако мне нужно знать, как я могу обнаружить сигнал, поступающий от датчика, чтобы подать его на Arduino. Я попытался подключить кабель от датчика к A0, написал простой код для печати значения A0, но последовательный монитор Arduino ничего не показывает.
@user70958, 👍1
Обсуждение2 ответа
Лучший ответ:
Почти все кабели затвора камеры представляют собой простые переключатели. Они представляют собой разомкнутую цепь до тех пор, пока вы не захотите нажать на затвор, а затем переключатель закроется. Напряжение на спуске затвора отсутствует, и поэтому аналоговый вывод ничего не может обнаружить.
Многие камеры имеют полупрессованный переключатель затвора, который активирует измеритель освещенности / автофокус, а затем второй переключатель, который закрывает затвор.
Для простого спуска затвора RCA-штекера или моно-3,5-мм спуска затвора это, вероятно, просто простой однополюсный переключатель. Подсоедините один провод от спуска затвора к цифровому контакту, а другой - к земле. Установите контакт в INPUT_PULLUP и дождитесь, пока он опустится. Когда он опускается, затвор нажимается.
Имейте в виду, что модулированная ИК-ловушка затвора будет немного медленной. Вероятно, он не будет ловить предметы, такие как птицы, летящие с высокой скоростью, пока птица не пройдет мимо точки, куда направлена ловушка. Для этого вам понадобятся лазерный луч и быстрый фототранзистор. Они могут быть достаточно быстрыми и точными, чтобы измерить скорость пули. (Хотя вам нужно читать регистры портов напрямую, чтобы получить достаточно быстрый ответ для этого. digitalRead()
работает слишком медленно.)
Спасибо за отличный совет, который помог мне обнаружить сигнал. Теперь я вижу, что выходные данные меняются с 1 на 0, когда. Это именно то, что мне было нужно., @user70958
Если я ответил на ваш вопрос, то вы должны принять мой ответ. (установите флажок.), @Duncan C
Извините, что я печатаю это здесь, потому что у меня недостаточно репутации, чтобы комментировать. Как бы то ни было, большинство датчиков движения используют технологию PIR, поэтому лучший способ - подключить вывод сигнала PIR от вашего датчика к любому аналоговому выводу вашего arduino и проверить, какой сигнал вы получаете, когда окружающая среда простаивает и когда обнаруживается движение. сенсорные крышки тоже (ROI). Это расскажет вам кое-что,
- Работает датчик или нет.
- Если значение датчика аналоговое или цифровое
- Если датчик активен высокий или низкий
- Метод проб и ошибок по фактической рентабельности инвестиций
После всего этого вы можете написать свой код вокруг него.
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
какой датчик движения?, @jsotola
Я предполагаю, что датчик движения - это какой-то сторонний продукт, который не предназначен для использования с Arduinos. В этом случае вам необходимо выяснить, какие уровни напряжения и тип сигнала использует датчик. Для Uno напряжение должно быть в диапазоне 5 В. Тип, скорее всего, является цифровым сигналом. Вам нужно выяснить, является ли он активным низким или активным высоким (активным означает состояние, в котором срабатывает датчик). Amd если последовательный монитор ничего не показывает, значит, либо ваш код, либо настройка последовательного монитора неверна. Пожалуйста, изучите это, а затем предоставьте дополнительную информацию в своем вопросе, @chrisl
Какой датчик движения? Какой код?, @ocrdu
Спасибо за информацию. Вот датчик: [Монитор следа разведчика](https://cognisys-inc.com/scout-camera-trapping/scout-standard.html ) Это очень продвинутый датчик движения, который использует модулированный ИК-луч, и единственный способ для меня обнаружить любой сигнал (не разбирая дорогостоящее оборудование по частям) - это увидеть, что исходит от кабеля затвора 3,5 мм. Самый простой код для печати:
`настройка void() { Serial.begin(9600);} пустой цикл() { Serial.print("Значение: "); Serial.println(аналоговое чтение(0)); задержка(1000); }
`, @user70958Пожалуйста, не пишите код в комментариях. Вам нужно добавить всю эту информацию в свой вопрос, отредактировав его. Также: вы пытаетесь считывать данные с вывода 0, который является последовательным интерфейсом. Вам нужно прочитать из A0, @chrisl
Это верно. Я использовал A0., @user70958
Кроме того, если мультиметр настроен на сопротивление 20 ком, я вижу некоторое увеличение примерно до 16 Ком, @user70958
Если вы используете датчик движения HC-SR501, смотрите [этот учебник] (https://arduinogetstarted.com/tutorials/arduino-motion-sensor ), @Rozona Zoro