Arduino GUI immer Off nicht On

Hallo ich habe mir eine einfache GUI für meinem Arduino nach dem Tutorial von
https://www.youtube.com/watch?v=1cQqYJCFm94
programmiert .
Nun habe ich das Problem das die LED nicht leuchtet wenn ich "On" drücke. Sondern das ich immer als Output "Off" bekomme. Das habe ich mit meinem Selbstgebauten Log gesehen.
Der Log von mir ist ein LCD was man auch im Code sieht.



#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

String dataCOM3;
char d1;
int pin = 13 ;

LiquidCrystal_I2C lcd(0x27, 20, 4);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup() 
{
      lcd.init();                      // initialize the lcd
                                      // Print a message to the LCD.
      lcd.backlight();
      lcd.setCursor(3,0);
      lcd.print("Hi hier ist ");
      lcd.setCursor(2,1);
      lcd.print("Jonathan :-)");
      Serial.begin(9600);
      pinMode(pin, OUTPUT);
       pinMode(13, OUTPUT);

}

void loop() 
{
    if(Serial.available())
   {
        lcd.backlight();
        lcd.clear();
        lcd.setCursor(3,0);
        dataCOM3 = Serial.readString();
        d1 = dataCOM3.charAt(0);
         if(d1 == "ON")
         {
            lcd.print("A");
            digitalWrite(13, HIGH);
            
         }
         else if(d1 == "OFF");
         {
           lcd.print("a");
           digitalWrite(13, LOW); 
         }
   }  
}


Der Code der GUI ist

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Arduino_GUI4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            serialPort1.Open();
        }

        private void On_Click(object sender, EventArgs e)
        {
            //Send Comand to the Arduino to turn Pin 13 on 
            serialPort1.Write("ON");
        }

        private void Off_Click(object sender, EventArgs e)
        {
            //Send Comand to the Arduino to turn Pin 13 OFF
            serialPort1.Write("OFF");
        }
    }
}

Danke für eure Hilfe schon mal im vor raus.

Einen Timeout als Kommando Ende einzusetzen finde ich irgendwie seltsam.

char d1;
if(d1 == "ON")

Ein Buchstabe kann niemals 2 Buchstaben plus die Null sein.
Nein, man kann keine Zeiger auf Zeichenketten mit Buchstaben vergleichen.
Zumindest macht es keinen Sinn.

Das sollte es dir auch sagen, wenn du die Warnungen aktivierst.

Auch das eine Semikolon sitzt das falsch.

E:\Programme\arduino\portable\sketchbook\sketch_oct28b\sketch_oct28b.ino: In function 'void setup()':
sketch_oct28b:12:11: error: 'class LiquidCrystal_I2C' has no member named 'init'
   12 |       lcd.init();                      // initialize the lcd
      |           ^~~~
E:\Programme\arduino\portable\sketchbook\sketch_oct28b\sketch_oct28b.ino: In function 'void loop()':
E:\Programme\arduino\portable\sketchbook\sketch_oct28b\sketch_oct28b.ino:34:16: warning: comparison with string literal results in unspecified behavior [-Waddress]
   34 |          if(d1 == "ON")
      |             ~~~^~~~~~~
E:\Programme\arduino\portable\sketchbook\sketch_oct28b\sketch_oct28b.ino:34:16: warning: ISO C++ forbids comparison between pointer and integer [-fpermissive]
E:\Programme\arduino\portable\sketchbook\sketch_oct28b\sketch_oct28b.ino:40:21: warning: comparison with string literal results in unspecified behavior [-Waddress]
   40 |          else if(d1 == "OFF");
      |                  ~~~^~~~~~~~
E:\Programme\arduino\portable\sketchbook\sketch_oct28b\sketch_oct28b.ino:40:21: warning: ISO C++ forbids comparison between pointer and integer [-fpermissive]
E:\Programme\arduino\portable\sketchbook\sketch_oct28b\sketch_oct28b.ino:40:30: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
   40 |          else if(d1 == "OFF");
      |                              ^

OK, der ": error: 'class LiquidCrystal_I2C' has no member named 'init'" geht auf mich.
Aber der Rest ist deins.

Ich habe die Warnungen an und bekomme keine `

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\hagen\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\hagen\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\hagen\OneDrive\Dokumente\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=2A03_0043 -ide-version=10813 -build-path C:\Users\hagen\AppData\Local\Temp\arduino_build_387197 -warnings=none -build-cache C:\Users\hagen\AppData\Local\Temp\arduino_cache_762669 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7 -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7 -prefs=runtime.tools.avrdude.path=C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.arduinoOTA.path=C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0 -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0 -verbose C:\Users\hagen\OneDrive\Dokumente\Arduino\Arduino_Projekte\Arduino GUI\Arduino_GUI\Arduino_GUI.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\hagen\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\hagen\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\hagen\OneDrive\Dokumente\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=2A03_0043 -ide-version=10813 -build-path C:\Users\hagen\AppData\Local\Temp\arduino_build_387197 -warnings=none -build-cache C:\Users\hagen\AppData\Local\Temp\arduino_cache_762669 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7 -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7 -prefs=runtime.tools.avrdude.path=C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.arduinoOTA.path=C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0 -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0 -verbose C:\Users\hagen\OneDrive\Dokumente\Arduino\Arduino_Projekte\Arduino GUI\Arduino_GUI\Arduino_GUI.ino
Using board 'uno' from platform in folder: C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.3
Using core 'arduino' from platform in folder: C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.3
Detecting libraries used...
"C:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.3\\cores\\arduino" "-IC:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.3\\variants\\standard" "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197\\sketch\\Arduino_GUI.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
Alternatives for Wire.h: [Wire@1.0]
ResolveLibrary(Wire.h)
  -> candidates: [Wire@1.0]
"C:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.3\\cores\\arduino" "-IC:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.3\\variants\\standard" "-IC:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.3\\libraries\\Wire\\src" "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197\\sketch\\Arduino_GUI.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
Alternatives for LiquidCrystal_I2C.h: [LiquidCrystal_I2C@1.1.2 LiquidCrystal_I2C-master@1.1.2]
ResolveLibrary(LiquidCrystal_I2C.h)
  -> candidates: [LiquidCrystal_I2C@1.1.2 LiquidCrystal_I2C-master@1.1.2]
"C:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.3\\cores\\arduino" "-IC:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.3\\variants\\standard" "-IC:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.3\\libraries\\Wire\\src" "-IC:\\Users\\hagen\\OneDrive\\Dokumente\\Arduino\\libraries\\LiquidCrystal_I2C" "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197\\sketch\\Arduino_GUI.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
Using cached library dependencies for file: C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.3\libraries\Wire\src\Wire.cpp
Using cached library dependencies for file: C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.3\libraries\Wire\src\utility\twi.c
Using cached library dependencies for file: C:\Users\hagen\OneDrive\Dokumente\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp
Generating function prototypes...
"C:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.3\\cores\\arduino" "-IC:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.3\\variants\\standard" "-IC:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.3\\libraries\\Wire\\src" "-IC:\\Users\\hagen\\OneDrive\\Dokumente\\Arduino\\libraries\\LiquidCrystal_I2C" "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197\\sketch\\Arduino_GUI.ino.cpp" -o "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197\\preproc\\ctags_target_for_gcc_minus_e.cpp" -DARDUINO_LIB_DISCOVERY_PHASE
"C:\\Program Files (x86)\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Sketch wird kompiliert...
"C:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.3\\cores\\arduino" "-IC:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.3\\variants\\standard" "-IC:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.3\\libraries\\Wire\\src" "-IC:\\Users\\hagen\\OneDrive\\Dokumente\\Arduino\\libraries\\LiquidCrystal_I2C" "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197\\sketch\\Arduino_GUI.ino.cpp" -o "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197\\sketch\\Arduino_GUI.ino.cpp.o"
Compiling libraries...
Compiling library "Wire"
Zuvor kompilierte Datei wird verwendet: C:\Users\hagen\AppData\Local\Temp\arduino_build_387197\libraries\Wire\Wire.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\hagen\AppData\Local\Temp\arduino_build_387197\libraries\Wire\utility\twi.c.o
Compiling library "LiquidCrystal_I2C"
Zuvor kompilierte Datei wird verwendet: C:\Users\hagen\AppData\Local\Temp\arduino_build_387197\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp.o
Compiling core...
Using precompiled core: C:\Users\hagen\AppData\Local\Temp\arduino_cache_762669\core\core_arduino_avr_uno_93c1510de989ea7d53513db0b0308055.a
Linking everything together...
"C:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197/Arduino_GUI.ino.elf" "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197\\sketch\\Arduino_GUI.ino.cpp.o" "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197\\libraries\\Wire\\Wire.cpp.o" "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197\\libraries\\Wire\\utility\\twi.c.o" "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197\\libraries\\LiquidCrystal_I2C\\LiquidCrystal_I2C.cpp.o" "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197/..\\arduino_cache_762669\\core\\core_arduino_avr_uno_93c1510de989ea7d53513db0b0308055.a" "-LC:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197" -lm
"C:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197/Arduino_GUI.ino.elf" "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197/Arduino_GUI.ino.eep"
"C:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -R .eeprom "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197/Arduino_GUI.ino.elf" "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197/Arduino_GUI.ino.hex"
Mehrere Bibliotheken wurden für "LiquidCrystal_I2C.h" gefunden
 Benutzt: C:\Users\hagen\OneDrive\Dokumente\Arduino\libraries\LiquidCrystal_I2C
 Nicht benutzt: C:\Users\hagen\OneDrive\Dokumente\Arduino\libraries\LiquidCrystal_I2C-master
Bibliothek Wire in Version 1.0 im Ordner: C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.3\libraries\Wire  wird verwendet
Bibliothek LiquidCrystal_I2C in Version 1.1.2 im Ordner: C:\Users\hagen\OneDrive\Dokumente\Arduino\libraries\LiquidCrystal_I2C  wird verwendet
"C:\\Users\\hagen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-size" -A "C:\\Users\\hagen\\AppData\\Local\\Temp\\arduino_build_387197/Arduino_GUI.ino.elf"
Der Sketch verwendet 6250 Bytes (19%) des Programmspeicherplatzes. Das Maximum sind 32256 Bytes.
Globale Variablen verwenden 482 Bytes (23%) des dynamischen Speichers, 1566 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\hagen\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:C:\Users\hagen\AppData\Local\Temp\arduino_build_387197/Arduino_GUI.ino.hex:i 

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\hagen\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"

         Using Port                    : COM3
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 3
         Firmware Version: 4.4
         Vtarget         : 0.3 V
         Varef           : 0.3 V
         Oscillator      : 28.800 kHz
         SCK period      : 3.3 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "C:\Users\hagen\AppData\Local\Temp\arduino_build_387197/Arduino_GUI.ino.hex"
avrdude: writing flash (6250 bytes):

Writing | ################################################## | 100% 1.01s

avrdude: 6250 bytes of flash written
avrdude: verifying flash memory against C:\Users\hagen\AppData\Local\Temp\arduino_build_387197/Arduino_GUI.ino.hex:
avrdude: load data flash data from input file C:\Users\hagen\AppData\Local\Temp\arduino_build_387197/Arduino_GUI.ino.hex:
avrdude: input file C:\Users\hagen\AppData\Local\Temp\arduino_build_387197/Arduino_GUI.ino.hex contains 6250 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.80s

avrdude: verifying ...
avrdude: 6250 bytes of flash verified

avrdude done.  Thank you.

das ist der Log wenn ich hochlade

Mag sein...
Ich habe meine Warnungen auch sehr scharf eingestellt!
Extra, damit mir solche Sachen gezeigt werden.

Allerdings:
Auch, wenn du sie nicht siehst, berechtigt sind die Warnungen dennoch.

ok hast du Ideen warum ich immer nur ein Off Befehl bekomme und keinen On
oder eine Seite wo ich ein Funktionierendes GUI herunterladen kann
LG Jonathan

Ja!
Weil dein Code die schon genannten Schwierigkeiten hat!

Was muss ich den an dem Code verändern das ich auch einen On Befehl bekomme?
Liegt es daran das ich oben "String" und "char" nutze und wie muss den Code verändern das ich keine Fehlermeldung mehr bekomme.
LG Jonathan

Ich glaube, um meine Antworten verstehen zu können, müsstest du erstmal die Sprache (C++) lernen, welche du verwendest und die Arduino Doku. Wenigstens in Ansätzen.
Was ist ein char
Was ist ein c-string
Was ist ein Arduino String
Dann wird dir auch klar, welchen Bock du da geschossen hast.

Aber ich versuchst trotzdem mal...

Du hast den Code eigenmächtig verändert.
Das ist eigentlich ok, aber nicht wenn man es so tut, dass nix mehr geht.
Also Rückbau auf Original, testen, und neu nachdenken.

Das formuliere ich nochmal anders:
Auf die Art Kommandos zu separieren wird nicht stabil funktionieren.

Das desynchronisiert irgendwann.
Es muss ein Protokoll erfunden werden.
Es muss ein Parser für genau das Protokoll erfunden werden.
z.B. gibt es auch fertige Protokolle und Parser, hier seien mal stellvertretend der CMDMessenger oder Firmata genannt
Auch gibts hier im Forum reichlich Beispiele für einfache Parser.

Ja, ich könnte dir da Änderungen einbauen.
Aber vermutlich verstehst du sie nicht. Wirst also kein Stück schlauer dadurch.
Das ist ganz sicher nicht mein Ziel.


Ich persönlich halte nicht viel von Videotutorials.
Dieser Thread bestätigt dieses Vorurteil.
Oftmals lernt man da, wie man es nicht machen sollte.
Selten wird dort ein Wort über die Grundlagen, das wie und warum, verloren.

so ich habe den Code jetzt mal so geändert das ich jetzt anstatt ON OFF 1 und 0 sende.
Wenn ich jetzt mir dataCOM3 ausgeben lasse bekomme ich für On 11 und für Off 0
Arduino Code

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

String dataCOM3 ;
char d1;
int pin = 13 ;

LiquidCrystal_I2C lcd(0x27, 20, 4);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup() 
{
      lcd.init();                      // initialize the lcd
                                      // Print a message to the LCD.
      lcd.backlight();
      lcd.setCursor(3,0);
      lcd.print("Hi hier ist ");
      lcd.setCursor(2,1);
      lcd.print("Jonathan :-)");
      Serial.begin(9600);
      pinMode(pin, OUTPUT);
       pinMode(13, OUTPUT);

}

void loop() 
{
    if(Serial.available())
   {
        lcd.backlight();
        lcd.clear();
        lcd.setCursor(3,0);
        dataCOM3 = Serial.readString();
        d1 = dataCOM3.charAt(0);
         if(d1 == '1')
         {
            lcd.print(dataCOM3);
            digitalWrite(13, HIGH);
            
         }
         else if(d1 == '0');
         {
           lcd.print(dataCOM3);
           digitalWrite(13, LOW); 
         }
   }  
}

Visual Studio Code

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Arduino_GUI4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            serialPort1.DtrEnable = false;
            serialPort1.Open();
        }

        private void On_Click(object sender, EventArgs e)
        {
            //Send Comand to the Arduino to turn Pin 13 on 
            serialPort1.Write("1");
        }

        private void Off_Click(object sender, EventArgs e)
        {
            //Send Comand to the Arduino to turn Pin 13 OFF
            serialPort1.Write("0");
        }
    }
}

Das LCD habe ich mal raus operiert
Den Semikolon Fehler eliminiert
Und sowieso den Code gnadenlos umgeräumt.

constexpr byte pin {13};

void serialEvent() 
{
  int zeichen = Serial.read();
  switch(zeichen)
  {
    case '1': digitalWrite(pin, HIGH); break;
    case '0': digitalWrite(pin, LOW);  break;
  }  
}

void setup() 
{
  Serial.begin(9600);
  pinMode(pin, OUTPUT);
}

void loop() 
{
}

Danke jetzt Funktioniert es
Währst du jetzt noch so nett und würdest mir erklären was du da genau machst.

Ich verstehe ja schon ein bisschen was da genau passiert aber noch nicht alles.
in

void serialEvent() 

startest du eine eigene schleife

void loop und void setup

ist klar
nur was genau switch macht ist mir noch nicht klar
LG Jonathan

Nein.
Ich lasse mich von Arduino Serial benachrichtigen, wenn ein neuer Buchstabe eingetroffen ist.
Eine Schleife ist das nicht.
Es ist eine ganz naive Form der "Ereignis gesteuerten/orientierten Programmierung"
z.B. Wikipedia kann dir die Begriffe erklären.

-----------------------

switch wird in der C++ Referenz genau erklärt

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.