#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27,16,2);
const int ledb = 9;
const int ledg = 8;
const int ledr = 7;
const int rgbr = 10;
const int rgbg = 11;
const int rgbb = 12;
const int poti = A0;
const int schalterh = 4;
const int schalterl = 6;
int flag = 0;
int hel = 0;
int i = 0;
int prozent;
void setup() {
pinMode(ledb, OUTPUT);
pinMode(ledg, OUTPUT);
pinMode(ledr, OUTPUT);
pinMode(rgbr, OUTPUT);
pinMode(rgbg, OUTPUT);
pinMode(rgbb, OUTPUT);
pinMode(schalterh, INPUT_PULLUP);
pinMode(schalterl, INPUT_PULLUP);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Motorsteuerung");
lcd.setCursor(0,1);
lcd.print("Kamal");
delay(2000);
lcd.clear();
}
void loop() {
if(digitalRead(schalterh) == LOW) flag = 1;
if(digitalRead(schalterl) == LOW) flag = 0;
if (flag == 0)
{
lcd.setCursor(0,0);
lcd.print("Motor Aus");
lcd.setCursor(0,1);
lcd.print(" ");
digitalWrite(ledr, LOW);
digitalWrite(ledb, HIGH);
digitalWrite(ledg, LOW);
setrgb(LOW, LOW, LOW);
}
if (flag == 1)
{
i = analogRead(A0);
prozent = map(i, 0,1023,0,100);
hel = map(i, 0,1023,0,255);
analogWrite(ledg, hel);
digitalWrite(ledr, HIGH);
digitalWrite(ledb, LOW);
if((prozent ==0) && (prozent <=50))
setrgb(HIGH,HIGH, LOW);
if((prozent >=51) && (prozent <=70))
setrgb(HIGH,LOW, HIGH);
if((prozent >=71) && (prozent <=100))
setrgb(LOW,HIGH, HIGH);
lcd.setCursor(0,0);
lcd.print("Motor Ein");
lcd.setCursor(0,1);
lcd.print("Drehzahl:");
lcd.print(prozent);
lcd.print("% ");
}
}
void setrgb(int valrgbr, int valrgbg, int valrgbb)
{
digitalWrite(rgbr, !valrgbr);
digitalWrite(rgbg, !valrgbg);
digitalWrite(rgbb, !valrgbb);
}