Comunicazione agli utenti

Navigazione

listato 2 - acquisizione_6CH

Questo listato permette di acquisire in continuo fino a quando non si stacca la porta USB dal PC e mandare i dati acquisiti alla porta COM.


// ------------------------------------
// di Dolmetta Angelo
// acq V.03 - luglio / 2011
// acquisizione_6CH
// ------------------------------------
// definizione variabili array primo canale *(1)

int ch0;
int ch1; int ch2;
int ch3;
int ch4;
int ch5;

// setta la velocità di trasmissione della porta seriale
// da non confondere con la frequenza di campionamento
void setup() {
Serial.begin(9600);
}
 
// ciclo di acquisizione
void loop() {
// legge canale read (0); ed invia il dato alla porta com print(ch0)
// per visualizzare il dato acquisito sul monitor del PC

ch0 = analogRead(0);
Serial.print(ch0);
Serial.print (" ");

ch1 = analogRead(1);
Serial.print(ch1);
Serial.print (" ");

ch2 = analogRead(2);
Serial.print(ch2);
Serial.print (" ");

ch3 = analogRead(3);
Serial.print(ch3);
Serial.print (" ");

ch4 = analogRead(4);
Serial.print(ch4);
Serial.print (" ");

ch5 = analogRead(5);
Serial.println(ch5);

// l'ultimo print deve essere sostituito con println
// dove l'estensione ln indica al programma di acquisizione di andare a capo
}


--------------------------------------------------------------------------------------------------------

nel caso si volessero acquisire solo i primi tre canali scrivere :

ch0 = analogRead(0);
Serial.print(ch0);
Serial.print(" ");

ch1 = analogRead(1);
Serial.print(ch1);
Serial.print(" ");

ch2 = analogRead(2);
Serial.println(ch2);

Serial.println(ch2); signifiva che occorre dopo aver scritto il valore occorre andare a capo

// scrivento Serial.print (" ")   il separatore trai numeri è uno spazio
//                Serial.print ( , )    il separatore è una virgola ecc.
}
-------------------------------------------------------------------------------------------------------------


Lanciare il programma ;
  1. fare un copia incolla del listato precedente;

  2. salvare il file ACQCONTINUA_ 6CH;

  3. compilare il file;

  4. caricare il file;

  5. eseguire il file.


Una volta che inizia l’acquisizione controllare che la trasmissione dei dati coincida con 9600 baud  con quanto indicato “Serial.begin(9600);” nel listato.


Nel caso in cui compaiano simboli strani a monitor occorre ridurre la frequenza di trasmissione a 4200 baud o anche meno.


Attenzione non sempre tutte le possibili combinazioni dei valori di trasmissione sono implementate, alcune possono anche non funzionare.


In assenza di altri programmi fare un copia incolla dei dati acquisiti in un foglio elettronico, selezionare tutti i dati e visualizzare il grafico




il seguente listato permette di acquisire tre canali contemporaneamente, e ad intervalli fissi impostati con la variabile " ts " = tyme sampling espressa i microsecondi


// --------------------------------------------

// di Dolmetta Angelo

// acq V 001 - gosto/2011

// ACQCONTINUA_3CH + clock

// verifica ok

// --------------------------------------------


// definizione variabili array primo canale 0

int ch0;

int ch1;

int ch2;

unsigned long time;

long ts=5000; // tyme sampling in microsecondi

int c=0;


// setta la velocità di trasmissione della porta seriale

// da non confondere con la frequenza di campionamento


void setup() {

Serial.begin(115200);    

}


// ciclo di acquisizione


void loop() {


time = micros();  


if(time > c*ts){

ch0 = analogRead(0);

ch1 = analogRead(0);

ch2 = analogRead(0);

//Serial.print(time);

Serial.print(" ");

Serial.print(ch0);

Serial.print(" ");

Serial.print(ch1);

Serial.print(" ");

Serial.println(ch2);

c=c++;

}

}

Comments