Как я могу увеличить целое? (Обтекание датчика угла 0-360) - PullRequest
0 голосов
/ 11 июня 2019

У меня есть датчик угла наклона 0-360, это датчик абсолютного положения. Значение может считываться только 0-360, затем начинается с 0 за 360. Значения ниже 0 возвращаются к 360.

Я использую этот датчик в приложении с передаточным отношением 17: 1 (1 поворот рулевого колеса в автомобиле = 17 ~ 360 градусов поворотов, видимый датчиком). Рулевое колесо может несколько раз повернуть замок, чтобы заблокировать.

Датчик угла не всегда считывает углы линейно (0,1,2,3 ... 360,0), так как обновления угла могут пропускать числа на основе оборотов в минуту (но, к счастью, не пропустит весь оборот) , Поэтому я не могу написать код для увеличения / уменьшения на основе абсолютного пересечения 0/360.

Я изо всех сил пытаюсь написать некоторый код, чтобы справиться с циклом, так как мне нужно «читать» углы, превышающие «360 градусов».

Многие исследования по значениям обтекания для Arduino относятся ко времени, прошедшему с момента переполнения загрузки. Это не относится к моему заявлению.

Цель - переменная, которая содержит общее показание датчика в виде целого числа со знаком.

1 Ответ

0 голосов
/ 11 июня 2019

Во-первых, 0 ° и 360 ° - это один и тот же угол. Разве это не от 0 до 359 °?

Почему бы не расширить обнаружение пересечения нуля следующим образом:

angle += sensor

If 240<=lastsensor<=359 and 0<=sensor<=120:
    angle +=360
If 240<=sensor<=359 and 0<=lastsensor<=120:
    angle -= 360
lastsensor=sensor
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...