#include <LiquidCrystal.h>

// Initialisiere das LCD mit den Pins, die du verwendest
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const int analogPin = A0; // Der Pin, an dem das Signal eingelesen wird

// Spannungsbereich und Winkelbereich
const float minVoltage = 3.3;
const float maxVoltage = 4.4;
const int minAngle = -65;
const int maxAngle = 65;

void setup() {
  lcd.begin(16, 2);  // Definiere die Größe des LCDs
  Serial.begin(9600); // Starte die serielle Kommunikation
}

void loop() {
  int sensorValue = analogRead(analogPin); // Lese den Analogwert
  float voltage = sensorValue * (5.0 / 1023.0); // Wandle in Spannung um

  // Interpoliere die Spannung zum Winkel
  float angle = (voltage - minVoltage) * (maxAngle - minAngle) / (maxVoltage - minVoltage) + minAngle;

  // Stelle sicher, dass der Winkel immer positiv ist
  angle = abs(angle);

  // Zeige den Winkel auf dem LCD an
  lcd.setCursor(0, 0);
  lcd.print("Schräglage: ");
  lcd.setCursor(0, 1);
  lcd.print(angle);
  lcd.print(" Grad");

  delay(1000); // Warte eine Sekunde
}