Vous êtes sur la page 1sur 11

Como se indica en el anteproyecto, se va a utilizar una placa Arduino Duemilanove.

El mdulo Ethernet lo emplearemos en una etapa posterior, cuando las lecturas de medidas se hayan resuelto por completo. Respecto a las sondas de temperatura y humedad, tenemos el circuto 808H5V5 para la sonda de humedad, y los circuitos MCP9700A y LM35 para las sondas de temperatura. Se van a realizar pruebas con ambos circuitos, para evaluar cual es el ms adecuado para nuestro proyecto. Adems, se buscar la forma de mejorar la precisin de las lecturas. A continuacin vamos a explicar todos estos puntos, junto al diseo inicial de la conexin en la placa de prototipos. Licenciado bajo Creative Commons CC-BY 3.0.

Entradas analgicas en Arduino, nivel de referencia y conversin A/D


Para empezar, vamos a describir brevemente el sistema de entradas analgicas de Arduino y la conversion A/D. Como podemos comprobar por la descripcin de la placa, disponemos de 6 de estas entradas, con una resolucin de 10 bits (esto es, que miden 1024 niveles diferentes en la seal recibida) y que admiten valores entre 0V y 5V (por defecto). Podemos ajustar este rango de entrada mediante la seleccin de la seal de referencia analgica. En la versin de Arduino que estamos empleando (con un ATMega 328) disponemos de las siguientes referencias: 5V (la que viene por defecto) 1.1V (generada de manera interna por la placa Arduino) Externa, que la recibe por medio del pin AREF, y podemos usar para establecer una referencia propia. Estos valores sern de gran importancia en la precisin de las medidas, dado que nuestros sensores (tanto de temperatura como de humedad) entregan un voltaje de salida concreto para cada medicin, que depender del modelo de circuito empleado. En el mejor de los casos, nuestros sensores nos entregaran una seal entre 0V y 5V, que nos permitiera aprovechar todo el margen disponible, pero ahora veremos que esto no sucede as, y deberemos escoger adecuadamente la referencia para poder obtener la precisin adecuada. Veamos esto con ms detalle para intentar entenderlo: Si escogemos el rango de 0V a 5V, con 10 bits de precisin (los 1024 niveles mencionados) tenemos que cada 4.88mV de incremento de la seal (aproximadamente, 5000/1024) suponen una diferencia de 1 bit. Esto quiere decir que una seal que tuviera 2.3V nos dara como nivel 471 [(2,5*1024)/5] (se obtiene 471.04, pero se redondea al entero ms cercano. De igual forma, una seal con 4.85V nos dara el nivel 993 [(4.85*1024)/5]. Cualquier seal negativa o igual a cero nos dar nivel 0. Cualquier seal de 5V o superior nos dar como nivel 1023. Si empleramos la referencia de 1.1V, cada bit representara 1.07mV. Esto nos permite medir con mucha ms precisin seales muy pequeas, pero como veremos ms adelante, ya no podemos superar los 1.1V (cualquier seal superior dara como nivel 1023). Por lo tanto, vemos como la seleccin de la seal de referencia impone restricciones a la amplitud de los niveles de entrada posibles.

Descripcin de los sensores


Comenzaremos describiendo la primera de las sondas de temperatura. La MCP9700A de la casa Microchip tienen un rango entre -40Cy 125C y un error tpico de +-1C. Puede alimentarse con cualquier tensin entre 2.3V y 5.5V, y entrega 10mV por C, con valores de salida entre 100mV (a -40C) y 1,75V (a 125C). Debido a la relacin que presenta entre temperatura y voltaje, habr que hacer un sencillo clculo para traducir las lecturas de mV a los grados que representa (lo veremos

ms adelante, en la parte del cdigo). El clculo concreto se puede obtener en la hoja de caractersticas del dispositivo. El segundo sensor de temperatura, el LM35 de la casa National, tiene un rango entre -55C a 150C, con un error tpico de 0.75C. La alimentacin oscila entre los 4 y los 30 voltios, y entrega 10mV por C, con valores de 0mV (0C) hasta 1500mV (150C). Notar que decimos que mide desde -50C, y sin embargo entrega 0mV a 0C. Esto se debe a que se trata de un sensor de grados centgrados que, sin aadirle ningn componente, entrega valores de mV directamente proporcionales a la temperatura positiva en grados centgrados, por ejemplo 170mV para una temperatura de 17, y 1V para una temperatura de 100C. Esto facilita enormemente la utilizacin en aquellos entornos que no necesitan de lecturas de temperatura negativas (como es nuestro caso). En caso de necesitar valores negativos, es necesario aadir a la salida una resitencia conectada a la tensin de alimentacin en negativo, pero esta aplicacin queda fuera de nuestro proyecto actual. Respecto a la sonda de humedad, modelo 808H5V5 de Sencera, mide entre el 0% y el 100% de humedad relativa, teniendo la mayor precisin entre el 30% y el 80% (medida a 25C de temperatura). El error tpico en la medida es del +-4% durante el primer ao de uso, a partir del cual pierde en torno a 1% adicional por cada ao. La sonda puede operar entre -40C y 85C, y tiene un tiempo de respuesta de 15s como mximo. La alimentacin es exclusivamente a 5V, y los valores de salida son 0,8V para un 0% de humedad relativa, y 3,9V para un 100%.

Nivel de referencia y mejora de la precisin


Como vemos, los componentes que tenemos no entregan valores entre 0 y 5 voltios, sino que el rango de salida es mucho menor. Esto nos hace perder mucha precisin en la medida, y denemos solucionarlo. Lo primero que podemos hacer es modificar la referencia de la entrada analgica, para lo cual como hemos visto tenemos varias posibilidades de ajuste, interna a 1,1V o externa. Dado que buscamos la mayor simplicidad en nuestro circuito, vamos a optar por la referencia interna.

Usando la referencia de 1,1V


Con respecto a los sensores de temperatura, y dado que la mxima salida est en torno a los 1,5V y 1,75V segn el modelo, podemos emplear la referencia de 1,1V. Esto va a tener como contrapartida una limitacin en la mxima temperatura a medir, dado que cuando se superen los 1,1V en la salida del sensor siempre se leern como 1,1V. En la sonda MCP9700A, el valor mximo que corresponde a los 1100mV son 60, temperatura ms que suficiente para nuestro proyecto, manteniendo la lectura de la mmina temperatura en -40C, correspondiente a 100mV. Con respecto al sensor LM35, los 1100mV corresponden a 110C, y la mnima temperatura se sigue manteniendo en 0C a 0mV. Sin embargo, esta referencia de 1,1V nos impide usar directamente el sensor de temperatura, dado que la salida correspondiente al 100% de humedad relativa se sita en 3,9V. Por lo tanto, para poder usar los dos sensores de temperatura y el de humedad de forma simultnea con esta referencia, debemos reducir la salida del sensor de humedad, escalndola al nivel adecuado. Para escalar la salida de 3,9V y convertirla en 1,1V, el mecanismo ms sencillo que tenemos es un divisor de tensin. Si hacemos que nuestra seal sea 0.28 veces la seal original (1.1/3.9=0.28), la salida mxima del sensor es 1,1V, y la mnima de 0,8V se convierte en 0,224V. Para hacer esto, necesitamos un divisor de tensin:

Y la relacin que debemos cumplir es:

Para implementarlo, usaremos una resistencia fija para R2, de un valor comercial comn (1k), y para R1 usaremos un potencimetro que nos permita un ajuste preciso. Con los valores que tenemos para los voltajes de entrada y salida, y el valor indicador para R2, el valor de R1 que debemos ajustar con el potencimetro es de 2571,43, por lo tanto usaremos un potencimetro de 4,7k, valor comercial facilmente disponible. Dado que las resistencias comerciales tiene una cierta tolerancia, el valor final real en el potencimetro variar un poco respecto a este clculo. Para el ajuste preciso, alimentaremos el divisor con 5V, y ajustaremos el potencimetro hasta obtener 1,4V exactos. Con esta modificacin, ya podemos emplear los tres sensores de forma simultnea con la referencia de 1,1V.

Conexionado de los componentes


A la hora de conectar los componentes, vamos a utilizar condensadores de desacoplo entre las patillas de alimentacin y tierra de cada elemento, para filtrar el ruido en la seal. Estos condensadores son de un valor muy reducido (1f) y no afectan al funcionamiento del circuito. Los componentes se alimentarn a partir del pin de 5V de Arduino, y la tierra ir conectada al pin GND. La salida de cada componente se conectar a una entrada analgica (0, 1 y 2). Es importante respetar correctamente los pines positivos y negativos de cada componente. Por ejemplo, en nuestro sensor de temperatura, tal y como se ha representado aqu, el pin positivo es el de la izquierda, mientras que en el de humedad es el de la derecha. Si empleamos la referencia de 5V, la conexion es muy sencilla y directa, como vemos a continuacin. Recordar que los 3 condesnadores (C1, C2 y C3) son de 1f:

Si por el contrario vamos a utilizar la referencia de 1,1V, con el divisor de tensin, la conexin ser la que mostramos a continuacin. De nuevo los condensadores son de 1f, la resistencia es de 1k y el potencimetro de 4,7k. Recordar que el potencimetro debe estar correctamente ajustado para permitir una lectura precisa (si lo alimentamos con 5V debemos obtener 1,4V de salida).

La conexin de la patilla central del sensor de humedad va a una de las patillas del potencimetro (aqu se ha representado con el pequeo cable amarillo). Recordar que a pesar de emplear otra referencia, los circuitos se siguen alimentando a 5V.

Siguiendo con el proyecto, vamos a ver el cdigo necesario para leer los datos de los sensores, y mostrarlos por la salida serie.
En esta primera versin no empleamos el mdulo Ethernet, y nos centraremos en realizar las lecturas de las entradas analgicas. Tal y como se vi en el anterior post, podemos utilizar dos referencias para los voltajes de entrada (5V y 1,1V), el cdigo de ambas versiones es prcticamente idntico a excepcin del ajuste de la seal de referenvia (5V 1,1V) y el consiguiente clculo para convertir la seal leda en la entrada al valor en mV. Comenzamos por la versin ms sencilla, la de 5V, y despus indicaremos las modificaciones necesarias para la versin a 1,1V. Veremos las ecucaciones que necesitamos para convertir los datos recibidos de las entradas analgicas en valores de temperatura y humedad relativa, ecuaciones que obtenemos de las hojas de caractersticas de los dispositivos. Dado que disponemos de dos tipos distintos de sensores de temperatura, necesitaremos dos ecuaciones diferentes en funcin del dispositivo utilizado. Licenciado bajo Creative Commons CC-BY 3.0.

Conversin de la seal de entrada a mV


La entrada analgica entrega un valor entre 0 y 1023, que necesitamos convertir en mV. Esta conversin depende de la seal de referencia escogida. Para la versin a 5V, esto se hace mediante

la ecuacin:

Para la versin a 1,1V, usamos una ecuacion parecida, teniendo en cuenta la nueva referencia:

Conversin de la seal en mV a los valores reales


Debemos convertir estos valores en mV a sus correspondientes valores fsicos (C y % de humedad relativa). En todos los casos, debemos obtener las ecucaciones para la conversin de las hojas de caractersticas de cada dispositivo.

Sensores de temperatura
En el caso de las sondas de temperatura MCP9700A, vemos que la seal que entregan a 0C es de 500mV, as pues al valor recibido en mV desde la entrada analgica le restaremos esta cantidad. Adems, el valor que se obtiene habr que dividrlo por 10, dado que cada grado de temperatura supone un incremento de 10mV en la seal de salida. Por lo tanto, la ecuacin es:

En el caso de los sensores LM35, ya estn calibrados para grados centgrados. Por lo tanto, la salida en mV es directamente proporcional a la temperatura, y slo deberemos dividir el valor por 10 (cada grado supone un incremento de 10mV en la salida):

Estas ecuaciones son las mismas tanto para la seal de referencia de 5V como para la seal de 1,1V.

Sensor de humedad
En el caso del sesor de humedad 808H5V5, la ecuacin sufrir modificaciones en funcin de la seal de referencia, dado que en uno de los casos utilizamos un divisor de tensin. En la versin a 5V, comprobando las hojas de caractersticas vemos que el sensor entrega 0,8V para un 0% de HR y 3,9V para el 100%. Por lo tanto, a la seal medida en mV le restamos 800mV, y para obtener el dato en porcentaje, dividimos el resultado entre 31 (3900 - 800=3100):

Si empleamos la referencia de 1,1V, deberemos hacer los clculos para adaptar estos valores. Con el divisor de tensin empleado, las seales de salida normales, 0,8V a 3,9V, se convierten en 0,224V a 1,092V. Esto supone que al valor medido en mV deberemos restarle 224mV, y para convertir el resultado a porcentaje, dividimos por 8,68 (1092-224=868):

Cdigo Arduino
Para descargar los ficheros con los programas, ve al final del post.

Versin con referencia de 5V


Comenzamos con el cdigo para la referencia de 5V. Lo que vamos a llevar a cabo en esta primera versin es una lectura simple que nos muestre los datos por el puerto serie. Este cdigo servir como primera aproximacin, y veremos que tiene algunos problemas que se solucionarn en posteriores versiones. Est completamente comentado (incluyendo las explicaciones de las ecuaciones anteriores). Por defecto se supone el uso de las sondas de temperatura MCP9700A, pero tambin se incluye el cdigo para las LM35 (comentado).

Versin con referencia de 1,1V


El cdigo para la versin a 1,1V tiene algunas variaciones. La primera es el cambio de la tensin de referencia con la instruccin analogReference(INTERNAL), y adems tendremos que adaptar las ecuaciones empleadas para hacer la conversin de las lecturas, tal y como se explica en las ecuaciones anteriores.

Ejecucin y resultados
Mediante el entorno de desarrollo de Arduino, se ha compilado el cdigo y se ha subido a la placa, donde comienza a ejecutarse inmediatamente. Si nos conectamos al monitor serie incluido en el entorno, obtenemos las lecturas de los sensores. Tal y como se comenta en el cdigo, esta primera versin tiene algunos problemas que se observan en el resultado: Baja estabilidad de las medidas: las lecturas de las tensiones en las entradas analgicas varan mucho entre cada ejecucin (esto es especialmente notable en las lecturas del sensor de humedad). Diferencia de temperatura entre los dos sensores: cada sensor entrega una temperatura diferente, debido al error interno que presenta cada componente. Resultados sin calibrar: los valores mostrados difieren del valor real de temperatura y humedad en la habitacin, dado que no se han calibrado los componentes. En la versin a 5V, debido a la prdida de precisin, los saltos entre diferentes medidas son bastante grandes. El primero de estos problemas se puede solucionar de forma sencilla en las siguientes versiones del cdigo. Los dos problemas referidos a la calibracin de los sensores se dejan para una etapa posterior, con el montaje final ya realizado en la placa definitva, dado que es posible que el montaje actual (en una placa de prototipado) introduzca ruido en las seales que afecte a las medidas. Con respecto al problema de precisin, se soluciona empleando la referencia de 1,1V. Un ejemplo de la salida del programa (en concreto, de la versin a 1,1V usando sensores LM35) es el siguiente:

Programa inicial, referencia 1,1V Se puede observar la elevada variabilidad del sensor de humedad, y la precisin en las medidas: la variacin mnima que pueden detectar los sensores de temperatura est en torno a los 0,11C, mientras que el salto mnimo en la versin de 5V est en torno a los 0,51C (como vemos, directamente relacionado con la seal de referencia escogida).

Captulo 6: Usando los pines analgicos


Como se mencion anteriormente en este libro, el mundo real no es digital y, a veces, no puedes traducir los cambios en el entorno en lecturas digitales. Por ejemplo, la temperatura no cambia slo de fro a caliente, cambia en un rango valores distintos y, normalmente, estos cambios ocurren muy lentamente. ste es el motivo por el cual, a menudo, utilizamos sensores analgicos para leer los parmetros del entorno tales como, la temperatura, la luz, o el movimiento. Esta informacin resultante es almacenada como datos digitales secuenciales. Dado que Arduino no puede manejar la informacin como los humanos, necesitamos traducir los datos analgicos para que Arduino pueda entenderlos. Los sensores analgicos pueden transformar los datos del entorno en un valor de voltaje comprendido entre 0V y 5V. Estos valores son distintos de los HIGH o LOW que utilizan los sensores digitales. Para los pines digitales, HIGH y LOW significan 5V y 0V respectivamente, y nada ms. Sin embargo los pines analgicos pueden diferenciar cualquier valor intermedio. La resolucin entre los valores mximos y mnimos difieren de un microprocesador a otro. Arduino nicamente puede distinguir 1024 niveles en rango de 0V a 5V.

1: La cremallera analgica
La cremallera analgica es diferente a la cremallera digital del captulo anterior. La cremallera digital slo poda estar HIGH o LOW (5V o 0V). sin embargo, la cremallera analgica, puede darte un rango de valores entre 0V y 5V. Para hacer una cremallera analgica necesitas una cremallera normal, algo de hilo conductor y una resistencia de 10k. Comience cosiendo la resistencia en su lugar. Despus cose un cable rojo en uno de los terminales de la resistencia, y un cable azul en el otro terminal. Los colores de los cables son para que recuerdes dnde va cada cable. Desde donde empieza el cable azul, cselo entre cada diente de la cremallera. Cuando llegues al final de un lado de la cremallera, haz lo mismo en el otro lado y baja de nuevo. Asegurate de que el hilo est intacto a lo largo de la cremallera o no funcionar. Una vez hayas llegado al final de la cremallera por el otro lado, une un cable negro y coselo en su lugar. Ahora la cremallera est lista y podemos empezar a escribir nuestro cdigo para leer qu valores nos proporciona la cremallera. Para poder mostrar qu valores nos da la cremallera, necesitamos usar la comunicacin serie, de modo que Arduino pueda conectarse al equipo y mostrarnos los datos en el monitor: int analogPin = 2; /* Aqu declaramos que queremos usar el pin analgico 2, y lo llamaremos analogPin */ int myZipper=0; /* Aqu declaramos un entero que actuar como variable temporal, donde podremos almacenar los valores que nos proporcione la cremallera */ void setup(){ Serial.begin(9600); /* Esto configurar tu comunicacin y la fijar a 9600 baudios (9600 bits por segundo) */ } void loop(){ myZipper = analogRead(analogPin); /* Aqu hacemos una lectura analgica de analogPin y guardamos el valor en la variable myZipper */ Serial.println(myZipper); /* Este comando enviar el valor almacenado en myZipper a travs del puerto serie y despus hace una pausa de 200 milisegundos */ delay(200); //pausa de 200 milisegundos } [Get Code] Lo primero que hacemos en void loop() es una lectura analgica del pin analgico 2. El valor es almacenado en la variable myZipper. Despus imprimimos este valor por el puerto serie y, cualquier aparato conectado a Arduino (por ejemplo, un PC) recibir el valor almacenado en la variable. Lo ultimo que hacemos es aadir una pausa en nuestro programa, ya que, aunque Arduino es pequeo, todava se comunica ms rapidamente que un ordenador normal, as que la pausa permite sincronizarse con Arduino. Ahora podemos subir nuestro cdigo a la placa Arduino. Una vez que el cdigo est subido, conecta el cable rojo en el puerto que indica 5V, el cable negro a uno de los puertos de GND, y el ltimo cable al pin analgico 2. Si declaras tu analogPin en tu programa como cualquiero otro pin que no sea el 2, tendrs que colocar el cable azul en ese pin analgico: Una vez que hayas subido el cdigo y conectado los cables, abre el monitor serie, que es el botn ms a la derecha de tu IDE de Arduino. Ahora aparecern los valores en el monitor y, si abres y

cierras la cremallera, los valores irn cambiando. Si no puedes ver ningn nmero en tu monitor, asegurate que la velocidad de comunicacin fijada en el IDE de Arduino es la misma que en tu programa (9600 en el ejemplo). Cada cremallera te dar unos valores diferentes, puesto que no es algo exacto; pequeas diferencias afectarn en los resultados. Este tipo de sensor analgico casero es lo suficientemente bueno como para ser usado en la mayora de prototipos que necesiten un dispositivo de entrada oculto.

2: Usando un sensor de luz LDR


El siguiente esquema muestra como coser una LDR y una resistencia en un trozo de tela y dnde deben conectarse los cables en el Arduino: '###################################### The resistor used in the example is what is called a pull up resistor. We sometimes use pull up resistors to ensure we wont get 5V straight back in the Arduino. A pull up resistor is the same as a normal resistor but is used to lower the output voltage from a power source. The combination of a resistor with the LDR is also necessary for another reason: without it we wouldnt be able to get analog values from the LDR. This configuration is called a voltage divider and it changes the voltage on the Arduino input depending on the changes in the LDR. '####################################### La resistencia usada en el ejemplo es lo que llamamos una resistencia "Pull up". A veces usamos resistencias pull-up para asegurarnos que no recibe los 5V en sentido contrario el Arduino. Una resistencia Pull up es una resistencia normal pero usada para reducir el voltaje de salida de una fuente de tensin. La combinacin de una resistencia con la LDR es necesaria por otra razn: sin ella no seramos capaces de obtener valores analgicos de la LDR. sta configuracin se conoce con el nombre de divisor de tensin y cambia el voltaje a la entrada del Arduino dependiendo de los cambios en la LDR. Conecta un cable rojo a una de las patillas de la resistencia y a los 5V de Arduino. Entre la resistencia y la LDR ponemos un cable que conecte a nuestro pin analgico. La misma conexin va a una patilla de la LDR. No importa que patilla conectes. De la otra patilla de la LDR cose un cable que conecte con el puerto GND del Arduino. Cuando hayas conectado todo prueba el siguiente cdigo y observa los valores que proporciona la LDR: int analogPin = 2; /* el pin analgico que usaremos en Arduino */ int myLDR = 0; /* variable temporal para almacenar los valores de la LDR */ void setup(){ Serial.begin(9600); /* configurando la conexin y la velocidad */ } void loop(){ myLDR = analogRead(analogPin); /* leemos el valor de la LDR y lo almacenamos */ Serial.println(myLDR); /* mostramos el valor almacenado en myLDR */ delay(200); } [Get Code] En el ejemplo anterior leemos el valor, lo almacenamos y lo mostramos en el ordenador. No olvides abrir tu monitor serie en el IDE de Arduino y configurarlo a 9600 baudios para poder ver los valores captados por Arduino. Una vez que todo funcione, prueba a tapar la LDR con tu mano y comprueba que el valor que devuelve Arduino. Recuerda este valor y prueba el siguiente cdigo de ejemplo.

int analogPin = 2; /* el pin analgico que usaremos en Arduino */ int myLDR = 0; /* variable temporal para almacenar el valor de la LDR */ int myDarkNumber = 100; /* el umbral de oscuridad, sustituir por el valor obtenido tapando la LDR con la mano */ int ledPin = 13; void setup(){ Serial.begin(9600); /* configurando la conexin y la velocidad */ pinMode(ledPin,OUTPUT); /* declaramos ledPin como Salida */ } void loop(){ myLDR = analogRead(analogPin); /* leemos el valor de la LDR y lo almacenamos */ if (myLDR <= myDarkNumber){ digitalWrite(ledPin,HIGH); }else{ digitalWrite(ledPin,LOW); } } [Get Code] En este ejemplo la variable "myDarkNumber" es el valor que obtuviste al tapar la LDR con la mano en el ejemplo anterior. En mi caso es 100, pero t debes cambiarlo por tu valor. Este programa leer el valor de la LDR y lo comparar con la variable del umbral (myDarkNumber) y si la LDR es menor o igual al umbral el LED interno de la placa Arduino se ecender, de no ser as permanecer apagado. 3: Usando un sensor de temperatura NTC El cdigo siguiente, para leer un termmetro, es el mismo que para la LDR. Ambos funcionan bien por tratarse de sensores analgicos: int analogPin = 2; /* el pin analgico que usaremos en Arduino */ int myNTC= 0; /* variable temporal para guardar los valores del termmetro */ void setup(){ Serial.begin(9600); /* configurando la comunicacin y la velocidad */ } void loop(){ myNTC = analogRead(analogPin); /* lee el valor del NTC y lo almacena */ Serial.print(myNTC); /* muestra el valor almacenado en myNTC */ delay(200); } [Get Code]

Ahora conecta todo como muestra la siguiente ilustracin y carga el cdigo en tu placa Arduino. Una vez que todo est en su lugar, abre tu monitor serie e intenta calentar tu termmetro con las manos. Debes poder observar variaciones frente al valor original, cuando comenz el programa. Aunque los termistores no sean los mejores sensores para obtener la temperatura exacta, son una manera fcil y barata de diferenciar entre fro y caliente. Si ests usando altas corrientes en tus prendas, o materiales que se calienten como "muscle wires", los termistores son una manera de comprobar si tu prenda est demasiado caliente (antes de que empiece a arder).

analogReference (type)
Descripcin Configura el voltaje de referencia utilizado para la entrada analgica (es decir, el valor utilizado como tope de gama de entrada). Las opciones son: DEFAULT (Por defecto): la referencia por defecto analgica de 5 voltios (5 V en la placa Arduino) o 3,3 voltios (3,3 en la placa Arduino). INTERNOS: un built-in de referencia, igual a 1,1 voltios en el ATmega168 o ATmega328 y 2.56 voltios en el ATmega8 (no disponible en la placa Arduino Mega). INTERNAL1V1: una referencia integrada 1.1V (Mega Arduino solamente). INTERNAL2V56: un built-in de referencia 2.56V (Mega Arduino solamente). EXTERNO: el voltaje aplicado al pin AREF (0 a 5 V slo) se utiliza como referencia. Parmetros Tipo (type): el tipo de referencia (por defecto, INTERNA, INTERNAL1V1, INTERNAL2V56, o externo). Devoluciones Ninguno. nota Despus de cambiar la referencia analgica, las primeras lecturas de algunos analogRead () puede no ser exacta. advertencia No use nada menos que 0 V o ms de 5 V para el voltaje de referencia externo en el pin AREF! Si est utilizando una referencia externa en el pin AREF, debe establecer la referencia analgica a EXTERNAL antes de llamar a analogRead (). De lo contrario, se corta la tensin de referencia, junto activa (generados internamente) y el pin AREF, la posibilidad de daar el microcontrolador en la placa Arduino. Como alternativa, puede conectar la tensin de referencia externa al pin AREF travs de una resistencia de 5 km, lo que le permite cambiar entre las tensiones de referencia externos e internos. Tenga en cuenta que la resistencia va a alterar el voltaje que se usa como referencia porque hay una resistencia interna de 32K en el pin AREF. El segundo acto como un divisor de tensin, por lo que, por ejemplo, 2,5 V aplicada a travs de la resistencia dar 2,5 * 32 / (32 + 5) = ~ 2.2V en el pin AREF.

Vous aimerez peut-être aussi