Buonasera a tutti,
mi servirebbe una mano per un progetto che sto svolgendo per la tesi di laurea. Sto utilizzando arduino uno per controllare una board che si occupa di controllare la sonda lambda della macchina. Detto questo il mio arduino non deve fare altro che acquisire un segnale analogico, generare un pwm, comunicare via SPI. Il tutto lo gestisco tramite labview, praticamente mando un carattere con il labview e in base a quel carattere l'arduino sceglie cosa fare, esempio "p" (manda un pwm), "s" (comunica via spi).
Ora veniamo al problema. La comunicazione funziona, mando la lettera "p" e con l'oscilloscopio vedo il pwm. Volevo provare anche se funzionava l'acquisizione analogica, e non avendo un generatore, ho "ponticellato" l'uscita che manda il PWM, con l'ingresso analogico, e ho provato a mandare il pwm e contemporaneamente acquisirlo per vederlo poi su pc....vi metto il codice che forse si capisce meglio:
#define pwm 6
int vet[]={-2,-2,-2,-2};
int cont=0;
char mess;
int intensita=0;
int analog=0;
void setup(){
Serial.begin(9600);// imposto la UART per lavorare a 9600
delay(200);
pinMode(pwm, OUTPUT); // imposto il pin come uscita
Serial.flush();
}
void loop(){
while(Serial.available()>0){
vet[cont]=Serial.read();
cont++;
delay(60);
}
mess=vet[0];
int c=1;
while ((vet[c]!=-2) && (c<=3))
{
intensita = intensita * 10 + (vet[c]-48);
c++;
}
if (mess=='p'){analogWrite(pwm,intensita);
analog=analogRead(A0);
Serial.print(analog);
}
for(int i = 0; i < c; i++) //riporta il vettore allo stato iniziale
{
vet[i] = -2;
}
Serial.flush();
cont=0;
intensita=0;
}
Il problema è che con l'oscilloscopio vedo il pwm, mentre se vado a leggere il valore analogico mi da si dei valori o 1023 o 0 (come dovrebbe essere il pwm), ma me li da un po a caso. Vi posto una foto.
Il problema non è dalla parte labview, perchè ho preso uno degli esempi labview già fatti, che implementano la comunicazione seriale.
A me sembra che prenda pochi punti, quindi a volte salta lo stato basso o alto e da quella forma a punta.....scusate se sono stato poco chiaro ma è un po un macello da spiegare.
Grazie, spero che riusciate a darmi una mano