Mal 'ne grundsätzliche Frage… Funktionalitäten von Sketches und Libraries

ich bin neu hier. benutze einen arduino uno seit knapp 2 wochen. ich versuche einen funkuhrempfänger und ein gsm modul mit mehreren sensoren zu verknüpfen.

suche und finde einen haufen von sketches und libraries und nichts funktioniert! selbst die beispiele der libraries funktionieren nicht.

beispiel: ich lade mir die library "NewSoftSerial" aus dem netz installiere sie und öffne mir das beispiel NewSoftSerialTest über das menü. schon beim kompilieren bekomme ich die fehler meldung:

In file included from NewSoftSerialTest.pde:2: /Users/…/arduino/libraries/NewSoftSerial/NewSoftSerial.h:71: error: conflicting return type specified for 'virtual void NewSoftSerial::write(uint8_t)' /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:48: error: overriding 'virtual size_t Print::write(uint8_t)'

mich treibt das langsam in den wahnsinn, weil ich nicht weiß, ob und wobei ich ggf. anfängerfehler mache (semikolon vergessen, etc.) oder ob es einfach systembedingte fehler sind. oder habe ich den zusammenhang zwischen sketches und libraries falsch verstanden!?

ich hab hier langsam den überblick verloren weil mein desktop mit sketches und libraries-download übersäht ist und ich nicht mehr weiß wo vorne und hinten ist!!!

viele grüße

c.

NewSoftSerial ist von der Print Klasse abgeleitet. write() ist eine virtuelle Methode. Das heißt die abgeleitete Klasse muss eine eigene Implementierung bereitstellen. Damit erreicht man dass z.B. println() auf komplett verschiedenen Devices wie Serial oder Displays läuft. Hier gibt es jetzt einen Konflikt mit den Rückgabewerten zwischen der virtuellen Methode und ihrer Implementierung. Die eine gibt nichts zurück und die andere die Größe. Da wird sich zwischenzeitlich was geändert haben.

Das Problem ist das NewSoftSerial als eigenständige Klasse veraltet ist. Die ist inwischen identisch mit der SoftwareSerial Klasse die bei der IDE schon dabei ist. Du musst also nichts extra installieren. Siehe SoftwareSerial.h:

SoftwareSerial.h (formerly NewSoftSerial.h)

Lösche die Lib wieder und verwende die Lib aus der IDE

Wenn du was besseres willst, verwende AltSoftSerial: https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html Belegt einen Timer und geht daher nur auf bestimmten Pins, aber ist weniger störanfällig und macht höhere Baudraten

Hallo, "ich versuche einen funkuhrempfänger und ein gsm modul mit mehreren sensoren zu verknüpfen" Seid zwei Wochen versuchst Du das nun schon… Im Grunde genommen gibt es bei den Arduino´s keine systembedingten Fehler. Hier im Forum haben Sie bisher fast jeden Sketch zum laufen bekommen. Das Problem ist immer wieder das gleiche, die Leute kaufen sich einen Arduino- und dann- ich will… das hilft Dir jetzt aber auch nicht weiter.

Also, wenn Du Deinen Rechner vollgemüllt hast, dann räume da doch erst einmal wieder auf. Einen neuen ArduinoOrdner anlegen und den alten sichern. Dann nimmst Du Deinen Uno, und lädst den BlinkSketch drauf. Wenn der läuft, dann hast Du schon einmal alles richtig gemacht. Dein Uno läuft und funktioniert…

NUN nimmst Du EINES Deiner Shield´s oder Sensoren. Installierst nur die Lib für dieses Bauteil- und versuchst es zum laufen zu bringen. Wenn das dann läuft, dann erst das nächste. Bekommst Du eines Deiner Bauteile nicht zum laufen, dann meldest Du dich hier wieder. Mit Fehlerbeschreibung und BeispielSketch. Dann kann man hier auch vernünftig helfen. So wie jetzt, ist es alles Glaskugellesen, nicht so das Pralle. Gruß und Spaß Andreas

Das Problem hier ist dass die Lib veraltet ist. Die Lösung ist die Lib zu löschen und die SoftSerial Lib zu verwenden die bei der IDE dabei ist!

Die erste SoftSerial Lib war totaler Schrott. Dann hat jemand NewSoftSerial geschrieben. Und diese Lib wurde dann in späteren Versionen der IDE als SoftSerial integriert. Und durch Änderungen in der IDE ist jetzt die NewSoftSerial Lib zum herunterladen inkompatibel.

Ich weiß nicht, ob Du DCF77 mit dem GSM Shield zusammen zum laufen bekommst. Ich befürchte daß das GSM das DCF nachhaltig stört. Da Du aber ein GSM hast kannst Du die genaue Zeit von einem NTP-Server herholen.

Grüße Uwe