// Тестовые углы и смещение
float offset = 150.0f; // 150° на второй шкале = 0° на первой
float testAngles[] = {-180.0f, -90.0f, 0.0f, 90.0f, 180.0f};
// Преобразование угла из [-180, 180] в [0, 360] с учетом смещения нуля
float convertAngleWithOffset(float angle, float offset) {
// Применяем смещение
float result = angle + offset;
// Нормализуем в диапазон [0, 360]
if (result >= 360.0f) {
result -= 360.0f;
} else if (result < 0.0f) {
result += 360.0f;
}
return result;
}
void setup() {
Serial.begin(115200);
Serial.println("Angle Conversion with Offset:");
Serial.println("[-180...+180] -> [0...360]");
Serial.print("Zero offset: ");
Serial.println(offset);
Serial.println("---------------------------");
for (int i = 0; i < sizeof(testAngles) / sizeof(testAngles[0]); i++) {
float converted = convertAngleWithOffset(testAngles[i], offset);
Serial.print("Zero offset: ");
Serial.print(testAngles[i]);
Serial.print(" -> ");
Serial.println(converted);
//Serial.printf("%6.1f° -> %6.1f°\n", testAngles[i], converted);
}
}
void loop() {
}