Arduino + датчик скорости
Здравствуйте.
У меня возникла задача: с имеющегося вала механизма снять скорость и отобразить ее на лсд дисплее. Мой путь решения:
1. Скорость с вала снимать самодельным энкодером (диск с небольшими щелями по окружности + оптопара)
2. Обрабатывать данные с оптопары на Arduino
3. Обработанные данные отображать на лсд дисплее
Возникают вопросы:
1. как правильно подключить оптопару к Arduino?
2. возможно ли измерять скорость без внешнего кварца( ds1307)? Если да, то как.
Максимальная частота вращения механизма 30Гц.
Re: Arduino + датчик скорости
А что за автомобиль? импульсы скорости можно снять со штатного датчика .
Импульсы с датчика нужно подключить на вход с прерыванием и написать обработчик.
ds1307 это не кварц , а часы
Re: Arduino + датчик скорости
машина - электрокар:) Я имел ввиду что в ds1307 используется кварцевый генератор.
Переформулирую вопрос. Может ли Arduino засекать через какой промежуток времени приходят сигналы с датчика? как?
Re: Arduino + датчик скорости
Есть фукция micros()
Возвращает количество микросекунд с момента начала выполнения. Значение переполняется и сбрасывается на ноль, приблизительно через 70 минут.
(в одной секунде 1 000 миллисекунд и 1 000 000 микросекунд)
Re: Arduino + датчик скорости
А приблизительный пример скетча можете написать? Чтобы функция считала время между прерываниями.
Re: Arduino + датчик скорости
Вот пример
PHP код:
#define PinA 2
static boolean output = HIGH;
void setup()
{
pinMode(PinA, INPUT);
digitalWrite(PinA, HIGH); // подключить подтягивающий резистор
attachInterrupt(0, int_on, CHANGE); // настроить прерывание interrupt 0 на pin 2
}
void loop()
{
//........
}
// обработка прерывания
void int_on()
{
digitalWrite(13, (output==HIGH) ? output=LOW : output=HIGH);
}
Re: Arduino + датчик скорости
А как же узнать время между прерываниями? как задействовать 16разрядный внутренний таймер Arduino?
Re: Arduino + датчик скорости