Fehlersuche Sketch

Hallo,
ich versuche ein Amateurfunkprojekt von ----- ON7EQ OT3T Website ----- nachzubauen und dazu gehört dieser Arduino Baustein.
Ich habe einen fertigen sketch geladen und versuche die Fehler zu beheben.
Bei dem folgenden Fehler, komme ich gerade nicht weiter.

Arduino: 1.8.8 (Windows 10), Board: "Arduino Nano, ATmega328P"

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\chattshack\Documents\Arduino\libraries -fqbn=arduino:avr:nano:cpu=atmega328 -ide-version=10808 -build-path C:\Users\CHATTS~1\AppData\Local\Temp\arduino_build_359250 -warnings=none -build-cache C:\Users\CHATTS~1\AppData\Local\Temp\arduino_cache_883779 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\chattshack\Documents\Arduino\sketch_jan07b\sketch_jan07b.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\chattshack\Documents\Arduino\libraries -fqbn=arduino:avr:nano:cpu=atmega328 -ide-version=10808 -build-path C:\Users\CHATTS~1\AppData\Local\Temp\arduino_build_359250 -warnings=none -build-cache C:\Users\CHATTS~1\AppData\Local\Temp\arduino_cache_883779 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\chattshack\Documents\Arduino\sketch_jan07b\sketch_jan07b.ino
Using board 'nano' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Detecting libraries used...
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/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=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "C:\\Users\\CHATTS~1\\AppData\\Local\\Temp\\arduino_build_359250\\sketch\\sketch_jan07b.ino.cpp" -o nul
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/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=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\chattshack\\Documents\\Arduino\\libraries\\Liquidcrystal440" "C:\\Users\\CHATTS~1\\AppData\\Local\\Temp\\arduino_build_359250\\sketch\\sketch_jan07b.ino.cpp" -o nul
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/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=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\chattshack\\Documents\\Arduino\\libraries\\Liquidcrystal440" "C:\\Users\\CHATTS~1\\AppData\\Local\\Temp\\arduino_build_359250\\sketch\\LiquidCrystal440.cpp" -o nul
C:\Users\CHATTS~1\AppData\Local\Temp\arduino_build_359250\sketch\LiquidCrystal440.cpp:7:22: fatal error: WProgram.h: No such file or directory

compilation terminated.

Bibliothek Liquidcrystal440 im Ordner: C:\Users\chattshack\Documents\Arduino\libraries\Liquidcrystal440 (legacy) wird verwendet
exit status 1
Fehler beim Kompilieren für das Board Arduino Nano.

Wie könnte ich hier eine sinnvolle Fehlersuche beginnen?

Ich muss dazu sagen, dass bei meinem LCD Display die PINs 1-9 nicht vertauscht sind, wie in diesem sketch. Hier sind diese PINS rückwärts gezählt. Ich weiß aber auch noch nicht, wo ich es ändern müsste.

Das ist mein erstes Arduino Projekt und habe sehr lange schon vor einen Arduino kennenzulernen. Jetzt komme ich leider erst gezwungenermaßen dazu. Ich muss diese Steuerung irgendwie in Betrieb nehmen.

Hi

C:\Users\CHATTS~1\AppData\Local\Temp\arduino_build_359250\sketch\LiquidCrystal440.cpp:7:22: fatal error: WProgram.h: No such file or directory

Hier vermisst der Kompiler die Datei WProgramm.h.
Keine Datei oder das falsche Verzeichnis - Er sagt's recht gerade heraus.

Wenn ich mich recht entsinne, wurde die WProgramm.h früher hüstel anstatt der heutigen Arduino.h (oder so) includiert.
Wäre also möglich, daß Du mit einem sehr alten Sketch unterwegs bist, Der auf einer, zumindest aus heutiger Sicht, uralten IDE-Version geschrieben wurde.

MfG

Hallo,

genau das ist das Problem wenn man hornalte Projekte findet.
Wurde bestimmt vor der Zeit geschrieben mit IDE Version jünger 1.0.
Seit wann gibts Arduino?

Du hast 2 Möglichkeiten.

a) suchst dir eine aktuelle Lib für LCD Displays

b) korrigierst die Lib selbst

zu b)

öffne die LiquidCrystal440.cpp Datei,

ändere die Zeile

#include "WProgram.h"

ab in

#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif

oder gleich ersatzlos in

#include "Arduino.h"

Eine ältere IDE wie 1.0 wird man wohl kaum verwenden wollen.

Was mich auch stutzig macht in der LiquidCrystal440.h Datei,

#ifndef LiquidCrystal_h
#define LiquidCrystal_h

Sollte das nicht dem Namen der Lib entsprechen?
Also so ?

#ifndef LiquidCrystal440_h
#define LiquidCrystal440_h

könnte man auch ersetzen mit

#pragma once

Für alles weitere müßtest du das gesamte Projekt zur Verfügung stellen, da der Link nicht wirklich hilfreich ist. Wenn zu groß hänge als .zip ran.

Wow, vielen Dank für die schnellen Antworten.
Ich kopiere den Sketch von hier.
Anschließend habe ich die Bibliothek von hier geladen.

Das "Arduino.h" Problem habe ich geändert.

Nun kommt folgende Meldung:

Arduino: 1.8.8 (Windows 10), Board: "Arduino Nano, ATmega328P"

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\chattshack\Documents\Arduino\libraries -fqbn=arduino:avr:nano:cpu=atmega328 -ide-version=10808 -build-path C:\Users\CHATTS~1\AppData\Local\Temp\arduino_build_23708 -warnings=none -build-cache C:\Users\CHATTS~1\AppData\Local\Temp\arduino_cache_597641 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\chattshack\Documents\Arduino\sketch_jan08a\sketch_jan08a.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\chattshack\Documents\Arduino\libraries -fqbn=arduino:avr:nano:cpu=atmega328 -ide-version=10808 -build-path C:\Users\CHATTS~1\AppData\Local\Temp\arduino_build_23708 -warnings=none -build-cache C:\Users\CHATTS~1\AppData\Local\Temp\arduino_cache_597641 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\chattshack\Documents\Arduino\sketch_jan08a\sketch_jan08a.ino
Using board 'nano' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Detecting libraries used...
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/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=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "C:\\Users\\CHATTS~1\\AppData\\Local\\Temp\\arduino_build_23708\\sketch\\sketch_jan08a.ino.cpp" -o nul
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/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=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\chattshack\\Documents\\Arduino\\libraries\\Liquidcrystal440" "C:\\Users\\CHATTS~1\\AppData\\Local\\Temp\\arduino_build_23708\\sketch\\sketch_jan08a.ino.cpp" -o nul
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/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=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\chattshack\\Documents\\Arduino\\libraries\\Liquidcrystal440" "C:\\Users\\chattshack\\Documents\\Arduino\\libraries\\Liquidcrystal440\\LiquidCrystal440.cpp" -o nul
Generating function prototypes...
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/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=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\chattshack\\Documents\\Arduino\\libraries\\Liquidcrystal440" "C:\\Users\\CHATTS~1\\AppData\\Local\\Temp\\arduino_build_23708\\sketch\\sketch_jan08a.ino.cpp" -o "C:\\Users\\CHATTS~1\\AppData\\Local\\Temp\\arduino_build_23708\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"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\\CHATTS~1\\AppData\\Local\\Temp\\arduino_build_23708\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Sketch wird kompiliert...
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/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=10808 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\eightanaloginputs" "-IC:\\Users\\chattshack\\Documents\\Arduino\\libraries\\Liquidcrystal440" "C:\\Users\\CHATTS~1\\AppData\\Local\\Temp\\arduino_build_23708\\sketch\\sketch_jan08a.ino.cpp" -o "C:\\Users\\CHATTS~1\\AppData\\Local\\Temp\\arduino_build_23708\\sketch\\sketch_jan08a.ino.cpp.o"
In file included from C:\Users\chattshack\Documents\Arduino\sketch_jan08a\sketch_jan08a.ino:58:0:

C:\Users\chattshack\Documents\Arduino\libraries\Liquidcrystal440/LiquidCrystal440.h:95:16: error: conflicting return type specified for 'virtual void LiquidCrystal::write(uint8_t)'

   virtual void write(uint8_t);

                ^

In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:26:0,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:29,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:232,

                 from C:\Users\CHATTS~1\AppData\Local\Temp\arduino_build_23708\sketch\sketch_jan08a.ino.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:51:20: error:   overriding 'virtual size_t Print::write(uint8_t)'

     virtual size_t write(uint8_t) = 0;

                    ^

Bibliothek Liquidcrystal440 im Ordner: C:\Users\chattshack\Documents\Arduino\libraries\Liquidcrystal440 (legacy) wird verwendet
exit status 1
Fehler beim Kompilieren für das Board Arduino Nano.

Ich werde mir Mühe geben Euren Ausführungen zu folgen!

Edit: Sorry, der direkte Link zu dem Sketch klappt irgendwie nicht. Ich packe sie in eine txt Datei und hänge sie hier als zip an.

sketch.zip (18.4 KB)

Hi

Ein LCD im 4-Bit-Mod (parallel) - kann man machen.
Selber benutze ich nur noch LCD mit 'Backpack' - Das ist eine schmale Platine, Die I²C zum Display bringt.
Wenn Du das Projekt 1:1 nachbauen willst, reicht Es Dir, wenn Du eine LiquidCrystalLib suchst und daraus ein Beispiel zum Funktionieren bekommst (in der Beschaltung, die Du gewählt hast - hier 4Bit parallel).

Wenn Das geklappt hat, den Aufruf in Zeile 187

LiquidCrystal lcd(12,255,11,10,9,8,7,6);  // (RS,RW,En1,En2,D4,D5,D6,D7) 255 if RW  is connected to GND and not controlled by the interface.

durch Dein funktionierenden Aufruf ersetzt.

Die jetzigen Fehler hängen ebenfalls mit der verwendeten LCD-Lib zusammen.
Welche IDE benutzt Du?

MfG

postmaster-ino:
Hi

Ein LCD im 4-Bit-Mod (parallel) - kann man machen.
Selber benutze ich nur noch LCD mit 'Backpack' - Das ist eine schmale Platine, Die I²C zum Display bringt.
Wenn Du das Projekt 1:1 nachbauen willst, reicht Es Dir, wenn Du eine LiquidCrystalLib suchst und daraus ein Beispiel zum Funktionieren bekommst (in der Beschaltung, die Du gewählt hast - hier 4Bit parallel).

Wenn Das geklappt hat, den Aufruf in Zeile 187

LiquidCrystal lcd(12,255,11,10,9,8,7,6);  // (RS,RW,En1,En2,D4,D5,D6,D7) 255 if RW  is connected to GND and not controlled by the interface.

durch Dein funktionierenden Aufruf ersetzt.

Die jetzigen Fehler hängen ebenfalls mit der verwendeten LCD-Lib zusammen.
Welche IDE benutzt Du?

MfG

Ich versuche noch zu verstehen, wie die lib für den sketch und die lcd sein muss.

IDE weiß ich nicht. Bin gerade nicht am Rechner aber ich habe gestern erst die arduino Software installiert.

Hi

Wenn die Software von Hier war, solltest Du >= Version 1.8.6 laufen haben - Das wäre schon passend.
(von der 1.8.8 gab's vereinzelt Fehlerberichte) Selber nutze ich noch die 1.8.5 (never change a running system :wink: )

In der IDE kannst Du Dir die installierten Libraries ansehen und auch weitere hinzufügen/entfernen.
Mit 'LiquidCrystal' wirst Du dort schon was finden.
Ggf. ist es erforderlich, daß Du Deine jetzige Lib vorher löscht - kA, wie Du Die installiert hast, ob die IDE Die überhaupt kennt, könnte Diese mit einer Anderen in Konflikt geraten.

Dann erst ein Beispiel dieser Lib testen - das Display sollte hier funktionieren - wenn nicht, brauchst Du mit Deinem Sketch gar nicht erst probieren!
Weil: Warum soll was völlig Fremdes laufen, wenn das zur Lib gehörende Zeug nicht läuft?
Man darf davon ausgehen, daß die der Lib beiliegenden Beispiele mit Ihr funktioniert (haben ... je nach Alter und IDE-Abhängigkeit).

Wird schon!

MfG

Hi,

Der Sketch wurde wahrscheinlich um 2015 herum geschrieben.

Ich verstehe im Ansatz Eure Gedanken und versuche noch mal alles zu sortieren, die Bibliothek neu einzubinden etc.

Danke

postmaster-ino:
Hi

Wenn die Software von Hier war, solltest Du >= Version 1.8.6 laufen haben - Das wäre schon passend.
(von der 1.8.8 gab's vereinzelt Fehlerberichte) Selber nutze ich noch die 1.8.5 (never change a running system :wink: )

ja die Software war von hier, allerdings ist es die 1.8.8. Die älteren Versionen sind ja noch verfügbar, wenn nötig.

postmaster-ino:
In der IDE kannst Du Dir die installierten Libraries ansehen und auch weitere hinzufügen/entfernen.
Mit 'LiquidCrystal' wirst Du dort schon was finden.
Ggf. ist es erforderlich, daß Du Deine jetzige Lib vorher löscht - kA, wie Du Die installiert hast, ob die IDE Die überhaupt kennt, könnte Diese mit einer Anderen in Konflikt geraten.

Ich werde es probieren.

postmaster-ino:
Dann erst ein Beispiel dieser Lib testen - das Display sollte hier funktionieren - wenn nicht, brauchst Du mit Deinem Sketch gar nicht erst probieren!

Welche Zeilen müsste ich dann schreiben, wenn ich nur die LCD lib testen möchte?

postmaster-ino:
Weil: Warum soll was völlig Fremdes laufen, wenn das zur Lib gehörende Zeug nicht läuft?
Man darf davon ausgehen, daß die der Lib beiliegenden Beispiele mit Ihr funktioniert (haben ... je nach Alter und IDE-Abhängigkeit).

Wird schon!

Danke, das macht mir wieder mut.
Ich bin sicher, dass es funktioniert haben muss, da es sogar schon in kommerziellen SDR Funkgeräten zum Einsatz kommt. Apache Labs
Ich habe recht viel Aufwand betrieben die Hardware vorzubereiten, um auch über diesen Controller meinen Hochfrequenz Verstärker betreiben zu können. Mein Funkgerät ist auch eine SDR Platine, die ich schon länger mit einem Verstärkerbausatz erfolgreich betreibe, ohne jegliche Steuerungen und Visualisierungen. Das nur zum Hintergrund, meines allerersten Arduino Projektes.

Hallo,

die IDE v1.8.8 hat keine Probleme.

Aber wenn ich nach dem Projekt frage und bekomme eine .txt, dann frage ich mich schon was hier schief läuft.
Und wenn dann in der .txt der Sketch doppelt drin und diese beiden Teile noch verschieden sind, dann frage ich mich noch mehr.
Was soll das?

Wenn ich den 2. Teil entferne, dann kannst du, dass ist dein Glück, statt der LiquidCrystal440.h die in der IDE enthaltene LiquidCrystal.h inkludieren. Diese an Hand von deren Bsp. richtig parameterisiert kompiliert. Der Sketch wirft noch paar Warnungen, wenn man sie denn einschaltet, sollte aber erstmal laufen.

Danke, dass Ihr schon so genau geschaut habt. Ist mir auch gerade aufgefallen. Ich benötige den 1,2kW Sketch. Das betrifft allerdings nur wenig das Display, denke ich.

Doc_Arduino:
Hallo,

die IDE v1.8.8 hat keine Probleme.

Aber wenn ich nach dem Projekt frage und bekomme eine .txt, dann frage ich mich schon was hier schief läuft.
Und wenn dann in der .txt der Sketch doppelt drin und diese beiden Teile noch verschieden sind, dann frage ich mich noch mehr.
Was soll das?

Ich habe auf die schnelle versucht Euch den Inhalt der Zeilen zur Verfügung zu stellen. Ich habe es zunächst selbst noch nicht verstanden gehabt, was das ist. Ich komme der Sache näher. Was das soll finde ich heraus und wie es richtig gepostet wird ebenso.

Doc_Arduino:
Wenn ich den 2. Teil entferne, dann kannst du, dass ist dein Glück, statt der LiquidCrystal440.h die in der IDE enthaltene LiquidCrystal.h inkludieren. Diese an Hand von deren Bsp. richtig parameterisiert kompiliert. Der Sketch wirft noch paar Warnungen, wenn man sie denn einschaltet, sollte aber erstmal laufen.

Klingt schon mal erfolgversprechend, ich werds´ testen.

Hallo,

die Variablen die für Zeitsteuerungen zuständig sind musste auch korrigieren. von long zu unsigned long.
Betrifft alle von lastT1 bis HiPower50Time.

Warum constrain Warnungen wirft habe ich noch nicht verstanden.

Maximale Erfolge.

So habe ich verdrahtet. Links das LCD Display und rechts die Anschlüsse zum Arduino über die Platine die ich gelötet habe.

Seltsam! Diese Kombination zeigt keine Fehler mehr an (s. ino Datei).

Nur auf dem Display sind noch falsche Zeichen. Die Schutzschaltung springt auch an und der Buzzer piept, da wahrscheinlich die Analog Eingänge noch frei sind. (s. Foto und Schema der Arduino Platine)

Jetzt muss ich mich um die Fehler in der Darstellung kümmern. Wo sollte ich da am besten anfangen?

Danach werde ich es einbauen und versuchen die Schwellwerte für die Analog Eingänge einzustellen.

SSPA_V08_funktioniert.ino (38.7 KB)

Hi

Das wird Er auf beiden EN-Pins machen müssen.
Denke, 'Display Eins' sind Zeile 1 und 2, oder 1 und 3, 'Display Zwei' die anderen Beiden.

Wie sieht das Display aus, wenn Du nur Spannung anlegst?
Also Uninitialisiert? (schwarze Balken, wo?)

MfG

noiasca:
mach mal einen minimalen Sketch mit der Ausgabe auf Zeile 1-4 und kontrolliere ob das funktioniert.

Wie sollte ich die Zeilen schreiben?

postmaster-ino:
Hi

Das wird Er auf beiden EN-Pins machen müssen.

Welches sind die beiden EN Pins?

postmaster-ino:
Denke, 'Display Eins' sind Zeile 1 und 2, oder 1 und 3, 'Display Zwei' die anderen Beiden.

Das habe ich nicht verstanden. Sind das Befehlszeilen im sketch selbst?

postmaster-ino:
Wie sieht das Display aus, wenn Du nur Spannung anlegst?
Also Uninitialisiert? (schwarze Balken, wo?)

Welches sind die Pins für die Spannungsversorgung, VDD +5V und VSS (Masse)?

noiasca:
...
interessant fande ich die Trenn-Striche dass die so zielgerichtet an der gleichen Stelle sind, vieleicht nur zwei Datenpins vertauscht?

Müsste richtig sein. Habe es noch mal geprüft.

Hi

Ja, wenn das Display Spannung bekommt, zeigen LCD die Hälfte der Zeichenblöcke schwarz an.
Da kann man ggf. erahnen, was wie zusammen gehört - wobei, spätestens, wenn DU sinnvollen Text Da drauf bringst, wird die Ausrichtung klar sein.

MfG

postmaster-ino:
Hi

Ein LCD im 4-Bit-Mod (parallel) - kann man machen.
Selber benutze ich nur noch LCD mit 'Backpack' - Das ist eine schmale Platine, Die I²C zum Display bringt.
Wenn Du das Projekt 1:1 nachbauen willst, reicht Es Dir, wenn Du eine LiquidCrystalLib suchst und daraus ein Beispiel zum Funktionieren bekommst (in der Beschaltung, die Du gewählt hast - hier 4Bit parallel).

Wenn Das geklappt hat, den Aufruf in Zeile 187

LiquidCrystal lcd(12,255,11,10,9,8,7,6);  // (RS,RW,En1,En2,D4,D5,D6,D7) 255 if RW  is connected to GND and not controlled by the interface.

durch Dein funktionierenden Aufruf ersetzt.

Die jetzigen Fehler hängen ebenfalls mit der verwendeten LCD-Lib zusammen.
Welche IDE benutzt Du?

MfG

Ich bin gerade durch Bezeichnungen im Schaltplan verunsichert. Bedeutet LCD01 auf dem Arduino PIN D6 vielleicht nicht DB07 (Daten Bit 7), sonder Datenbit 01 wie LCD01 auf der Displayanschlussseite dann also DB01-DB04? s. Bild im Anhang!

Ich dagegen habe streng nach den Datenbit Bezeichnungen verdrahtet.

Hi

Was hindert Dich daran, die Bits umzudrehen?
Im 4-Bit-Modus werden die oberen Bits benutzt, wie im Kommentar zum Aufruf D4 bis D7.
Eigentlich ist Das ein gaaanz normales Display, wenn Du nur einen EN-Pin benutzt wirst Du wohl ein 4004 (40 Zeichen 04 Zeilen) bekommen - und kannst Das ebenfalls gaaanz Normal als 4-Bit initialisieren.
Die Lib wird diese Prozedur 2x durcharbeiten, 1x für EN1, 1x für EN2.
Mit etwas Glück ist die Lib so schlau, den auszugebenden Inhalt (lcd.print("irgendwas"):wink: auf beide Displays aufzuteilen, wenn Du über die Grenze hinaus schreibst.

RS, RW und EN sollten klar sein - die gibt's so auch am Display.
Und D4 bis D7 eigentlich auch.
Denke, Du hast jetzt D4-D7 'genau falsch herum' - und dann. vll. noch EN1 und EN2 vertauscht, siehst Du aber, wenn die linke Seite rechts ist (sollte das Display senkrecht in der Mitte geteilt sein - sonst ist's halt irgendwie anders - könnte man wohl in einem Datenblatt recherieren).

MfG

Hallo,

ich glaube hier muss man nochmal zurückrudern.

Die Standard LCD Lib der IDE kann wohl keine 4x40. Es ist nur ein enable Pin vorgesehen. Habe mir den Header angesehen. Bestätigt auch Teensy Seite. Die Recherche ergab folgendes. Entweder nochmal die LiquidCrystal440.h inkludieren und wie folgt initialisieren mit 2x enable Pin

  The circuit:
* LCD RS pin (11) to digital pin 48
* LCD Enable 1 pin (9) to digital pin 46
* LCD D4 pin (1) to digital pin 41
* LCD D5 pin (2) to digital pin 40
* LCD D6 pin (3) to digital pin 39
* LCD D7 pin (4) to digital pin 38
* LCD Enable 2 pin (9) to digital pin 52
* LCD R/W pin to ground
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)

*/

#include <LiquidCrystal440.h>  //include LCD library

LiquidCrystal lcd(48, 47, 46, 52, 41, 40, 39, 38);   //initialize lcd screen

void setup() {
  lcd.begin(40, 4);  // set up the LCD's number of columns and rows:

oder die Teensy Lib verwenden. LiquidCrystalFast.
https://www.pjrc.com/teensy/td_libs_LiquidCrystal.html

LiquidCrystalFast lcd(RS, RW, Enable1, Enable2, D4, D5, D6, D7)

Doc_Arduino:
Hallo,

ich glaube hier muss man nochmal zurückrudern.

Die Standard LCD Lib der IDE kann wohl keine 4x40. Es ist nur ein enable Pin vorgesehen. Habe mir den Header angesehen. Bestätigt auch Teensy Seite. Die Recherche ergab folgendes. Entweder nochmal die LiquidCrystal440.h inkludieren und wie folgt initialisieren mit 2x enable Pin

  The circuit:
  • LCD RS pin (11) to digital pin 48
  • LCD Enable 1 pin (9) to digital pin 46
  • LCD D4 pin (1) to digital pin 41
  • LCD D5 pin (2) to digital pin 40
  • LCD D6 pin (3) to digital pin 39
  • LCD D7 pin (4) to digital pin 38
  • LCD Enable 2 pin (9) to digital pin 52
  • LCD R/W pin to ground
  • 10K resistor:
  • ends to +5V and ground
  • wiper to LCD VO pin (pin 3)

*/

#include <LiquidCrystal440.h>  //include LCD library

LiquidCrystal lcd(48, 47, 46, 52, 41, 40, 39, 38);   //initialize lcd screen

void setup() {
 lcd.begin(40, 4);  // set up the LCD's number of columns and rows:




oder die Teensy Lib verwenden. LiquidCrystalFast.
https://www.pjrc.com/teensy/td_libs_LiquidCrystal.html


LiquidCrystalFast lcd(RS, RW, Enable1, Enable2, D4, D5, D6, D7)

Die teensy lib jetzt kurz getestet und über Arduino Software in die Bibliothek geladen (Programmverzeichnis), er meckert auch nicht, aber die Darstellung auf dem Display zeigt div. falsche Zeichen in allen Zeilen.

LiquidCrystalFast lcd(48, 47, 46, 52, 41, 40, 39, 38); //(RS, RW, Enable1, Enable2, D4, D5, D6, D7)
//LiquidCrystalFast lcd(12,255,11,10,9,8,7,6);  // (RS,RW,En1,En2,D4,D5,D6,D7) 255 if RW  is connected to GND and not controlled by the interface.

//=====for a 4x40 LCD with 2 HD44780 type chips and 18 pin interface in 2 rows of 9; 

//   LCD     Nano     Signal
//    18              Gnd        Backlight white on blue 4x LED draws 40 mAmps
//    17              +5V        Backligt + through external resistor 15 Ohm.   
//    16      NC      not used
//    15      10      En2 -- enable the 2nd HD44780 chip which controls the bottom 2 rows of the display
//    14              +5V supply logic
//    13              Gnd logic
//    12              Wiper of contrast resistor (22k between +5v and Gnd)
//    11      12      RS
//    10              Connect to Gnd 
//     9      11      En1 -- enable the 1st HD44780 which controls the top 2 rows
//    5-8             Data 0-3: not used in 4 bit modes
//    1-4    09-06    Data 4-7: LCD DB7 to ARDUINO 06, DB6 to 07, DB5 to 08, DB4 to 09

Und wenn ich die 255 Adressierung auf 0 setze, dann bleibt das Display wie es ist, nur hört mein Buzzer auf zu piepen. Seltsam.

LiquidCrystalFast lcd(12,0,11,10,9,8,7,6);  // (RS,RW,En1,En2,D4,D5,D6,D7) 255 if RW  is connected to GND and not controlled by the interface.