Mostrando entradas con la etiqueta pines. Mostrar todas las entradas
Mostrando entradas con la etiqueta pines. Mostrar todas las entradas

domingo, 1 de enero de 2017

Ejemplos - Basics - AnalogReadSerial






Con esta entrada comenzaremos a repasar la serie de ejemplos que el IDE Arduino trae instalado para permitirnos aprender a usar las funciones más básicas de nuestro placa.

En este caso vamos a revisar el primer ejemplo de los considerados básicos, relacionados con la lectura de una señal de tensión analógica.


Para esta práctica vamos a necesitar repasar unas cuantas ideas que vimos anteriormente:

  1. ¿Qué es un voltaje?
  2. ¿Qué es la ley de Ohm?
  3. ¿Qué es un divisor de tensión?
  4. ¿Qué es un potenciómetro?
  5. ¿Qué es una señal analógica?
  6. ¿Qué es un convertidor analógico digital?
  7. ¿Cuántos pines tiene nuestro Arduino capaz de leer señales analógicas?

Adicionalmente vamos a necesitar introducir una señal analógica variable por uno de los pines analógicos de nuestra placa.  Para ellos usaremos vamos necesitaremos aplicar lo que hemos aprendido sobre los divisores de tensión.

Sabemos que si colocamos nuestro voltímetro entre dos resistencias conectadas a una diferencia de potencial concreto, el voltaje que mediríamos vendría dado por la formula


Y cómo aplicando la Ley de Ohm al circuito completo sabemos que V= I*(R1+R2), si despejamos I de esta ecuación no quedaría que I= V/(R1+R2), y sustituyéndolo en la ecuación anterior donde V2=I*R2, obtendremos que


Esto que estamos haciendo de forma manual con un polímetro conectado entre los extremos de la resistencia R2, también lo podríamos hacer gracias a los pines analógicos de nuestra placa Arduino.


Por ejemplo, imaginemos que no tenemos un polímetro a mano y queremos conseguir una tensión de 2.5 voltios en nuestra placa, aunque sabemos que los únicas tensiones que suministra son de 5V y de 3.3V. Para ello con lo que hemos aprendido más arriba, podría ser suficiente poner dos resistencias de igual valor (por ejemplo 10K) y coger la tensión en el punto donde se unen ambas. Con ello teóricamente obtendríamos los 2.5voltios, pero para estar seguros de que no nos hemos equivocado, como tenemos una placa Arduino con 6 pines analógicos, conectaremos esa señal a un pin analógico e intentaremos medir el valor con un programita sencillo.

Esto lo podríamos esquematizar de la siguiente manera




Ahora solo nos queda ver cómo podemos ver el valor de voltaje que está midiendo nuestro Arduino. Para ello tendremos que usar una función que se llaman analogRead(), que solo requiere que le pasemos un parámetro (el pin que estemos usando) y te devolverá un valor entero comprendido entre 0  y 1023. El 0 representará a 0 voltios y el 1023 a 5 voltios.



Para entender el porqué de esta traducción de números, es mejor que repaseis el capítulo dedicado a al convertidor analógico digital.

De forma resumida podemos decir que en los pines analógicos de nuestro Arduino UNO, tenemos unos convertidores Analógicos Digitales (ADC) de 10 bits, esto es, que son capaces de trocear los 5 voltios máximos de tensión que son capaces de medir en 2 elevado a 10, o lo que es lo mismo 1024 trocitos.

Ahora solo nos queda escribir un pequeño código para que podamos ver en pantalla, el valor que estamos registrando por el PIN analógico seleccionado (en nuestro ejemplo el A0). Que debería ser algo parecido a 511 (el valor entero más proximo a dividir 1023 entre 2).

Pues bien esto mismo que hemos aprendido aplicándolo a un divisor de tensión, lo podríamos aplicar para medir la tensión de cualquier sensor analógico que tengamos a mano. Solo necesitaríamos que nos suministrara una tensión comprendida entre 0 y 5 voltios, y conectarlo al PIN analógico donde querramos registrar los valores. Algo similar lo podemos simular reemplazando el sensor con un potenciómetro.


Por lo que si ahora conectamos un cable a un pin analógico de nuestra placa Arduino, como pudiera ser cualquiera de los marcados como "Analog In"



podremos leer la señal analógica  a través de un PIN analógico seleccionado.


Y ya sabéis, si tenéis alguna sugerencia o duda, no tenéis más que mandarnos un correo a



e intentaremos responder a vuestra pregunta lo antes que podamos.


miércoles, 3 de diciembre de 2014

¿Para qué sirven los pines en la placa Arduino?






Con objeto de poder identificar mejor las partes de una placa Arduino UNO, en esta entrada, vamos a recorrer cada uno de los pines que tiene nuestra placa y os vamos a contar para qué sirven.

En algunos casos, sobre todo si todavía no la habéis usado mucho, algunos términos os resultarán extraños, pero no os preocupéis por ello porque en posteriores entradas iremos explicando cada uno de ellos.

La placa que debéis tener en la mano, debe parecerse a la de figura inicial, y aunque hay muchas placas compatibles con Arduino UNO, la mayoría de ellas respeta la disposición de los regleteras negras de pines. Ver un ejemplo en la imagen siguiente, donde en rojo hemos remarcado dos de las versiones de microcontrolador que puede encontrarse dentro de la familia Arduino UNO, y en amarillo, la ubicación idéntica de las regleteras de pines que presentaremos a continuación:



Es por ello, y para que solo nos concentremos en las similitudes y no en las diferencias, por lo que a continuación hemos preparado un esquema simplificado de la placa, que nos permitirá recorrer los pines sin perdernos.




Así que si empezamos con el pin naranja AREF  (situado en la zona superior central del dibujo) y recorremos la tarjeta en sentido horario, nos vamos a encontrar con los siguientes tipos diferentes de pines
  • Pin analógico de Referencia pin (naranja)
  • Tierra digital (verde claro)
  • Pines digitales 2-13 (verde)
  • Pines digitales 0-1 para comunicación serie In/Out - TX/RX (verde oscuro) - Estos pines no pueden ser usados (digitalRead y/o digitalWrite) como Entrada/Salida digitales si se está usando la comunicación serie (Serial.begin).
  • Botón de Reset - S1 (En el dibujo no sale, pero es un pequeño botón que cambia su posición depende de la placa)
  • Conector de programación ICSP (In-circuit Serial Programmer) (turquesa)
  • Pines analógicos 0-5 (celeste)
  • Pines de Alimentación y Tierra (Alimentación (POWER): naranja, Tierra (GND): naranja claro)
  • Conector jack 21mm para alimentación externa (9-12VDC) - X1 (rosa)
  • Conector USB (que usaremos parar subir los programas que hayamos escrito en nuestro ordenador) (amarillo)

En las próximas entradas explicaremos uno a uno para qué sirve cada uno.