Ich habe mehrere Platinen mit 6 Taster und einem IR-Sensor bekommen. Diese möchte ich für eventuell spätere Projekte nutzen. Das ganz habe ich mit einem Arduion Uno verbunden (erst mal nur die Taster). Taster 1, 2, und 4 an A0 und Taster 3, 5 und 6 an A2.
Beim auslesen der Werte über den Seriellen Monitor haben die Taster folgende Werte
Taster1 564
Taster2 680
Taster3 768
Taster4 1002
Taster5 877
Taster6 543..
Jetzt versuche ich den Tasterstatus auf einem I2C LCD 16x2 anzuzeigen.
Mein Sketch läuft, aber nicht richtig. Die Anzeige des LCD bringt nicht die volle Helligkeit und sie flimmert.
Kann mir jemand hefen?
//von riesadiver1
// funktioniert nicht richtig,
#define ANALOG_PIN2 A2
#define ANALOG_PIN0 A0
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2);
//in “20, 4” ändern wenn 20x04 benutzt wird
bool button1;
bool button2;
bool button3;
bool button4;
bool button5;
bool button6;
void setup() {
// Serial.begin(9600);
lcd.init();
lcd.backlight();
pinMode(ANALOG_PIN0, INPUT);
pinMode(ANALOG_PIN2, INPUT);
}
void loop() {
if (analogRead(ANALOG_PIN0) > 560 && analogRead(ANALOG_PIN0) < 570) {
button1 = true;
lcd.setCursor(0, 0);
lcd.print("Button 1");
delay(100);
lcd.setCursor(0, 1);
lcd.print("gedrueckt");
delay(100);
//Serial.println(analogRead(ANALOG_PIN0));
} else {
(button1 = false);
}
if (analogRead(ANALOG_PIN0) > 670 && analogRead(ANALOG_PIN0) < 690) {
button2 = true;
lcd.setCursor(0, 0);
lcd.print("Button 2");
delay(100);
lcd.setCursor(0, 1);
lcd.print("gedrueckt");
delay(100);
//Serial.println(analogRead(ANALOG_PIN0));
} else {
(button2 = false);
}
if (analogRead(ANALOG_PIN2) > 760 && analogRead(ANALOG_PIN2) < 785) {
button3 = true;
lcd.setCursor(0, 0);
lcd.print("Button 3");
delay(100);
lcd.setCursor(0, 1);
lcd.print("gedrueckt");
delay(100);
//Serial.println(analogRead(ANALOG_PIN2));
} else {
(button3 = false);
}
if (analogRead(ANALOG_PIN0) > 990 && analogRead(ANALOG_PIN0) < 1010) {
button4 = true;
lcd.setCursor(0, 0);
lcd.print("Button 4");
delay(100);
lcd.setCursor(0, 1);
lcd.print("gedrueckt");
delay(100);
//Serial.println(analogRead(ANALOG_PIN0));
} else {
(button4 = false);
}
if (analogRead(ANALOG_PIN2) > 870 && analogRead(ANALOG_PIN2) < 885) {
button5 = true;
lcd.setCursor(0, 0);
lcd.print("Button 5");
delay(100);
lcd.setCursor(0, 1);
lcd.print("gedrueckt");
delay(100);
//Serial.println(analogRead(ANALOG_PIN2));
} else {
(button5 = false);
}
if (analogRead(ANALOG_PIN2) > 535 && analogRead(ANALOG_PIN2) < 550) {
button6 = true;
lcd.setCursor(0, 0);
lcd.print("Button 6");
delay(100);
lcd.setCursor(0, 1);
lcd.print("gedrueckt");
delay(100);
//Serial.println(analogRead(ANALOG_PIN2));
} else {
(button6 = false);
}
if ((button1 && button2 && button3 && button4 && button5 && button6) == false) {
lcd.clear();
}
}