сколько ик приёмников можно подключить к ардуино уно, правильно ли я думаю что их можно подключить к любому пвм пину коих там 6 шт
ИК приёмники стабильно будут работать, если приём будет вестись в асинхронным режиме. Сделать это проще всего с помощью аппаратных прерываний. Аппаратные прерывания в Arduino Uno поддерживаются для 2 и 3 порта. А PWM тут ни при чем.
Спасибо за информацию. Но есть одно но. В таблице векторов прерываний есть векторы INT0, INT1, PCINT0, PCINT1, PCINT2. Прерывания INT0 и INT1, срабатывают на 2 и 3 пин соответственно. А вот остальные PCINTx -- срабатывают на группу пинов (0..7, 8-14, 16-23). Реализация асинхронного ввода на таких пинах может стать непростой задачей. Поэтому можно сделать вывод, что без особых проблем можно подключить два ИК приемника, а остальные с применением "бубна".
Это в теории -- все гладко, а на практике нужно понимать, что эти ИК приемники должны будут принимать. В случае с последовательными данными, важными характеристиками будут: скорость передачи данных и способ кодирования данных. Может сложиться такая ситуация, что Arduino не будет успевать принимать данные одновременно с нескольких ИК приемников. Например, пульты ДУ (по крайней мере те, с которыми проводил эксперименты) выдавали сигнал, который кодировался RC5 -- "1" передавалась как переход с 0 в 1, "0" -- с 1 в 0. Каждый бит передавался парой 01 или 10 в течении 1.778 мс, что приводило к запуску обработчика прерывания с частотой ~562 кГц. Учитывая, что Arduino Uno работает на 16 МГц, получается, что между прерываниями происходит ~28 тактов, часть из которых будет использовано обработчиком прерывания для сохранения данных, а остаток для работы основной программы. (В цифрах мог напутать, скажем так -- не профи, мануал по A328P только начал изучать). Вот, исходя из всего выше сказанного, и предполагаю, что без "бубнов" не обойтись. Есть сомнения, что даже при использовании только INT0 и INT1, при одновременном приеме последовательных данных, можно гарантированно обеспечить корректный прием данных. PS: все сказано исходя из предположения, что ИК приемники не имеют собственных буферов.
Длительность такта: 1/16000000 = 0,0000000625 с = 62,5 нс. 1,778 мс = 0,001778 с. 0,001778 / 0,0000000625 = 28448 тактов, целая вечность А если производительности будет хватать впритык, то лучше взять более шустрый контроллер.
есть задумка собрать лазертаг тир, с уточками на серве, поэтому надо хотябы подключить 5 ик приёмников излучатель будет http://poligon64.ru/lasertag-equipment/product/60-l10emitter минимальный диаметр пятна 5мм то что надо, 1 ардуина будет получать сигнал другая отправлять через ик лазер в каждую утку засунуть 1 ик приёмник + 2 светодиода ( 1 горит постоянно до паподания 1 при попадании, после срабатывает серва утка падает) вот бы ещё звук выстре на пьезе прикрутить в wav формате