Друзья, всем привет!
Такая задачка:
считываем частоту импульсов скоростным счетчиком, затем сравниваем компараторами на 3 условия (X<45Гц; 45<=X<=85; X=>85), то есть имеем 3 выхода с блоков компараторов, (1);(2);(3) - обозначим здесь эти условия так. частота со значения на значение резко не прыгает, а изменяется плавно и линейно.
При попадании частоты в диапазон от 0 до 45Гц мотор делает 300 шагов от нулевой точки(с этим я тоже разобрался), потом если частота от 45 до 85ГЦ, то мотор делает еще 300 шагов в туже сторону; если частота выше 85Гц - мотор делает еще 300 шагов в туже сторону.
Частота может нарастать, а может и падать. и в зависимости от работы компараторов (условия значения частоты) передаем количество шагов мотору с помощью цепочки аналоговых выключателей. с этим я разобрался, как передать значения шагов на мотор, но только если частота возрастает. Но мне надо, чтобы мотор делал шаги в обратной последовательности (3);(2);(1), если частота падает. То есть мне нужно заставить МК понимать растет ли частота или падает, чтобы подавать на DIR (драйвер А4988) соответственно 0 (если частота падает) или 1 (если растет), но можно и наоборот 1 и 0. также, частота может расти или падать на любом из условий.
Подскажите, как реализовать слежение в какую сторону изменяется частота и, соответственно, привязать это к лог 0 и лог 1, а то без этого слежения мотор всегда вращается в одну из сторон.