Pages: [1]   Go Down
Author Topic: problema analog valori impazziti  (Read 642 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti gente, ho un problema.
Ho compilato uno skatch per arduino ma quando lo eseguo e apro la consolle anche se nei Pin analog di arduino non collego niente i valori impazziscono da 1 a 2.09. Vi prego aiutatemi. Grazie

void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue;
  // print out the value you read:
  Serial.println(voltage * 5/1023);
  delay(200);
}
Logged

Parma
Offline Offline
Edison Member
*
Karma: 21
Posts: 2412
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Capti interferenze esterne, ad esempio i 50Hz della linea elettrica, devi collegarlo a GND se non vuoi captare questi disturbi in modo così elevato

Ciao
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok grazie adesso provero con GND e ti faccio sapere. Gentilissimo
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho provato a GND ma niente, se collego un gallegiante da scooter mi da questi valori di continuo a loop da premettere che il galleggiante è al massimo cioè la vaschetta è piena


* Immagine.jpg (54 KB, 595x733 - viewed 16 times.)
« Last Edit: August 11, 2012, 08:37:54 am by Luigi89 » Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 269
Posts: 21824
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il gallegiante da un valore analogico in funzione del livello del recipiente o é solo un interuttore che si chiude/ apre il contatto quando supera la soglia?

Se é un interuttore devi usare un entrata digitale e usare una resistenza Pullup o Pulldown a secondo come lo colleghi.
Se il sensore cambia resistenza in funzione del livello Ti serve una resistenza per fare un partitore resistivo e leggere la tensione con un entrata analogica.
Ciao Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il gallegiante da un valore analogico in funzione del livello del recipiente o é solo un interuttore che si chiude/ apre il contatto quando supera la soglia?

Se é un interuttore devi usare un entrata digitale e usare una resistenza Pullup o Pulldown a secondo come lo colleghi.
Se il sensore cambia resistenza in funzione del livello Ti serve una resistenza per fare un partitore resistivo e leggere la tensione con un entrata analogica.
Ciao Uwe
Si il sensore cambia resistenza il base al livello, quindi che resistenza dovrei mettere? Adesso sto usando un entrata analogica perché se riesco vorrei che leggesse i valori in base al livello. Grazie del vostro aiuto ma io sono alle prime armi ma tutto sommato ci sto capendo qualcosa .
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 269
Posts: 21824
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora devi mettere il sensore in serie a una resistenza tra 5V e massa e portare il comune sul entrata del Arduino.
Al posto del LDR metti il sensore livello.

Come valore della resistenza prendi una che corrisponde alla resistenza del sensore livello a metá serbatoio.

Ciao Uwe
Logged

Selvazzano Dentro - Padova
Offline Offline
Edison Member
*
Karma: 45
Posts: 1486
"Chi sa fa, chi non sa insegna"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se vuoi puoi evitare l'uso di un resistore esterno, sfruttando quello interno da 20k.

Se hai l'IDE 1.0.1, in setup inserisci:

pinMode(A0, INPUT_PULLUP);           // set as input with internal 20k pull-up resistor

Ettore Massimo Albani
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 269
Posts: 21824
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se vuoi puoi evitare l'uso di un resistore esterno, sfruttando quello interno da 20k.

Se hai l'IDE 1.0.1, in setup inserisci:

pinMode(A0, INPUT_PULLUP);           // set as input with internal 20k pull-up resistor

Ettore Massimo Albani
Eviterei l' uso del della resistenza pullup interna perché é troppo inprecisa. Il datasheet da valori tra 20 e 50kOhm. Se cambi piedino o cambi Arduino devi ricalibrare il circuito cambiando un fattore nella formula.
Ciao Uwe
Logged

Pages: [1]   Go Up
Jump to: