Arduino lcd i2c Frage?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

kann deinen code grad nicht öffnen, häng ihn doch mal als .txt an. Das mit breadboard und jumper kabeln ist immer so ne sache. Oft gibt es wackler oder schlechte Verbindungen die zu Stromunterversorgungen führen oder instabilen Spannungen. Würde alles mal ordentlich verkabeln und die Kabelstrecken vor allem so kurz wie möglich halten da wir hier Spannungen von 3.3 und 5V haben. Lange Strecken geben da oft Probleme.

Woher ich das weiß:Berufserfahrung – Backend Developer
Rotpandaki  14.05.2023, 13:06

Das ist der Code. einfach ohne Kommentare

#include <LiquidCrystal.h>

#include <IRremote.h>

 

#include <LiquidCrystal_I2C.h> // Library for LCD

LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 column and 2 rows

const byte IR_RECEIVE_PIN = 2;

int anaus = 0;

int Blue = 10;

int Red = 6;

int Green =9;

int p=1000;

int brightness1a = 150;

int brightness1b = 150;

int brightness1c = 150;

int dunkel = 0;

int farbwechsel = 0;

int RedB = 8;

int GreenB = 12;

int BlueB = 11;

int RedState = 0;

int button = 0;

int farbe = 0;

String colorstate = "2";

String color = "N/A";

String ir_code_public = "N/A";

#define Red 6

#define Green 9

#define Blue 10

#define MAX_INTENSITY 8

#define MIN_INTENSITY 0

#define MAX_TARGETCOLOR 7

void setup()

{

   lcd.init();

  lcd.backlight();

   Serial.begin(115200);

   Serial.println("IR Receive test");

   IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);

   pinMode(Red, OUTPUT);

   pinMode(Green, OUTPUT);

   pinMode(Blue, OUTPUT);

   pinMode(RedB, INPUT);

   pinMode(GreenB, INPUT);

   pinMode(BlueB, INPUT);

   

}

void loop()

{

     

  Serial.println("colorstate: " + colorstate);

 

 

  Serial.println(anaus);

   lcd.clear();

  lcd.setCursor(0, 0);

   

   

   if (IrReceiver.decode())

   {

      String ir_code = String(IrReceiver.decodedIRData.command, HEX);

      Serial.println(ir_code);

       colorstate = String(IrReceiver.decodedIRData.command, HEX);

        ir_code_public = ir_code;

     

 

   }

  if(colorstate == "3" && !anaus == 1) {

          farbwechsel = 0;

          anaus = 1;

          analogWrite(Red, 255);

          farbwechsel = 0;

          lcd.print("ON");

          delay(1000);

         

        }

        if(colorstate == "2") {

         

          lcd.print("OFF");

          delay(2000);

          anaus = 0;

          analogWrite(Red, 0);

        analogWrite(Blue, 0);

        analogWrite(Green, 0);

        }

       

   if(anaus == 1) {

colorstate = String(IrReceiver.decodedIRData.command, HEX);

   

   

     

       

      if(colorstate == "4"){

       farbwechsel = 0;

           analogWrite(Red, 255);

        analogWrite(Blue, 0);

        analogWrite(Green, 0);

        lcd.print("Rot");

        colorstate = String(IrReceiver.decodedIRData.command, HEX);

       delay(100);

   

        farbwechsel = 0;

      }

      else if(colorstate == "6") {

        farbwechsel = 0;

           analogWrite(Blue, 255);

        analogWrite(Green, 0);

        analogWrite(Red, 0);

           

         lcd.print("Blau");

       

         colorstate = String(IrReceiver.decodedIRData.command, HEX);

       

         delay(100);

     

      }

        else if(colorstate == "5") {

          analogWrite(Green, 255);

        analogWrite(Blue, 0);

        analogWrite(Red, 0);

         lcd.print("Gruen");

        colorstate = String(IrReceiver.decodedIRData.command, HEX);

        }

       else if(colorstate == "7") {

         analogWrite(Green, 255);

        analogWrite(Blue, 255);

        analogWrite(Red, 255);

        lcd.print("Weiß");

        colorstate = String(IrReceiver.decodedIRData.command, HEX);  

        }

   

   if(ir_code_public == "2"){

    farbwechsel = 0;

    analogWrite(Red, 0);

    analogWrite(Green, 0);

    analogWrite(Blue, 0);

    colorstate = String(IrReceiver.decodedIRData.command, HEX);

    delay(100);

   

     }

    IrReceiver.resume();

   }

}
1