Я тоже хотел предложить так считатьи еще: допустим пришло всего 90 импульсов, тогда тахометр не выдаст ничего, имхо надо по времени ориентироваться. например раз в полсекунды выдавать на гора кол импульсов
Я тоже хотел предложить так считатьи еще: допустим пришло всего 90 импульсов, тогда тахометр не выдаст ничего, имхо надо по времени ориентироваться. например раз в полсекунды выдавать на гора кол импульсов
попробовал с кнопкой, вроде работает) вечером буду к скутеру крепить
PHP код:
int potPin = 2; // Порт для провода от датчика холла
int now = 0;// последнее значение сигнала с датчика
long time = 0; // для сохранения времени начала счета импульсов
int count = 0; // колличество импльсов
int val; //временная переменная для считывания сигнала с датчика
int flg_push; //флаг прихода импульса
void setup()
{
Serial.begin(9600);
time = millis();
}
void loop()
{
//будем считать, что импульсы очень быстрые ;)
//считываем данные
val = digitalRead(potPin);
//если пришел импульс
if ((val == HIGH) && (flg_push == 0)) {
//флаг ставим в 1
flg_push = 1;
}
//если импульс ушел, то увеличиваем счетчик
if ((val == LOW) && (flg_push == 1)) {
//флаг ставим в 0
flg_push = 0;
count++;
}
//если прошло 30 милисекунд
now = (millis() - time) / 500;
if (now == 1){
//выводим кол импульсов из расчета (об/мин)
Serial.println (count * 120);
//сбрасываем начальный счетчик
time = millis();
//сбрасываем количество импульсов
count = 0;
}
}
и как я мог протупить с двойным равно))))) терь стабильнее стало)))) единственное обороты не правильно показывает)))
sirik, как попробуешь свой метод отпишись?!?Моим методом он больше 2500 не показывает
Так ты мне не ответил что за значение 150000
ааа... ну кароч, полученный результат 25 оборотов за скокота милисекунд делим на количество мимллисикунд чтобы привести к скокота оборотов за 1 мсек, патом все это дело переводим в об\мин.
для этого перемножаем (50 импульсов, 1000 мсек в секунде, 60 сек в минуте и делим на 2, т.к. 1 оборот - 2 импульса))и делим на полученное время разница)
получается 1500000... нолиг забыл дописать) но чота в итоге это криво работает)))
кстати спс за помощ))
не работает( мб я не правильно ключ собрал, вот он:
пробовал без R1, точнее ставил его последовательно со светодиодом на коллектор, он мерцает правильно, но вот по вышеизложенной схеме ничего не приходит на выход 2( мб кто-то объяснит почему?
Правильнее всего будет если использовать оптопару
схемку, хоть приблизительную можно?
Только не забудь внутренний подтягивающий резистор включить.
а точно нужен именно тот провод?!? попробуй все к стоку верни и прозвони чтобы узнать како провод что дает... или светодиод поставь к каждому проводу и заведи скутер, и светодиод должен начать мерцать, типо горит када есть искра тухнет када нет искры
Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)