Всем привет)
Я новичок в мире Ардуино и мне нужна ваша помощь.
У меня робот с 4мя двигателями. На каждом двигателе, с другой стороны от колеса, установлены по 2 датчика Холла и круглый магнит на валу.
Помогите, пожалуйста написать код для измерения оборотов двигателя. Мне нужно только чтобы загорался LED, если хотя бы один или все двигатели не крутились.
//Назначаем пины датчиков и LED
#define PIN_Hall_A 31
#define PIN_Hall_B 38
#define PIN_Hall_C 49
#define PIN_Hall_D A1
#define PIN_LED 47
void setup() {
// Режим работы пинов
pinMode(PIN_Hall_A, INPUT);
pinMode(PIN_Hall_B, INPUT);
pinMode(PIN_Hall_C, INPUT);
pinMode(PIN_Hall_D, INPUT);
pinMode(PIN_LED, OUTPUT);
}
void loop() {
// Переменные
int Wheel_A = digitalRead(PIN_Hall_A);
int Wheel_B = digitalRead(PIN_Hall_B);
int Wheel_C = digitalRead(PIN_Hall_C);
int Wheel_D = digitalRead(PIN_Hall_D);
// Условие
if(Wheel_A == HIGH || Wheel_B == HIGH || Wheel_C == HIGH || Wheel_D == HIGH){
digitalWrite(PIN_LED, HIGH);
}
else{
digitalWrite(PIN_LED, LOW);
}
}
Как Вы планируете определять крутится двигатель или не крутится? По отсутствию срабатывания датчиков?
И сколько времени Вы намерены ждать “а не сработает ли датчик” прежде, чем определите, что двигатель не крутится? Микросекунду? Миллисекунду? Минуту? Час? Год? Век? В любом случае Вы не знаете, он у Вас “не крутится” или “крутится медленно и датчик не успел сработать”.
До тех пор пока не будет определено что такое “не крутится” (например, "не крутится" == "крутится не быстрее, чем X оборотов в минуту") задача будет оставаться неразрешимой.
Холлы вешаешь на прерывания, в них считаешь кол-во срабатываний. Потом, в теле лупа вычисляешь скорость. После сравниваешь вычисленную скорость с эталонной, как Петрович намекает, и принимаешь решение - зажигать светодиод или нет.
Простите, но не зная задачи - это пальцем в небо. Для каких-то задач секунда - очень много, а для каких-то и минуты мало.
А вот это …
блин, ну, Вы ж не первый раз замужем! У Вас есть “дюймометр”? Давайте рассуждать в понятиях имеющейся аппаратуры и говорить о срабатывании датчиков. Иначе мы ТС мозг совсем вынесем.