Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

Roman1984
2017-04-05 00:56:40

Ну так и добавьте в конец функции loop() строку if(RMP == 0) digitalWrite(4, HIGH); else digitalWrite(4, LOW);

Mundroys
2017-04-03 14:31:22

Всем доброго времени суток... есть такая вот задача с 6 датчиков холла считывать обороты. Если на одном из них обороты равны нулю нужно подать сигнал на любой выход. Кто хорошо понимает в Ардуино скажите как правильно оформить хотя бы один сегмент кода.. для одного датчика... Нашел часть кода которая считает обороты но вот привязать результат ноль к выходу какому либо не могу..

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);  //задержка для стабильности
}
Вот мне нужно что бы в конце было  например что когда RPM=0 подавался сигнал типа digitalWrite(4, HIGH);
Заранее спасибо

Підвал форуму