- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 23

Thema: Tutorial: Erstellen einer Arduino-Bibliothek

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Kein Problem, ich hatte mich mit dem Thema gerade beschäftigt und dachte, ich fass das Gelernte mal für mich und andere zusammen. Interessant ist, dass jedes der 5 Programme (Schritt 2 - 6) die gleiche Funktionalität aufweist. Je komplexer ein Programm wird, desto mehr macht eine modulare, objektorientierte Herangehensweise Sinn.

  2. #2
    Unregistriert
    Gast

    Compiler-Fehler / INT vs Byte

    D:\Eigene Dateien\Arduino\libraries\RGBLed\RGBLed.cpp:9:6: error: prototype for 'void RGBLed::setRGB(int, int, int)' does not match any in class 'RGBLed'
    void RGBLed::setRGB(int r, int g, int b) {
    ^
    In file included from D:\Eigene Dateien\Arduino\libraries\RGBLed\RGBLed.cpp:1:0:
    D:\Eigene Dateien\Arduino\libraries\RGBLed\RGBLed.h:15:7: error: candidate is: void RGBLed::setRGB(byte, byte, byte)
    void setRGB(byte r, byte g, byte b) ;
    ^
    Fehler beim Kompilieren.

  3. #3
    Erfahrener Benutzer Begeisterter Techniker Avatar von Chypsylon
    Registriert seit
    02.02.2011
    Ort
    Graz/Österreich
    Beiträge
    256
    Der Compiler sagt dir doch eh schon wo das Problem liegt

    Im header File (.h) ist setRGB(byte r, byte g, byte b); mit bytes definiert. Im .cpp ist gibts die Funktion aber nur mit ints als Parameter ausprogrammiert. Das ist vermutlcih einfach ein Copy&Paste Fehler des Autors, ändere die ints zu bytes und es sollte funktionieren.

  4. #4
    Unregistriert
    Gast

    Cool Ist behoben -> weitere Frage dazu

    Vielen Dank für die Rückantwort.0
    Habe das bereits geändert so ´dass der Funktionsrumpf und die Implementierung über Byte arbeiten.
    Wollte gerne noch bei meinem Projekt in die CPP-Datei die IRremote.h einbinden.
    Wo kann man dazu noch was finden?

    Derzeit kommt das dabei raus:
    --------------
    IRControl.cpp:1:22: fatal error: IRremote.h: No such file or directory
    #include <IRremote.h>
    ^
    compilation terminated.
    Fehler beim Kompilieren.
    --------------

    Meine Klasse soll IRControl heißen und Steuercodes auf den Seriellen Monitor bzw. einen INT-Wert zurückgeben.
    Hatte da schon ein Programm fertig, welches ich jetzt mit diesen Tutoriell in eine Klasse stecken möchte.

  5. #5
    Erfahrener Benutzer Begeisterter Techniker Avatar von Chypsylon
    Registriert seit
    02.02.2011
    Ort
    Graz/Österreich
    Beiträge
    256
    IRControl.cpp:1:22: fatal error: IRremote.h: No such file or directory
    Der Compiler meckert hier das er diese Datei nicht finden kann, bist du dir sicher das du die Library richtig installiert hast? Funktioniert das einbinden bei anderen Programmen?

  6. #6
    Unregistriert
    Gast

    Rotes Gesicht Einbinden weiterer Header gelöst

    Danke nochmal für die Rückantwort.

    Das Einbinden über <IRremote.h> hat nicht geklappt.

    Habe die IRremote.h und die CPP sowie die zugehörigen Dateien in mein Library-Verzeichnis "IRControl" kopiert.
    In der IRControl.cpp habe ich dann oben gleich diese direkt so eingebunden:

    #include "IRControl.h"
    #include "IRremote.h"
    #include<Arduino.h>

    Dann war es noch wichtig alle weiteren Dateien über Drag&Drop auf die Arduino-IDE zu ziehen damit die gefunden werden.
    Jetzt läuft es soweit.

    Das Einzige was mich noch etwas nervt, ist das im Hauptprogramm das Objekt sofort
    instanziiert wird. In Java kann man es immer erst deklarieren und danach mit 'new' instanziieren.
    Habe es jetzt mit static in den Loop() gesetzt. Da sollte es nur einmal erzeugt werden und ist verfügbar.
    Vorerst ist es aber mal soweit ok. Hatte gegen 2009 aufgehört C++ zu programmieren.

  7. #7
    Unregistriert
    Gast

    Idee Kleine Ergänzung

    in RGBLed.h:
    ---------------

    #define COL_black 0x000000
    #define COL_silver 0xC0C0C0
    #define COL_gray 0x808080
    #define COL_white 0xFFFFFF
    #define COL_maroon 0x800000
    #define COL_red 0xFF0000
    #define COL_purple 0x800080
    #define COL_pink 0x9B000A
    #define COL_fuchsia 0xFF00FF
    #define COL_green 0x008000
    #define COL_lime 0x00FF00
    #define COL_olive 0x808000
    #define COL_yellow 0xFFFF00
    #define COL_navy 0x000080
    #define COL_blue 0x0000FF
    #define COL_teal 0x000015
    #define COL_aqua 0x00FFFF



    public:

    void setRGBhex(unsigned long col) ;

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

    in RGBLed.cpp

    void RGBLed::setRGBhex(unsigned long col)
    {

    byte r=0, g=0, b=0;
    b = (byte)(col & 0x0000FF);
    g = (byte)((col>> & 0x0000FF);
    r = (byte)((col>>16) & 0x0000FF);

    analogWrite(redPin, r);
    analogWrite(greenPin, g);
    analogWrite(bluePin, b);
    }

  8. #8
    Hallo zusammen,
    ich hab da mal 2 grundsätzliche Fragen:
    wofür sind die beiden ersten Zeilen der h Datei und welche Bedeutung haben die Unterstriche vorn und hinten?
    Wie bekomme ich einen oder mehrere Rückgabewerte aus der Bibliothek in die ino Datei?

  9. #9
    Unregistriert
    Gast

    Unglücklich Geht nicht!

    Bei mir kann ich es zwar rüberladen, passiert aber nichts...

Ähnliche Themen

  1. problem bei der verwendung einer twi bibliothek (avr-gcc)
    Von avrrobot im Forum Software, Algorithmen und KI
    Antworten: 18
    Letzter Beitrag: 17.01.2011, 20:13
  2. NIBObee: beelib - noch einer andere Bibliothek...
    Von bantyy im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 4
    Letzter Beitrag: 01.06.2010, 22:18
  3. Einbinden einer Bibliothek in ein Assembler Programm
    Von EGS-3 im Forum PIC Controller
    Antworten: 2
    Letzter Beitrag: 12.07.2006, 21:55
  4. Gibt es eine Bibliothek für das Erstellen von Bildern ?
    Von terny im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 12.09.2005, 08:15
  5. Fragen zur Erstellung einer Eagle Bibliothek
    Von Arme Sau im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 3
    Letzter Beitrag: 18.12.2004, 08:56

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen