From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Forum Italiano sui Prodotti NI

annulla
Visualizzazione dei risultati per 
Cerca invece 
Intendevi dire: 

Acquisizione da porta seriale

Buona sera,
sto facendo un progetto per l'esame di misure all'università che prevede l'acquisizione di segnale tramite arduinoDUE ne faccia la FFT e la invii sulla seriale. Da qui tramite labview grafico o il segnale o la FFT corrispondente in base ad un pulsante collegato ad arduino e che mi dia la possibilità di scegliere cosa graficare. Ora visto che non posso andare in facoltà perché lavoro il prof. ha detto di generare il segnale tramite DAC e poi acquisirlo su un pin analogico. Con l'oscilloscopio a lavoro ho visto cheil segnale si genera correttamente. Il problema nasce quando grafico tramite labview in quanto la frequenza del segnale acquisito non cambia anche se modifico la frequenza, se cambio il baud rate ecc. ecc. Il segnale che visualizza labview è una sinusoide, cosa giusta, ma ha un periodo di 120 secondi. Sto da 10 giorni e non riesco ad andare avanti. Qualcuno mi può aiutare?
Grazie mille 🙂

 

labview.jpg

 

 

0 Kudos
Messaggio 1 di 7
5.923Visualizzazioni

un paio di domande per capire meglio il problema:

I campioni della sinusoide arrivano tramite seriale da Arduino o vengono acquisiti da un dispositivo di acquisizione NI?

Che tipo di dato arriva a LabVIEW?

 

Se ho capito bene stai trasferendo da seriale dei dati grezzi campionati da Arduino, senza trasferire le informazioni temporali (freq. di campionamento, T0 ecc.). In questo caso vedi la forma d'onda giusta ma con un dato sulla frequenza sbagliato.

E' corretto?

 

 

0 Kudos
Messaggio 2 di 7
5.896Visualizzazioni

Ciao  Lamber_86,

i dati li acquisisco da seriale arduino, che in realtà è una porta USB vista come COM, non ho nessun dispositivo NI.

I dati che mi arrivano sono i dati  grezzi campionati da arduino.

Hai centrato il problema forma d'onda giusta ma informazioni temporali sbagliate...

Suggerimenti?

Grazie

0 Kudos
Messaggio 3 di 7
5.883Visualizzazioni

Costruisci una waveform, in modo da avere anche le informazioni temporali.

Il blocco LabVIEW si chiama "Build Waveform"; dai in ingresso l'array di dati, l'istante t0 del primo campione ed il delta t tra i vari campioni (ovvero l'inverso della frequenza di campionamento). 

Il dato in uscita è appunto una Waveform, che puoi collegare in ingresso ad un Waveform Graph.

0 Kudos
Messaggio 4 di 7
5.876Visualizzazioni

Ciao e grazie per il suggerimento. Quindi se arduino acquisisce a 16 KHz devo impostare dt=1/(16000). Per t0 cosa devo impostare? Inserendo un control mi da un cluster data. Se non lo setto succede qualcosa.

Grazie

 

0 Kudos
Messaggio 5 di 7
5.867Visualizzazioni

Il t0 è l'istante di tempo in cui il primo campione è stato acquisito, in formato timestamp (data, ora ecc). Ad ogni modo basta che imposti il "delta t" per avere la giusta frequenza

0 Kudos
Messaggio 6 di 7
5.864Visualizzazioni

Ciao  Lamber_86,

ti ringarzio per  suggerimenti precendeti sono stato in laboratorio ho testa e funziona "quasi" tutto. Infatti partendo con un segnale con una data forma acquisisco e visualizzo in maniera corretta. Il problema nasce se modifico la forma del segnale (tipo da sinusoidale  a quadrato), la risposta da parte di Labview è mooolto lenta nonostante io abbia impostato il baud rate a  115200. Con un piccolo programmino ho letto la porta seriale ed al modificare della forma del segnale trasmette i nuoni valori. Dove sbaglio ?

Grazie mille

Luigi V

0 Kudos
Messaggio 7 di 7
5.769Visualizzazioni