#include <Servo.h>
#include <LiquidCrystal_I2C.h>

// Tehdään Servomuuttuja moottori
Servo moottori;
int moottoriArvo = 0;

// Ledinäyttö muuttuja, jossa on näytön osoite ja rivien x y määrät
LiquidCrystal_I2C ledinaytto(0x27,16,2);

int viive = 0; // Millisekunteja
bool ledipaalla = false;

void setup() {
  pinMode(2, OUTPUT);
  Serial.begin(115200);
  moottori.attach(3);         // moottorin pinni (PWM)
  ledinaytto.init();          // alustaa näytön
  ledinaytto.backlight();     // taustavalo
  ledinaytto.setCursor(11,1); // 
  ledinaytto.print("testi");  // tulosta teksti
}

void loop() {
  Serial.println("Sovellus käynnissä");

  if (viive > 500) {
    if (ledipaalla == true) {
      digitalWrite(2, LOW);
      ledipaalla = false;
    }
    else {
      digitalWrite(2, HIGH);
      ledipaalla = true;
    }

    viive = 0;
  }
  delay(20);
  viive = viive + 20;

  int potentiometrinArvo = analogRead(A0);
  Serial.print("Potentiometri: ");
  Serial.print(potentiometrinArvo);
  Serial.print(" ,Moottorin: ");
  Serial.println(moottoriArvo);
  moottoriArvo = map(potentiometrinArvo, 0, 1023, 0, 180);
  moottori.write(moottoriArvo);

  // Tulostetaan tekstiä näytölle
  ledinaytto.clear();               // Tyhjennetään näyttö
  ledinaytto.print("Moottori:");
  ledinaytto.print(moottoriArvo);
  ledinaytto.setCursor(0,1);        // Vaihdetaan rivi
  ledinaytto.print("Potikka:");
  ledinaytto.print(potentiometrinArvo);
}