Salve a tutti,
vorrei monitorare e registrare la temperatura di acquario (puramente per cultura personale), ho imparato da poco a programmare arduino con labview, con il termistore che esce con il kit non ho problemi (analogico) per l'acquario però ho incautamente acquistato un sensore digitale DS18B20, solo che non riesco in nessun modo a capire come si integra in labview la libreria Onewire relativa alla gestione della sonda.
Ho seguito un po' di post ma nessuno purtroppo sono a livello troppo avanzato per il mio attuale stato di conoscenze.
Ringrazio anticipatamente per l'aiuto.
Se LabView legge da seriale non devi fare altro che leggere il sensore e stampare su seriale da Arduino
--> http://download.milesburton.com/Arduino/MaximTemperature/DallasTemperature_372Beta.zip
--> http://www.pjrc.com/teensy/arduino_libraries/OneWire.zip
All'interno della libreria Dallas trovi l'esempio "Single" che stampa la temperatura su seriale. (devi forse cambiare il formato)
Per il collegamento
fonte: MilesBurton.com
Grazie per la risposta,
ho fatto un paio di prove ma non riesco proprio =( putroppo sono ancora ignorante in materia!
Posta il codice che usi col termistore.
Il tuo post è un po' confuso.
Non capisco che c'entra la libreria OneWire con LAbView visto che quast'ultimo vede solo i dati che gli arrivano dalla seriale.
Devi solo cambiare il codice sull'Arduino per leggere il DS18b20 (ci sono un sacco di esempi e librerie) e fornire il valore nello stesso formato con cui fornivi il valore del termistore.
@PaoloP (che ringrazio per l'attenzione), non posso postare un codice perché in labview non c'è codice è un linguaggio puramente a blocchi di funzioni.
@zoomx (che ringrazio ugualmente), hai ragione sia sul fatto che il post è confuso e chiedo venia sia sul fatto che io debba modificare il codice su arduino ma, io su arduino ho caricato il codice che diciamo mi fa da interfaccia tra labview e arduino stesso, tale codice include diverse librerie es. lettura/scrittura di un pin digitale, come la lettura dei pin analogici etc etc, ho letto sul sito della NI che produce labview che dovrei "includere" la libreria onewire.h in arduino e poi usare un schema VI per labview però mi risulta difficile capire come modificare il codice (LabVIEWInterface) che carico in arduino.
Purtroppo con la ide "base" di arduino ho avuto pochissimo a che fare perché avendo più esperienza con eclipse e labview ho iniziato con loro per poi passare completamente a labview.
Non so essere più chiaro il mio campo specialistico è la chimica l'elettronica/informatica è una passione.
Grazie comunque per l'ìnteresse.
Stefano,
conosci questa pagina : https://decibel.ni.com/content/groups/labview-interface-for-arduino?view=documents ... ci sono varie spiegazioni ed esempi ... prova a guardare ...
Guglielmo
Ho inquadrato il problema.
Ho visto che LabView usa uno sketch per comandare l'Arduino, un po' come la Firmata, quindi per aggiungere funzioni devi inserirle nel loro sketch seguendo quelle ce sono le loro direttive, altrimenti LabView non le capisce.
Ergo... devi chiedere a loro e consultare il loro forum.
Ora, grazie a PaoloP, ho capito anche io e quindi adesso comprendo il motivo della libreria in LabView e non in Arduino.
Si effettivamente ho scritto il post da cani, ma a parte serie di notti insonni (per altri motivi) non ho giustificazioni da dare.
Allora, dopo due sberle in faccia per svegliarmi posso dire che :
A) Sì! dovevo specificare che dovevo modificare lo sketch per interfacciare arduino con labview.
B) Sì! per farlo devo seguire la procedura indicata in https://decibel.ni.com/content/message/23879#23879 che il sito consigliatomi da Guglielmo che ovviamente merita lo stesso un grazie, che avevo già vistato in nottata.
il problema è che nel link sopracitato ci sono le istruzioni ma scritte a membro di segugio almeno per me!
... mi sembra che al post https://decibel.ni.com/content/message/23934#23934 quel tizio dia una spiegazione e alleghi un po si moduli sw.
Ovvio comunque che ... devi imparare un po' l'ambiente Arduino, altrimenti avrei sempre difficoltà ad interfacciarlo ... comincia con studiarti bene il Reference Arduino - Home e la parte Librerie : Libraries - Arduino Reference ...
Guglielmo
emm Gugliemo grazie.... stavo provando ma.... NOVITA' .... l'ide di arduino non mi fa fare niente ! mi spiego chiaramente questa volta:
Apro l'ide, faccio Nuovo mi si apre il nuovo sketch_jun26a (non mi ricordo si chiamasse così ma ho usato poco) e qualsiasi TASTO FISICO SULLA TASTIERA io prema non mi scrive una beneamata cippa ! Anche aprendo il classico file di esempio blink e provando chessò a modificare il pin... niente.... persino se faccio copia e incolla non mi degna di risposta.
Ho provato disinstallare e reinstallare ma nada ho messo anche la versione bene 1.5.2 ma idem ... ho anche reinstallato creando una cartella differente (Arduino2) bho !
Non è che hai spuntato l'opzione nelle preferenze "Usa editor esterno"?
Si!.... era per vedere se eravate preparati .......Dopo questa
!!!!
Grazie a tutti. Vi terrò aggiornati.
p.s. è bello trovare gente cortese grazie ancora.
Ciau
Vi aggiorno,
La libreria che si trova in giro facilmente è desueta e non funziona proprio con la ide 1.0.5 quella nuova si può trovare
Dallas Temperature Control Library - MilesBurton.com se mai dovesse servirvi.
Per adesso sono riuscito a far funzionare la sonda, adesso provo ad integrare la libreria con lo sketch di labview.
Ciau
Stefanodal74,
io invece devo ringraziare te perché mi hai fatto sapere che LabView supporta Arduino con una sua libreria. Nei prossimi giorni avrò a che fare proprio con questo ambiente, anche se per motivi del tutto differenti, e l'opzione Arduino potrebbe essere utile!
Riguardo al tuo problema con l'IDE, l'unico baco noto che conosco si presenta sotto Windows se hai usato dongle bluetooth o hai bluetooth di sistema. Si manifesta con un caricamento sui 20-30 secondi e un blocco altrettanto lungo appena si accede al menù tools. Se ne parla su questo forum qui Nuovi sviluppi IDE 1.8.x - Megatopic - Arduino Forum si consiglia di usare questo IDE http://forum.arduino.cc/index.php/topic,118440.0.html o di cambiare la dll rxtxserial (o nome simile!).
Zoomx, il problema di Stefano dal 74 (perchè prima aveva un nome diverso?) era quello di aver selezionato l'opzione dell'edito esterno che disattiva l'edito dell'IDE.
Eccomi di ritorno,
con un po' di esperienza in più sia sull'ide Arduino che sulle interazioni labview, per correttezza intellettuale vi aggiorno,
La sonda DS18B20 si deve controllare con l'utilizzo di ben DUE librerie una chiamata OneWire.h e l'altra DallasTemperature.h (in realtà basta la OneWire.h ma con la DallasTemperature le cose sono MOOOOOOOOLTO più semplici).
Per integrare le librerie nell programmino da caricare in arduino che fa il modo il nostro amico capisca le richieste di labview qui viene la parte divertente, se qualcuno avrà mai necessità sarà mio piacere spiegare passo per passo cosa fare sia dalla parte IDE ARDUINO sia dalla parte LABVIEW (DUE SORDI CHE SI PARLANO!!!!).
Detto questo lo stato attuare è : SONO RIUSCITO AD OTTENERE LA TEMPERATURA LETTA DA LABVIEW MA.........l'utilizzo di sta MALEDETTA sonda digitale mi sta creando troppi troppi problemi e vorrei passare a una analogica sempre waterproof se me ne potete consigliare una ve ne sarei grato.
Saluti.
Le due librerie che hai citato sono librerie che vengono fornite con LabView? Perché in Arduino la standard attualmente è Wire.h mentre per il Dallas poi ci sono diverse versioni, meglio le più recenti che sfruttano il convertitore a 12 bit, il primo modello di DS1820 era solo a 8 o 9 bit, adesso non ricordo.
Se vuoi passare all'analogico io di waterproof non ne conosco. Ho usato l'LM35 che ho opportunamente annegato in resine per renderlo waterproof. L'LM35 ha un'uscita in corrente, per cui richiede una resistenza di precisione come shunt, ma se non hai problemi di disturbi e il cavo è corto puoi usare anche un sensore che restituisce una tensione.
Eccomi di nuovo qui!
Allora avendo ormai sviscerato e risolto il mio problema con arduino uno ho pensato bene di andarmi a infilare in altri guai.
Ho acquistato un arduino Due che mi è arrivato oggi.
Ovviamente come da prassi ho rifatto tutti gli esperimenti che avevo fatto con arduino uno per capire le differenze.
Ed indovinate un po' su cosa mi sono piantato ??? Ovviamente sulla lettura di questa benedetta DS18B20.
Ho scoperto che il problema è sul delayMicroseconds () citato in vari tread e addirittura nella libreria stessa Onewire.h
// Arduino 1.5.1 may have a bug in delayMicroseconds() on Arduino Due.
// OneWire in Due - #30 by pjrc - Arduino Due - Arduino Forum
// If you have trouble with OneWire on Arduino Due, please check the
// status of delayMicroseconds() before reporting a bug in OneWire!
però mica ho capito come devo "checcare" lo status e come risolvere il problema.
Grazie ancora a tutti quelli che mi hanno prestato attenzione.
Ciau!