Подсчет импульсов
- Войдите на сайт для отправки комментариев
Здравствуйте Гуру! Я тут первый день и всего пару месяцев назад мне подарили Ардуино, так что просьба не пинать сразу.
Мне надо посчитать импульсы которые при помощи датчика холла генерируются при вращении закрепленного на оси двигателя постоянного тока магнитного диска. Как посчитать импульсы я уже нашел. Но мне надо чтобы при вращении мотора в одну сторону импульсы складывались, а затем, когда помеялась полярность питания двигателя и тот начал вращение в обратную сторону, то число импульсов стало бы уменьшаться. Например: счетчик на нуле, после подачи питания на двигатель, он досчитал до 1500. Запустили двигатель в обратную сторону и число стало уменьшаться пока опять не стало 0.
Возможно ли научить ардуино такой логике?
Спасибо заранее.
Возможно ли научить ардуино такой логике?
Возможно, если Вы научите Ардуино узнавать направление вращения оси двигателя. Это тоже возможно.
Ну вот, например, http://robocraft.ru/blog/electronics/594.html Там и про направление вращения есть.
То смотря какой у вас датчик холла.
Если тот который аналоговый то думаю можно как вы и написали выше фиксируюя изменение напряжения.
У меня есть цыфровые, вот такие [url=http://en.imagesia.com/img-20170607-180425_1e7fs][img]http://pimg.imagesia.com/fichiers/1e7/img-20170607-180425_imagesia-com_1e7fs_small.jpg[/img][/url] Но если бы я был уверен что аналоговый спасет ситуацию, то небыло бы особых проблем таких прикупить.
Статью прочитал, но дальше того пока незнаю как идти.
На данный момент считаю импульсы при таком скетче
#include <LiquidCrystal.h> LiquidCrystal lcd( 9,10,4, 5, 6, 7); int HollPin = 8; boolean lastButton = LOW; int pulses = 0; void setup() { pinMode(HollPin, INPUT); lcd.begin(16, 2); lcd.print("count pulses"); } void loop() { lcd.setCursor(2,1); lcd.print(pulses); if (digitalRead(HollPin) == HIGH && lastButton == LOW) { pulses = pulses + 1; lastButton = HIGH; } else { //lastButton = LOW; lastButton = digitalRead(HollPin); } }Добавь второй датчик на удалении градусов в 90 от первого - и смотри, какой раньше замечает поле, из взаимного расположения делай вывод о направлении вращения.