Go Down

Topic: Conexión de sensor CO2 en Arduino Mega (Read 220 times) previous topic - next topic

llOzll

Oct 05, 2017, 11:24 pm Last Edit: Oct 06, 2017, 04:14 am by surbyte
Hola a todos

tengo un pequeño inconveniente, resulta que tengo que hacer funcionar un sensor de CO2 y cuando conecto el pin analógico A0 con el sensor me marca una cantidad de ppm(partes por millon) y cuando lo desconecto del pin A0 todavía me da un valor, es aquí donde no comprendo que pasa porque se supone que debería marcar 0 pero no!!, he intentado con los demás pines y todos funcionan así, no entiendo por que pasa esto, si alguien podría ayudar le agradecería mucho

IgnoranteAbsoluto

#1
Oct 06, 2017, 01:27 am Last Edit: Oct 06, 2017, 01:30 am by IgnoranteAbsoluto
Cuando un pin de entrada se deja desconectado, y no tiene activada la resistencia pull-up interna, es muy sensible a las interferencias eléctricas produciendo valores inestables y aleatorios. Si está configurado como entrada digital, producirá ceros y unos indistintamente cada vez que se lea, mientras que si está configurado como entrada analógica las lecturas darán cualquier valor dentro del rango que tenga (de 0 a 1023) de forma aleatoria. Es precisamente esta característica la que se aprovecha para inicializar la secuencia de la función random (véase el ejemplo en http://manueldelgadocrespo.blogspot.com.es/p/random.html en la llamada randomSeed(analogRead(0)) y en el comentario que la precede se puede leer una breve explicación)

Es por esto que cuando una entrada puede quedarse sin conectarse a la alimentación o a masa, ya sea directamente o a través de una resistencia u otro componente electrónico, se ha de poner una resistencia pull-up o pull-down. Por ejemplo cuando conectamos la entrada mediante un interruptor a masa y éste esté abierto, entonces el pin no estaría conectado a nada. En este caso se suele poner una resistencia pull-up, que puede ser externa o activando una resistencia interna del Arduino usando una instrucción tal como:
Code: [Select]
pinMode(pin, INPUT_PULLUP);

surbyte

Bien, lo que debes hacer es agregar una resistencia de 10k a GND y no tendras problemas al retirar el sensor. De todos modos no entiendo para que retiras el sensor, pero ese es otro problema no?

llOzll

lo de retirar el sensor es para ver si cuando no tengo conectado el sensor al arduino me siga dando valores, es por eso que dije que cuando retiro el sensor, es decir, quito el pin de la entrada analogica, arduino sigue leyendo valores el cual me parece muy extraño por que no tiene conectado nada. todo esto lo veo por la opción serial.print

surbyte

Y que te dijimos IgnoranteAbsoluto y yo?

Usa una resistencia pull down de 10k. La conectas entre pin A0 y GND. No verás nada raro al desconectar el sensor.

llOzll

claro que los entendí, tengo una duda mas... ¿es posible que tenga que lo de la resistencia en todos los dispositivos que conecte?

saludos!

surbyte

Colocala resistencia en aquellas entradas que vas a leer.
Las demas no importan.

Go Up