Оптический датчик положения и Arduino
Оптические датчики положения широко используются у любителей робототехники. Состоит датчик из щелевого фотопрерывателя ,модуля с ИК-подсветкой, фототранзистора и диода установленых лицом друг к другу. Когда свет, излучаемый ИК светодиодом блокируется фотопрерывателем, запускается микроконтроллер.
Фотопрерыватель можно сделать из тонкого прозрачного листа распечатав изображение на лазерном принтере.
Если ширина щели 1 мм, ширина полосок и пробелов должна быть 2 мм. Если диск, к примеру, имеет 36 полос, то частота импульсов 36Hz, которые могут быть легко обработаны фотопрерывателем.
Arduino код
Подключите выход D12 на осциллограф и запустите кодер диск вручную, или с помощью низкооборотного двигателя постоянного тока. Если у вас нет осциллографа, смотрите на LED (D13), чтобы отметить импульсный выход. В этом случае, попробуйте включить диск медленно рукой, чтобы увидеть импульс.
Есть два основных способа, чтобы прочитать цифровой вход микроконтроллера; это «опрос» и «прерывание». При опросе, система считывает входа за все время внутри цикла. Основным недостатком этого метода является то, что трудно запускать другие функции. Контроллер только проводит обработку данных. Но, при использовании прерываний система может сделать выполнять другие функции без каких-либо затруднений.
Когда импульс поступает на вход, система прекращает его работу, переходит к подпрограмме прерывания, а затем возвращается к работе. Работая с прерываниями наиболее практична и проста.