Salve ragazzi, sono alle prese con arduino, in pratica non riesco a capire, quando ho una porta analogica senza carico (cioè a vuoto) leggo comunque un valore. Come mai ? Come posso controllare un'ingresso analogico per esempio se c'è inserito un determinato sensore (umidità o luce) ?
Ecco il codice:
int pinA0 = A0;
int pinA1 = A1;
int valpinA0 = 0;
int valpinA1 = 0;
int count = 0;
void setup(){
Serial.begin(9600); // Inizializza la porta seriale
}
Di norma devi mettere una R da 10k tra ogni pin analogico e GND, in modo da leggere sempre 0 su entrambi, poi in base ai valori che applichi ai due ingressi avrai le letture; i valori NON devno superare i 5V, altrimenti devi usare un idoneo partitore.
wsnicky:
Salve ragazzi, sono alle prese con arduino, in pratica non riesco a capire, quando ho una porta analogica senza carico (cioè a vuoto) leggo comunque un valore. Come mai ? Come posso controllare un'ingresso analogico per esempio se c'è inserito un determinato sensore (umidità o luce) ?
è normale, stai misurando la corrente "ambientale". Se ci fai caso, avvicinando una mano al pin i valori aumenteranno.
per sapere se un sensore è inserito puoi mettere una resistenza bella grossa dal PIN a GND, quando leggerai valori diversi da 0 allora il sensore è stato inserito. E' quasi impossibile che un sensore analogico di una lettura fissa su 0 (forse dei casi limite)
lesto:
per sapere se un sensore è inserito puoi mettere una resistenza bella grossa dal PIN a GND, quando leggerai valori diversi da 0 allora il sensore è stato inserito. E' quasi impossibile che un sensore analogico di una lettura fissa su 0 (forse dei casi limite)
Lui sta dicendo chiaramente che NON ha collegato alcun sensore ma solo delle resistenze, quindi con una normale pull-down da 10K verso massa
menniti:
Di norma devi mettere una R da 10k tra ogni pin analogico e GND, in modo da leggere sempre 0 su entrambi, poi in base ai valori che applichi ai due ingressi avrai le letture; i valori NON devno superare i 5V, altrimenti devi usare un idoneo partitore.
ovviamente deve leggere costantemente 0, in assenza di sensori.
menniti:
Di norma devi mettere una R da 10k tra ogni pin analogico e GND, in modo da leggere sempre 0 su entrambi, poi in base ai valori che applichi ai due ingressi avrai le letture; i valori NON devno superare i 5V, altrimenti devi usare un idoneo partitore.
Precisazione. Si possono usare anche altre tensioni di riferimento oltre quella standard 5V. In quel caso il fondoscala (valore letto 1023) cambia e non saranno piú 5V ma 1,1 oppure Vref che si applica esternamente (vale per il ATmega328)