problema ad iniziare con DmxSimple

Salve a tutti, sono nuovo del forum, spero che qualcuno possa aiutami.
Ho appena iniziato ad usare arduino (conoscevo solo picaxe e basicx), e devo generare un segnale dmx. Ho comprato UNO e Dmx Shield, installato l'editor Arduino ver. 22 per Mac, e aperto l'esempio DmxSimple/FadeUp. Quando faccio 'Verifica' del listato, mi da errore "DmxSimple was not declared in this scope".
Insomma non vede la libreria, ma in un tab dell'editor e' presente. non trovo nessuna cartella che contenga librerie (forse era peculiare di una versione precedente). vi giuro che ho cercato in rete qualche informazione, ma non so piu' dove guardare. :fearful:

Le librerie vanno installate nella cartella in cui conservi i tuoi sketch (su Linux è /home/utente/sketchbook, su Mac non so ma puoi verificarlo dalle preferenze dell'IDE) in una sottocartella denominata /libraries.
Se no c'è questa cartella, creala, e poi copiaci la cartella contenete la lib in oggetto,

no, se la libreria è presente in un tab allora è correttamente "installata" nella stessa cartella dello sketch, e funziona come metodo.
ad occhio direi che manca l'include o la dichiarazione dell'oggetto.

giardino67 posta il codice di errore, il codice che hai scritto/usato e un link alla libreria grazie.. sicuro che la libreria non fosse composta da un file .cpp e uno .h e hai copiato solo il .h?

grazie per la tempestivita'... dunque come giustamente diceva Lesto, mancava il file .cpp, quindi l'ho copiato nella stessa cartella dove c'e' l'applicativo di esempio e la libreria DmxSimple.h
cosi ora vedo in tutto tre tab. ma niente da fare, in fase di verifica mi da lo stesso errore, che vi riporto di seguito:

FadeUp.cpp:12:23: error: DmxSimple.h: No such file or directory
FadeUp.cpp: In function 'void setup()':
FadeUp:16: error: 'DmxSimple' was not declared in this scope
FadeUp.cpp: In function 'void loop()':
FadeUp:32: error: 'DmxSimple' was not declared in this scope

mentre questo e' il codice inserito:

/* To use DmxSimple, you will need the following line. Arduino will
** auto-insert it if you select Sketch > Import Library > DmxSimple. */

#include <DmxSimple.h>

void setup() {
 DmxSimple.usePin(3);

  DmxSimple.maxChannel(4);
}

void loop() {
  int brightness;
  /* Simple loop to ramp up brightness */
  for (brightness = 0; brightness <= 255; brightness++) {
    
    /* Update DMX channel 1 to new brightness */
    DmxSimple.write(1, brightness);
    
    /* Small delay to slow down the ramping */
    delay(10);
  }

}

Lesto non ho capito bene quando mi dici di postare un link alla libreria

grazie1000

come link alla libreria intendo l'indirizzo della pagina da cui hai scaricato la libreria.

Se non erro l'unico errore che rimane è che, quando una libreria è nella stessa cartella dello sketch, non ci vuole il <> ma il "" nell'include

quindi

#include <DmxSimple.h>

diventa

#include "DmxSimple.h"

ma mitico che sei Lesto... cosi' la compilazione ha avuto successo.. nn ce l'avrei mai fatta da solo. ringrazio te e questo forum superattivo (a poche ore dall'ultimo post sono passato in seconda pagina :slight_smile: )
ma questa informazione dove avrei potuta reperirla, se posso approfittare?
grazie1000!

teoria sul funzionamento del compilatore. Quando usi <> vuol dire che la libreria va cercata nei percorsi di default del compilatore, con il " " anche in percorsi relativi alla posizione del codice (notare l'ANCHE, nel senso che se non la trova la va a cercare come se fosse <>). Quindi se vuoi modificare una libreria che ha lo stesso nome di quella ufficiale (magari perchè stai facendo una mod, ovvero la stai modificando), puoi passare dalla originale a quella locale semplicemente cambiando il <> a " "

i percorsi di default (o assoluti) di arduino sono 3:
quelli del compilatore avr-gcc, ciò significa che hai tutte le librerie AVR (mai usate) e credo le standard di c e c++;
la cartella libraries all'interno di arduino (che contiene la Serial, la SD, e molte altre chicche);
infine la cartella libraries all'interno della cartella sketchbook (la cartella di base non esiste, la devi creare te).
la differenza tra le ultime 2 è che le tue librerie, che devi condividere tra più progetti, non le metti con le librerie ufficiali ma rimangono parte, tra l'altro insieme agli sketch, così eviti di danneggiare inavvertitamente l'IDE (il programma arduino, da non confondere con la board arduino :slight_smile: )

il percorso relativo di solito si usa per librerie particolari che sai di dover usare raramente, oppure per librerie che devi o vuoi modificare.

grazie anche da me! me l'ero chiesta la differenza, ma non trovavo notizie..

quindi "" cerca anche nelle sottocartelle a partire dalla cartella dello sketch, o solo dentro ../sketchbook/libraries ?

lesto:
infine la cartella libraries all'interno della cartella sketchbook (la cartella di base non esiste, la devi creare te).
la differenza tra le ultime 2 è che le tue librerie, che devi condividere tra più progetti, non le metti con le librerie ufficiali ma rimangono parte, tra l'altro insieme agli sketch, così eviti di danneggiare inavvertitamente l'IDE (il programma arduino, da non confondere con la board arduino :slight_smile: )

Inoltre, in caso di aggiornamento del software di Arduino, non devi preoccuparti di rimettere le librerie aggiunte da te dato che sono separate da quelle "ufficiali" proprio perché stanno in una cartella separata.