Mi spiace fare domande che faranno cascare le braccia a molti, ma nonostante le accanite ricerche nel forum e nei manuali non sono venuto a capo di niente. Ho provato a scrivere io qualche istruzione di prova, compilarla, caricarla ed eseguirla e in effetti ho addomesticato qualche led e qualche relè. Ma qui sto tentando di provare un modulo orologio usando uno Sketch specifico con un paio di sue librerie, DS3231.cpp e DS3231.h , e alla verifica dà errore perchè non trova il DS3231.h . Per non sapere nè leggere nè scrivere, le ho copiate dappertutto (nelle varie cartelle sketch e di sistema) per fargliele trovare, e vedo nella IDE che in effetti figurano: se si selezionano le rispettive linguette, i listati compaiono tutti (.ino, .cpp e .h) . Dunque: se me lo fa vedere, perchè alla verifica di compilazione risponde che quel file è introvabile?
Per ora non accludo il codice... dato che devo ancora vedere come gira. Grazie per l'attenzione!
Prova a mettere il nome della libreria tra gli apici, es:
#include "DS3231.h"
dovrebbe funzionare.
Ciao, Ale.
In genere le librerie vanno installate tramite il gestore delle librerie. Abilita il flag "verbose" vedrai tutti i comandi avviati dall'IDE, tra questi comandi c'è -I /percorso/ecc/ che è il percorso di dove si trovano gli include delle librerie installate.
Mentre il tuo approccio è desiderabile quando si vuole congelare la versione di ogni libreria assieme al progetto. Può capitare che una libreria subisca degli aggiornamenti non retro-compatibili, quando accade lo sketch non compila.
Hai questa necessità?
Ciao.
Prima di tutto grazie ai volenterosi! Adesso ho provato a scivere "DS3231.h" eliminando le <> e sembra che effettivamente lo esegua. Ora però se provo a validare il codice, se ne esce con una diagnostica che per me è esoterica, la accludo giusto per la curiosità di qualcuno, ma non conto su una facile soluzione dall'esterno.... dovrei venirne a capo io, altrimenti sarei sempre qui a chiedere aiuto. Guarderò anche dove suggerisce Tesla; non ho idea di retrocompatibilità, speravo che quei codici fossero universalmente validi e collaudati. Strano che un dispositivo così "di base" si riveli tanto ostico, io pensavo semplicemente di cavarne una base di tempi per fissare la velocità di un passo-passo. Forse mi converrà cercare un'altra via.
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino:4:8: error: 'DS3231 clock' redeclared as different kind of symbol
DS3231 clock;
^~~~~
In file included from /Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231.h:28:0,
from /Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino:2:
/Users/mogivice/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/avr/include/time.h:164:20: note: previous declaration 'clock_t clock()'
extern clock_t clock(void);
^~~~~
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino:5:1: error: 'RTCDateTime' does not name a type; did you mean 'DateTime'?
RTCDateTime dt;
^~~~~~~~~~~
DateTime
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino: In function 'void setup()':
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino:12:9: error: request for member 'begin' in 'clock', which is of non-class type 'clock_t() {aka long unsigned int()}'
clock.begin();
^~~~~
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino:14:12: error: 'YYYY' was not declared in this scope
Manual (YYYY, MM, DD, HH, II, SS)//è una funzione presenta nella libreria che permette di impostare in che modo sarà visualizzata la data
^~~~
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino:14:18: error: 'MM' was not declared in this scope
Manual (YYYY, MM, DD, HH, II, SS)//è una funzione presenta nella libreria che permette di impostare in che modo sarà visualizzata la data
^~
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino:14:22: error: 'DD' was not declared in this scope
Manual (YYYY, MM, DD, HH, II, SS)//è una funzione presenta nella libreria che permette di impostare in che modo sarà visualizzata la data
^~
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino:14:22: note: suggested alternative: 'DD0'
Manual (YYYY, MM, DD, HH, II, SS)//è una funzione presenta nella libreria che permette di impostare in che modo sarà visualizzata la data
^~
DD0
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino:14:26: error: 'HH' was not declared in this scope
Manual (YYYY, MM, DD, HH, II, SS)//è una funzione presenta nella libreria che permette di impostare in che modo sarà visualizzata la data
^~
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino:14:26: note: suggested alternative: 'ZH'
Manual (YYYY, MM, DD, HH, II, SS)//è una funzione presenta nella libreria che permette di impostare in che modo sarà visualizzata la data
^~
ZH
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino:14:30: error: 'II' was not declared in this scope
Manual (YYYY, MM, DD, HH, II, SS)//è una funzione presenta nella libreria che permette di impostare in che modo sarà visualizzata la data
^~
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino:14:30: note: suggested alternative: 'PI'
Manual (YYYY, MM, DD, HH, II, SS)//è una funzione presenta nella libreria che permette di impostare in che modo sarà visualizzata la data
^~
PI
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino:14:4: error: 'Manual' was not declared in this scope
Manual (YYYY, MM, DD, HH, II, SS)//è una funzione presenta nella libreria che permette di impostare in che modo sarà visualizzata la data
^~~~~~
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino:17:9: error: request for member 'setDateTime' in 'clock', which is of non-class type 'clock_t() {aka long unsigned int()}'
clock.setDateTime(DATE, TIME); //DATE e TIME sono macro di Arduino che conservano data e ora di sistema sino allo spegnimento della board
^~~~~~~~~~~
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino: In function 'void loop()':
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino:23:3: error: 'dt' was not declared in this scope
dt = clock.getDateTime();
^~
/Users/mogivice/Programmi Basic - Arduino/Arduino/orologio DS3231-1.1.2/examples/DS3231_oscillator_test/DS3231_oscillator_test.ino:23:14: error: request for member 'getDateTime' in 'clock', which is of non-class type 'clock_t() {aka long unsigned int()}'
dt = clock.getDateTime();
^~~~~~~~~~~
exit status 1
Compilation error: 'DS3231 clock' redeclared as different kind of symbol
Segui il consiglio che ti ha dato Mauro sopra: nell'IDE fai click sulla terza icona partendo dall'alto (quella che ha il simbolo dei libri), ti apre il gestore delle librerie, nel primo campo in alto digita "ds3231" per filtrare i contenuti, appariranno parecchie librerie, scegline una, ti consiglio "RTClib by Adafruit", non sarà la migliore ma dovrebbe essere sicuramente funzionante. Fai click su "Install" e sei a posto. Poi cerca nel menu File tra gli esempi uno specifico di quella libreria e prova a compilarlo, dovrebbe funzionare senza problemi. Usa l'esempio come base di partenza per il tuo skecth.
Ciao, Ale.
P.S.: dimenticavo: quando posti del codice, o anche l'output della console come hai fatto sopra, usa sempre il tag "< CODE / >" che vedi in alto nell'editor.
Signori vi ringrazio di cuore per la sollecitudine. Ora mollo tutto causa sonno, nei prossimi giorni mi rimboccherò le maniche, se non mi farò vivo sarà solo per mancanza materiale di tempo...
Molto probabilmente adesso ci sono "troppe" librerie sparse e il compilatore va in confusione!
Provo e riprovo, seguendo le vostre indicazioni. Ho caricato la lib. RTC di Adafruit, il compilatore la inghiotte ma restituisce sempre una sfilza di lamentele che per me sono aramaico. Non desisto, ma capisco che dovrò sperimentare a lungo. Il linguaggio non è affatto intuitivo e la sintassi, per me che programmavo col SInclair, è piuttosto dura. Ripartirò dalle istruzioni elementari, le librerie saranno pure una bella scorciatoia ma se prima non si sa programmare...
Come di ha suggerito speedyant, rimuovi tutte le librerie che hai sparso in giro in precedenza, lascia solo solo quella e prova a compilare un esempio che viene con la libreria.
Ciao, Ale.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.