Здравствуйте, господа! Сразу оговорюсь, что я не большой специалист в программировании, конструировании и электронике, потому прошу за глупые вопросы не пинать. Ситуация такая: есть некий станок, основная задача которого - вращение. У этого станка была система управления, построенная в 90е годы и совершенно мне не понятная. Передо мной стоит задача синхронизировать вращение этого станка и шагового двигателя. Что бы эту задачу решить, мне нужно знать скорость вращения двигателя станка, что бы задать необходимую скорость шаговому двигателю. На валу станка стоит фотодатчик. У меня получилось к нему подключить ардуино и считать с него данные в ардуино. Но они считываются как-то странно. Код (C++): float rounds = 0.0; void setup() { pinMode(13, OUTPUT); attachInterrupt(INT0, rpm_count, FALLING); Serial.begin(9600); } void loop() { Serial.println(rounds); } void rpm_count() { rounds = rounds + 0.1; digitalWrite(13, !digitalRead(13)); } Если достаточно быстро крутить вал (ну 1000 об/мин), к примеру, то значение rounds в какой-то момент начинает приобретать еще и сотые доли. Ну т.е. вот часть данных из сериал монитора: Объясните нубу, пожалуйста, почему если я прибавляю только десятые, вылезают сотые? Заранее спасибо!
Вчера еще поэкспериментировал и выяснил, что это не зависит от скорости вращения. При любой скорости, когда счетчик переваливает за 232.0 появляются сотые.