Ciao a tutti, ammetto di essere un gran ignorante perchè ho acquistato da poco un arduino ethernet.
Vorrei solo sapere se posso utilizzare una porta seriale su questa scheda.
Dovrei utlizzare quella usata per programmarlo, oppure è possibile "mappare" altri piedini per poter comunicare in seriale con un altro device?
allora, la seriale Hardware, quella sui piedini 0 e 1, conviene lasciarla stare per le comunicazioni col pc e per la programmazione(che avviene prima che il programma parta dalla scheda, quindi la puoi usare abbastanza tranquillamente anche dal programma. dico abbastanza perchè sarebbe meglio lasciare qualche secondo di pausa nel setup perchè alle volte la seriale si incasina e costringe ad un reset hardware, ma nulla di preoccupante).
Se ti serve un'altra seriale, per esempio per comunicare con un altro device, puoi usare la NewSoftSerial. Ovviamente, essendo una virtualizzazione, la sua velocità di invio e ricezione dati è inferiore, ma comunque accettabile
Io vorrei collegare un antenna RFID che comunica in seriale
Ho visto questo:
Può fare al caso mio?
si e no.
Ti spiego. Il problema di quella librerie (che è quella ufficiale), è che la read è bloccante. ciò vuol dire che finchè non arriva un dato, il programma non andrà avanti a fare altro, ma rimarrà bloccato in un loop. In oltre, tutti i dati che arrivano quando NON sei bloccato nella read sono persi. malo, molto malo, se hai altro da fare (chessò aggiornare l'ora su un LCD, etc)
Se non altro da fare allora può essere una soluzione.
Invece la NewSoftSerial usa gli interrupt, non è ufficiale però
- non ha il problema che ti blocca nella read, se non ci sono dati in arrivo (o immagazzinati) ritorna il valore -1, esattamente come la Serial normale
- non ha il problema che perdi dati, se il baud rate non è troppo alto, ma questo è uin problema con tutte le seriali simulate via software
- consuma qualche risorsa in più, ma tutto sommato credo che ne valga ampiamente la pena
Insomma io spingo sulla NewSS che salti un pò di casini, anche se la SS non è da disprezzare in particolari frangenti.
Ho capito
Penso che la NewSoftSerial faccia al mio caso allora visto che l'applicazione dovrebbe essere un cronometro e l antenna non si può permettere di non rilevare concorrenti ![]()
Senti io non sono molto esperto
Come faccio ad utilizzare questa libreria?
Grazie mille per i consigli ![]()
crei un nuovoi progetto in arduino e lo savi (anche vuoto). Poi entri nella cartella sketchbook e ci copi dentro la classe (file .cpp e .h) che scarichi da qui: NewSoftSerial | Arduiniana
all'interno del file che scarichi c'è anche una cartella examples che ti mostra come si usa...
Ti ringrazio ![]()