MP610
Датчик скорости с индикатором
Скорость под контролем!
Датчик скорости для Arduino выполнен на основе фотоэлектрического щелевого прерывателя. С помощью диска с прорезями, закрепляемого на оси электромотора или колеса, датчик вырабатывает импульсы, позволяющие определить скорость вращения мотора или колеса. Применяется при конструировании самоходных роботизированных шасси на основе Ардуино, других устройств, где есть необходимость в контроле скорости вращения. Датчик снабжен индикатором наличия выходных импульсов.
Нет в наличии
Датчик скорости для Arduino выполнен на основе фотоэлектрического щелевого прерывателя. С помощью диска с прорезями, закрепляемого на оси электромотора или колеса, датчик вырабатывает импульсы, позволяющие определить скорость вращения мотора или колеса. Применяется при конструировании самоходных роботизированных шасси на основе Ардуино, других устройств, где есть необходимость в контроле скорости вращения. Датчик снабжен индикатором наличия выходных импульсов.
Технические характеристики
Напряжение питания (В) | 5 |
Тип питания | постоянный |
Вес с упаковкой, г | 20 |
Особенности
- В датчике используется триггер Шмитта для получения стабильных выходных импульсов. Дребезг переключения отсутствует.
Дополнительная информация
Наглядно принцип действия датчика скорости можно пояснить следующей картинкой:
Сигнал с фототранзистора поступает на схему подавления возможного дребезга переключения, построенную на триггере Шмитта.
Выходные импульсы могут быть обработаны микроконтроллером, использующим внешние прерывания для подсчета количества импульсов за единицу времени, что позволяет вычислить скорость вращения.
Назначение выводов
VCC: | +5В |
GND: | Общий |
OUT: | Выходные импульсы |
Пример программы для Ардуино (датчик скорости подсоединен к выводу D2; программа выводит на терминал число положительных фронтов импульсов, поступающих с датчика за 1 сек.):
(Требуется скачать и установить библиотеку TimerOne: ссылка_1 или ссылка_2.)
//*****************************************************************
#include <TimerOne.h>
unsigned int counter=0;
void blink()
{
counter++;
}
void timerIsr()
{
Timer1.detachInterrupt(); //disable the timer1
Serial.print("Count: ");
Serial.print(counter,DEC);
Serial.println("impuls/s");
counter=0;
Timer1.attachInterrupt( timerIsr ); //enable the timer1
}
void setup()
{
Serial.begin(9600);
Timer1.initialize(1000000); // set a timer of length 1sec
attachInterrupt(0, blink, RISING); //INT0
Timer1.attachInterrupt( timerIsr ); // attach the service routine here
}
void loop()
{
; //do nothing
}
Комментарии