#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#include <Wire.h>
#define Poti_Input A0
#define LED_1 8
#define LED_2 9
int Poti_Rohwert;
int LB_dez ;
int HB_dez ;
String LB_bin;
String HB_bin;
unsigned long int millis_alt;
int LCD_Zeit = 2000;
// Strin Funktion ( Versuch!!! )
String conv2binString ( uint8_t bin_wert)
{
String Ausgabe_wert;
for(byte n = 7; n < 255; n--)
{
if(bin_wert & (1 << n))
{
Ausgabe_wert = Ausgabe_wert + "1";
}
else
{
Ausgabe_wert = Ausgabe_wert + "0";
}
}
return (Ausgabe_wert);
}
void setup()
{
// Bestimmung der Pin Modes
pinMode(LED_1, OUTPUT);
pinMode(LED_2, OUTPUT);
// LED Test
digitalWrite(LED_1, LOW);
digitalWrite(LED_2, LOW);
delay(1000);
digitalWrite (LED_1, HIGH);
digitalWrite(LED_2, HIGH);
delay(1000);
digitalWrite(LED_1, LOW);
digitalWrite(LED_2, LOW);
// Staurten des Serial Monitor Bus
Serial.begin(9600);
// Starten der LCD Verbindung
Wire.begin();
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Willkommen");
delay(2000);
// Starten des Millis Funktion
millis();
// LCD Leeren vom Start
lcd.clear();
}
void loop()
{
// Einlesen des Poti´s
Poti_Rohwert = analogRead(Poti_Input);
// LB_dez & HB_dez Umrechnung in dezimal
LB_dez = Poti_Rohwert & 0x0F;
HB_dez = Poti_Rohwert;
HB_dez = HB_dez >> 8;
HB_dez = HB_dez & 0xFF;
// COnvertierung AUsführung
LB_bin = conv2binString (LB_dez);
HB_bin = conv2binString (HB_dez);
// Ansteuerung der LED´s Auswertung HB
if(HB_dez == 0)
{
digitalWrite(LED_1, LOW);
digitalWrite(LED_2, LOW);
}
if(HB_dez == 1)
{
digitalWrite(LED_1, HIGH);
digitalWrite(LED_2, LOW);
}
if(HB_dez == 2)
{
digitalWrite(LED_1, LOW);
digitalWrite(LED_2, HIGH);
}
if(HB_dez == 3)
{
digitalWrite(LED_1, HIGH);
digitalWrite(LED_2, HIGH);
}
// Ausgabe LB & HB Auf Seriellen Monitor
Serial.print("High: ");
Serial.print(HB_dez);
Serial.print(" Low: ");
Serial.println(LB_dez);
// Alle 2 Sec Ausgabe auf LCD Display
if(millis()-millis_alt > LCD_Zeit)
{
lcd.setCursor(0,0);
lcd.print("Poti");
lcd.setCursor(0,1);
lcd.print(Poti_Rohwert);
lcd.setCursor(7,0);
lcd.print(HB_bin);
lcd.setCursor(7,1);
lcd.print(LB_bin);
millis_alt = millis();
}
delay(500);
}