Sto avendo problemi con una libreria che dovrei usare con il sensore IR, possiedo un kit starter Arduino 1 e la libreria usata nel codice sembra non esserci. Quindi ho provato ad installare questa libreria ma non capisco come adattarla al codice già presente.
Allego il codice
La libreria che ho installato l'ho trovata fra le librerie del programma di Arduino, del fatto che includevo due volte la libreria me ne ero accorto solo dopo e anche se avevo messo la seconda come commento non me lo dava come errore...
Ecco il codice attuale e l'errore che mi da, so che la soluzione potrebbe essere facilissima ma non ho ancora capito come funzionano bene le librerie
Arduino:1.8.19 (Windows Store 1.8.57.0) (Windows 10), Scheda:"Arduino Uno"
a = HCSR04.Distance();
^
exit status 1
expected primary-expression before '.' token
HCSR04 è il nome della classe e non lo puoi usare per richiamare i metodi implementati dalla classe stessa.
Devi usare il nome che hai assegnato all'istanza della classe HCSR04 ovvero sr04
Io comunque continuo a chiedermi come mai non si inizi mai dagli esempi inclusi nelle librerie invece di mettersi li a buttare righe di codice a caso
Vorrei fare una domanda per un progetto futuro, se io facessi un piccolo robot autonomo che compie le sue scelte leggendo e scrivendo dal serial monitor, funzionerebbe? Cioè non capisco se il serial monitor è sul software o c'è anche su Arduino solo che non lo puoi leggere?
Le idee le hai molto confuse, segui per caso qualche tutorial o guida o blog? Chiedo perché di solito questo è l'effetto che fa, più confusione.
Ciò che si vede dentro la finestra del serial monitor sono byte inviati da arduino via seriale TTL (pin 0 e pin 1), questi pin sono connessi al convetitore seriale/usb. Il monitor seriale è un software sul pc che si mette in ascolto sulla es. COM4, se ci sono dati li preleva e li stampa.
Il canale di comunicazione seriale TTL -> USB è bidirezionale cioè USB -> seriale TTL, quindi dal PC puoi inviare dati verso arduino. Ricorda sempre che i dati sono digitali sempre, cioè attraverso i cavi viaggiano bit. Ogni trasmissione è orientata la byte cioè 8 bit, più di 8 bit in una sola volta non puoi inviarli. Se servono due o più byte li devi inviare in sequenza.
Ora parlando di robot collegati via cavo ad un pc dove l'unico inconveniente è proprio il cavo, ma didatticamente è un esercizio validissimo. Esistono moduli di comunicazione che si collegano con 2 pin ad arduino e inviano i byte ricevuti via etere (radiofrequenza), per cui il vincolo del cavo è aggirabile.
Certamente come dici, i byte che invii dal PC verso arduino non li puoi vedere poiché non 'è alcuno monitor fisico collegato ad arduino, però li puoi sempre rinviare al PC che li mostra nella finestra chiamata Serial Monitor.
Intanto potresti fare esercizio collegando un servo motore RC ad arduino e comandarlo via Serial Monitor.