Помощь в коде. (Датчик холла)
- Войдите на сайт для отправки комментариев
Чт, 13/04/2017 - 09:41
Добрый день, хочу сделать блокировку реверса двигателя, чтобы небыло лишних токов при его реверсирование, Решил применить датчик холла и магнит. Даже нашел подходящий скетч, только вот проблемма в том, что не могу дописать пару строчек, чтобы реле блокировало переключатель, пока двигатель вращаеться.
Логика следующая, если на датчик холла поступает сигнал привышающий к примеру 10 об/мин. реле размыкает свои контакты и блокирует кнопку, как обороты упали ниже 10 об/мин, контакты замыкаются и реверс разрешен.
Как говориться помогите кто чем может) Что-то всю голову сломал)))
За основу брал этот код, он рабочий в монитор выводит показания.
unsigned long lastflash; int RPM; void setup() { Serial.begin(9600); //открыть порт attachInterrupt(0,sens,RISING); //подключить прерывание на 2 пин при повышении сигнала pinMode(3, OUTPUT); //3 пин как выход digitalWrite(3, HIGH); //подать 5 вольт на 3 пин } void sens() { RPM=60/((float)(micros()-lastflash)/1000000); //расчет lastflash=micros(); //запомнить время последнего оборота } void loop() { if ((micros()-lastflash)>1000000){ //если сигнала нет больше секунды RPM=0; //считаем что RPM 0 } Serial.println(RPM); //вывод в порт delay(50); //задержка для стабильности }
Как говориться помогите кто чем может) Что-то всю голову сломал)))
voviklost, Вы лучше почините голову и напишите эту несчастную строчку сами. Задача для пятикласника на уроке информатики. Даже неудобно как-то. Или Вы и есть пятикласник?
Теперь чувствую себя пятикласником))) Проблема у меня в чем возникла, я пока в железе это не собирал, пользовался эмулятором, за место датчика холла ставил источник питания с регулеровкой скважности импульсов. На некоторых моментах при работающем двигателе когда блокировка должна быть включена, она самопроизвольно отключалась, и не выключалась до перезагрузки схемы. Возможно это косяк эмулятора. но меня это насторожило.
Вот код который я написал:
Ну, молодец! И зачем было вопросы задавать, если сами умеете?
Собрал все в железе, лагов пока не возникло, завтра установлю все стационарно и буду полноценно прорабатывать. А вопрос возник из за того, что я пол дня в эмуляторе наблюдал непонятные включения непонятно отчего происходящие. Возможно это из за того, что вместо датчика стоял генератор импульсов. Пока вопрос остаётся загадкой для меня(
Уважаемые знатоки, на данный момент код превратился вот в это:
Вместо кнопки используется джойтик с фиксацией, возникла проблемма следующего характера, при резком переключение джойтика возникают помехи которые я так и не смог убрать в железе, и блокировка не работает. Есть идея добавить в строчку:
Зедержку, чтобы при отключение кнопки помехи проходили сами собой. Пробывал delay, но он останавливает скетч и происходит бред. Прошу помоши более грамотных форумчан.
возникают помехи которые я так и не смог убрать в железе,
Есть 100500 способов убрать дребезг аппаратно и ещё 100500 - программно.
Вот хорошая статья о том как это делается и аппаратно, и программно.