Датчик скорости вращения FC-03 Модуль датчика скорости вращения или линейного перемещения. Тип модуля FC-03. Он предназначен для контроля механических параметров движущихся частей различных механизмов бытового и обучающего назначения. При установке в базовые платформы малой робототехники позволяет собирать системы управления двигателями и наладить управление движением объекта.
Установка датчика скорости вращения FC-03 на шасси колесного робота.
Характеристики Питание 3,3 – 5 В
Ширина просвета для диска с прорезями 5 мм
Размеры модуля 38 x 14 x 7 мм
Крепежное отверстие под винт 3 мм
Контакты FC-03 
Контакты промаркированы на плате.
VCC – питание.
GND – общий провод, отрицательный полюс питания.
DO – выход импульсного сигнала.
AO – непосредственный выход от оптопары ITR9608.
Принцип действия Воспринимающий элемент модуля – оптическая пара
ITR9608. В одном выступе корпуса расположен инфракрасный светодиод, направленный на фототранзистор находящийся в другом выступе. Если в щель между выступами внести непрозрачную пластину, то ИК излучение от светодиода перекрывается и фототранзистор закрывается. Такой компонент иногда называют фотопрерывателем, но он только фиксирует прерывание светового потока. Как показано на схеме с эмиттера транзистора сигнал поступает в схему прибора.
Свет преграждает пластина, закрепленная на подвижной части контролируемого механизма. С помощью датчика определяют перемещение в крайние положения двигающейся плоскости, когда связанный с ней элемент конструкции входит в датчик. Измеряют параметры вращения различных механических деталей. Так происходит преобразование механических параметров в электрические величины и далее в программные значения.
Датчик скорости вращения FC-03 используется для измерения частоты вращения. Определить с его помощью направление вращения нельзя. На валу двигателя или шестерни редуктора устанавливается диск с отверстиями. Оптопара модуля имеет прорезь шириной 5 мм. При вращении диска, как изображено на анимации, постоянно в прорези чередуются отверстия и участки пластины. Датчик преобразует чередование элементов диска в электрические импульсы. Электроника модуля делает сигнал датчика пригодным для восприятия цифровыми логическими микросхемами или микроконтроллером.

Сигнал от ITR9608 поступает на вход компаратора
LM393, с его выхода на контакт D0 и индикаторный светодиод поступает цифровой сигнал состоящий из высоких и низких логических уровней. На выход A0 сигнал идет непосредственно от ITR9608 без преобразования в логические уровни. Применение компаратора LM393 позволяет получить ровные фронты импульсов и немного увеличить токовую нагрузку выхода датчика, установить в схеме светодиод показывающий состояние выхода.
Индикация На плате распложено 2 светодиода. Один показывает включение датчика скорости вращения FC-03, другой отсутствие преграды в датчике. При первом ознакомительном включении оба светодиода должны светиться. При внесении металлической пластины в свободное пространство прерывателя один светодиод должен погаснуть.
Применение С помощью датчика можно измерять не только скорость вращения, ускорение, но и расстояние пройденное колесным роботом, фиксировать отработанный ресурс двигателя. Особенно важно контролировать скорость вращения колес когда каждое колесо приводится в движение своим двигателем. Для прямолинейного движения скорости вращения всех колес должны быть равны, при поворотах подчиняться алгоритму системы управления.

При вращении диска известное количество отверстий пересекает щель датчика за один оборот. Подсчитывая количество отверстий можно определить 1 оборот колеса или, например 15,5 оборотов. Измеряя количество оборотов в единицу времени, мы получаем частоту вращения колеса, а отсюда скорость движения объекта. Опираясь на сигналы от датчика и имея точное значение временных интервалов, прибор вычисляет параметры движения. Здесь актуально использование микроконтроллера.
Следующая программа для Arduino позволяет определить количество оборотов в минуту и выдает результаты в окно последовательного терминала.
#define PIN_DO 2 // Установка контакта используемого в Arduino
volatile unsigned int pulses;
float rpm;
unsigned long timeOld;
#define HOLES_DISC 15
void counter()
{
pulses++;
}
void setup()
{
Serial.begin(9600);
pinMode(PIN_DO, INPUT);
pulses = 0;
timeOld = 0;
attachInterrupt(digitalPinToInterrupt(PIN_DO), counter, FALLING);
}
void loop()
{
if (millis() - timeOld >= 1000)
{
detachInterrupt(digitalPinToInterrupt(PIN_DO));
rpm = (pulses * 60) / (HOLES_DISC);
Serial.println(rpm);
timeOld = millis();
pulses = 0;
attachInterrupt(digitalPinToInterrupt(PIN_DO), counter, FALLING);
}
}
Результаты работы программы.