Reference   Language (extended) | Libraries | Comparison | Changes

Pines Analógicos

Esta es una página de referencia de la documentación sobre pines analógicos del Atmega168 (Chip del Arduino Duemilanove).

Conversor A/D

El Atmega168 posee 6 canales conectados al conversor analógico a digital (A/D). El conversor A/D posee una resolución de 10 bits, lo cual permite que nos devuelva un valor entero entre 0 y 1023 proporcional a la tensión leída. Aunque para la mayoría de los usuarios de Arduino la función principal de los pines analógicos será la de leer sensores analógicos, estos pines también podrán ser usados como pintes de entrada y salida digitales (GPIO) de la misma manera que funcionan los pines digitales 0 - 13.

Por lo tanto, si el usuario se necesitaran más pines de entrada y salida digital, y no todos los pines analógicos están siendo usados, se podrán usar aquellos que no estén en uso como pines de entrada o salida digital.

Mapeo de pines

Los números que corresponden a los pines analógicos cuando se usen como pines digitales son del 14 al 19. Note que estos son los números de pines de Arduino y no corresponden con los números de los pines físicos del chip Atmega168. Los pines analógicos pueden ser usados de forma exactamente igual a los pines digitales, por ejemplo, para configurar el pin 0 como salida digital y ponerlo en nivel alto (HIGH), el código que necesitar sería algo así:

pinMode(14, OUTPUT);
digitalWrite(14, HIGH);

Resistencias de Pull-up

Los pines analógicos también poseen resistencias de pullup las cuales funcionan de la misma manera que lo hacen en los pines digitales. Se pueden activar con los siguientes comandos:

digitalWrite(14, HIGH);  // activa la resistencia de pullup en el pin analógico 0 

solo si el pin es una entrada.

Tenga en cuenta que activar la resistencia de pullup afectara al valor leído por la función analogRead() cuando se usen sensores si se hace sin tener este dato en cuenta. La mayoría de los usuarios solo querrán usar las resistencias de pullup cuando se usen los pines analógicos en modo digital. .

Detalles y Advertencias

El comando analogRead no funcionará de forma correcta si el pin ha sido previamente configurado como una salida, por lo que si ese fuese el caso, configúralo como una entrada antes de usar el commando analogRead. De manera similar si el pin ha sido configurado a nivel nivel alto (HIGH) como una salida, la resistencia de pullup estará activada si configuramos el pin como una entrada con el comando pinMode.

El datasheet del Atmega168 tambien advierte de que hay que tener en cuenta que si se está usando un pin analógico como digital cuando está próximo a uno analógico en el cual se están llevando a cabo conversiones, no es conveniente cambiar de nivel muy rápidamente el pin digital ya que el conversor A/D puede producir lecturas erróneas del pin contiguo debido a ruido inducido por los rápidos cambios de nivel del pin digital. Además puede ser recomendable, depsues de manipular pines analogicos (en modo digital), añadir un pequeño retardo antes de usar el comando analogRead() para leer otro pin analógico.

Véase también

Página principal Referencia

Correcciones, sugerencias, y nueva documentación deberán ser publicadas en el Foro (castellano) o en el Foro (inglés).

El texto de la referencia de Arduino está publicado bajo la licencia Creative Commons Reconocimiento-Compartir bajo la misma licencia 3.0. Los ejemplos de código de la referencia están liberados al dominio público.

Share