Kompilierungsproblem

Hallo Community,

ich hoffe, dass mir hier geholfen werden kann.

Ich habe folgendes Problem: Ich bekomme keinen Upload auf mein Arduino Und hin. Ich habe ein bereits laufendes Programm eines Kollegen geändert und möchte das nun auf das Uno aufspielen. Leider bin ich Neuling auf dem Gebiet Arduino.

Ich habe schon folgende Fehler gecheckt, die ich im Netz gefunden habe:
-Auf Pin 0 und 1 (RX und TX) habe ich zu Versuchszwecken die angeschlossenen Leitungen abgeklemmt
-Die grüne LED (ON) leuchtet dauerhaft (Angeschlossen ist neben dem USB-Anschluss auch ein 12V-Netzteil
-unter Platine ist “Arduino/Genuino UNO” ausgewählt
-unter Werkzeuge-> Port → COM4 (Arduino/Genuino Uno) ausgewählt

Meine Fehlermeldung beginnt schon beim Einbinden der Bibliothek #include <serial.h> und geht direkt bei #include <EEPROM_I2C.h> weiter, wenn ich serial.h auskommentiere. Die Fehlermeldung lautet dann:

fatal error: serial.h: No such file or directory

Ich hoffe, dass mir jemand weiterhelfen kann

Grüße,

GastMitProblem

Ich vermute, du hast die notwendigen Libraries nicht "installiert".

Edit: Und nehme das 12 Volt Netzteil mal ab, wenn du USB dran hast.

Die Vermutung hatte ich auch schon. Aber leider habe ich keine Möglichkeit/Links gefunden, wo ich diese herunterladen kann. Könntest du mir da behilflich sein?

Dann poste bitte mal den kompletten Code, damit wir sehen können, welche Libraries du brauchst.

Du findest diese aber alle ganz einfach über Google. z.B. arduino library Serial= https://www.arduino.cc/en/pmwiki.php?n=Reference/SoftwareSerial

Den gesamten Code kann ich leider nicht posten. Das würde auch nichts bringen, da er extrem lang ist und nur auf meine Bedürfnisse zugeschnitten ist. Da das Programm in der vorherigen Version aber schon lief weiß ich, dass ich die Librarys

#include <serial.h>
#include <EEPROM_I2C.h>

benötige.

Auf der von dir verlinkten Seite war ich auch schon. Jedoch finde ich dort keine Library namens “Serial”. Oder ist die “SoftwareSerial” die gleiche?

Grüße

Hallo,

das einfachste wäre Du fragst den Kollegen welche Libs er dafür hat. Denn Libs gibts viele mit gleichen oder ähnlichen Namen. Man müßte genau wissen von wem die sind, sodass man dann auch zu 100% die richtige und vielleicht auch aktuelle(re) erwischt.

Und ändere bitte die Betreffzeile. Du hast kein Uploadproblem, Du hast ein Kompilierungsproblem.

Den Titel habe ich geändert ;)

Das Problem ist, dass der Kollege Urlaub hat ...

Also gibt es keine "allgemeinen Bibliotheken", die im Grunde immer gleich sind? Ich gehe davon aus, dass er innerhalb der Librarys nichts geändert hat.

Hardware und Software Libraries sind in der Arduino Software dabei. Daneben gibt es noch AltSoftSerial weil das normale SoftSerial ziemlicher Schrott ist. Das ist alles was man i.d.R. bei serieller Kommunikation braucht.

Dass da irgendeine exotische Serial Library drin ist ist schon seltsam. Und wenn du die nicht hast geht es nicht. Die kann man auch nicht unbedingt direkt durch was anderes ersetzen, da die API unter Umständen anders ist. Da müsste man dann noch Änderungen am Code vornehmen. Das ist aber kein Problem wenn man weiß was man tut.

Die Argumente von "Doc_Arduino und Serenifly" sind absolut zutreffend. Aber wenn du dennoch weiter probieren möchtest, dann kannst du die Libraries zuvor auch selber testen und sie bei Github downloaden. da gibt es verschiedene die evtl. ja auch passen. Du must zuvor nur die schon vorhandenen aus dem Library-Ordner entfernen. Aber wie schon Serenifly schreibt, du musst wissen was du machst. ;) Aber bitte nur machen, wenn du nicht anders weiter kommst, ohne Garantie. :)

Danke für die vielen Antworten.

Leider weiß ich ja nicht so ganz, was ich mache :smiley:

Das macht meine jetzige Situation ziemlich bescheiden. Aber das soll nicht eure Sorge sein. Dann muss ich wohl warten, bis der Kollege wieder da ist.

Danke für eure Hilfe :wink:

Selbst wenn man das Serial Problem löst, scheint aber die EEPROM_I2C Library auch nicht installiert sein

Das geht es dann weiter. Dein Header heißt EEPROM_I2C.h. Die erste Library die man im Arduino Playground findet heißt I2C_eeprom.h. Das müsste man dann auch erst mal finden. Oder auf eine andere Lib umschreiben.

Aber falls ich das Problem mit der Serial-Library in den Griff bekommen sollte, wo finde ich denn die EEPROM_I2C.h-Library? Dazu habe ich noch immer keine Datei gefunden, die man in den Library-Ordner packen kann...

Keine Ahnung. Das meiste was Google dazu ausspuckt hat was mit RobotControl zu tun

Die zwei EEPROM Dateien könnte man auch so verwenden:

Aber du musst schauen ob das wirklich die Klasse ist die bei dir verwendet wird:

Es kann natürlich auch irgendwo noch eine andere Lib geben die genauso heißt

GastMitProblem: Aber falls ich das Problem mit der Serial-Library in den Griff bekommen sollte, wo finde ich denn die EEPROM_I2C.h-Library? Dazu habe ich noch immer keine Datei gefunden, die man in den Library-Ordner packen kann...

Also bei Github findest du auch was über EEPROM_I2C.h https://github.com/odbol/EEPROM_I2C

und hier noch die Serial.h

https://github.com/felis/Arduino-Bluetooth

Hallo,

als allgemeine Bibliotheken würde ich nur die bezeichnen die die IDE selbst mitliefert. Alle andere stammen von irgendwelchen Leuten aus dem riesigen Internet. Es gibt bestimmte Lib's die hier und da empfohlen werden. Wenn man aber auf eine bestimmte angewiesen ist wird es schon schwierig. Auf die schnelle finde ich auch keine EEPROM_I2C. Man findet Seiten die diese verwenden, auch bei github, aber die Lib selbst ...

Was haste denn für eine IDE Version? Falls die aktuelle, im Lib Manager ist nichts dabei?

Moment. Weil Du so geizig mit Infos bist. EEprom_I2C wird bei Robot Control verwendet wie ich so mitbekomme. Auch wenn Du denkst Dein Code nützt uns nichts. Würde er doch viele Erkenntnisse bringen. Man kann die .ino auch als Datei anhängen. Nur so als Info.

Die EEprom_I2C stammt aber bestimmt aus der Robot Control Lib

Wenn ich Deine beiden Libs im ansonsten leeren Sketch einfüge, erhalte ich als erste Zeile:

Verwende die Bibliothek Robot Control im Ordner: C:\Program Files (x86)\Arduino\libraries\Robot_Control

Vielleicht brauchst Du die include gar nicht. Ich stehe aber seit der installierten IDE, vorher portable Version, auch etwas auf Kriegsfuss. Ich weis nämlich nicht wo die mitgelieferten Libs versteckt wurden.

HotSystems: Also bei Github findest du auch was über EEPROM_I2C.h https://github.com/odbol/EEPROM_I2C

Ok, das ist im Prinzip das gleiche was ich gefunden habe, aber als eigenständiger Download. Könnte dann wirklich korrekt sein :)

Nur zur Sicherheit, dass ich das richtig verstanden habe: Ich lade bei Github die eeprom_i2c.h Datei herunter und speichere diese dann in meinem Bibliothekenordner? Muss ich die .cpp-Datei auch noch mit in den Ordner kopieren? Und muss das ganze in einen eigenen Unterordner gepackt werden(bzw. darf ich das tun, um etwas Ordnung zu halten)?

Du brauchst .cpp und .h. Und die müssen in einen Ordner gleichen Namens.

Rechts ist ein Link "download ZIP": https://github.com/odbol/EEPROM_I2C/archive/master.zip

Da bekommst du ein passendes Archiv. Das entpackst und dann musst du das "-master" hinten aus dem Ordernamen entfernen. Ganz wichtig. Der Order muss auch "EEPROM_I2C" heißen.

Hallo,

Du lädst die .zip runter und entpackst das.
Dann benennst Du den Ordnername “EEPROM_I2C-master” um in “EEPROM_I2C”. Also ohne das -master.
Darin bleibt der Ordner I2CTEST und die 3 Dateien wie sie sind.
Den Ordner “EEPROM_I2C” schiebste in den libraries Ordner von der Arduino Installation. Vorher IDE beenden.

Edit:
ich hatte vorhin bei der suche mit “EEPROM_I2C” direkt auf github nichts gefunden. Kam nur auf was mit Robot Control. Komisch. Wonach hattet ihr gesucht?

Leider kann ich die Datei aus Datenschutzgründen nicht hochladen. Da würde man mir den Kopf abreißen...

Wenn ich die beiden #Includes auskommentiere kommt direkt die nächste Fehlermeldung:

variable 'XXXXXXX' must be const in order to be put into read-only section by means of 'attribute((progmem))'