Retos de iniciación

ARDUINO

Para realizar los retos de iniciación propuestos, utilizaremos una placa de Arduino nano. Es una placa muy económica, englobada dentro de los llamados clones de Arduino (made in China).

ARDUINO NANO

The Nano is a small, complete, and breadboard-friendly board based on the ATmega328 (Arduino Nano 3.x). It has more or less the same functionality of the Arduino/Genuino UNO, but in a different package. It lacks only a DC power jack, and works with a Mini-B USB cable instead of a standard one.

Technical specs

  • Microcontroller: ATmega328
  • Architecture: AVR
  • Operating Voltage: 5 V
  • Flash Memory: 32 KB of which 2 KB used by bootloader
  • SRAM: 2 KB
  • Clock Speed: 16 MHz
  • Analog I/O Pins: 8
  • EEPROM: 1 KB
  • DC Current per I/O Pins: 40 mA (I/O Pins)
  • Input Voltage: 7-12 V
  • Digital I/O Pins: 22
  • PWM Output: 6
  • Power Consumption: 19 mA
  • PCB Size: 18 x 45 mm
  • Weight: 7 g

Fuente: miniarduino.com

Vamos a utilizar una placa compatible Arduino Nano CH340, en nuestro caso fabricado por Elegoo.

Si usamos el Arduino IDE en local, tendremos que instalar los drivers CH340.

Nota

Te recomendamos que no utilices los pines 0 ni 1 a no ser que realmente los necesites. Estos pines se utilizan para que Arduino envíe información al ordenador, si les conectas cualquier cosa, Arduino no será capaz de comunicarse y por lo tanto, no será posible reprogramarlo.

RETOS DE INICIACIÓN A ARDUINO

PROCESO A REALIZAR EN CADA RETO

  1. En cada reto montaremos el circuito que se indica.
  2. Seguiremos las instrucciones de la guía de programación para realizar el primer programa.
  3. Le daremos un nombre al programa y lo cargaremos en la placa, asegurándonos de que está conectado al ordenador por medio del cable USB.
  4. Comprobaremos que hace lo que estaba previsto y si no es así, buscaremos la causa y anotaremos en la memoria los errores que hayamos cometido (siempre es la actividad 1 de cada reto).
  5. A partir de la segunda actividad de práctica, tenéis que realizar vosotros mismos los programas para lograr superar el reto.

Una vez lo hayáis logrado, el profesor tiene que comprobarlo y registrarlo.

Cada grupo tiene que elaborar la memoria grupal, incluyendo:

  • La captura de pantalla del programa y foto o esquema de Fritzing del montaje final.
  • Las respuestas a las cuestiones que se planteen en las actividades.

1.Encender ledes

Un LED es un diodo emisor de luz, es decir, un tipo particular de diodo que emite luz al ser atravesado por una corriente eléctrica. Los diodos (emisor de luz, o no) son unos de los dispositivos electrónicos fundamentales.

Recodemos que diferenciamos entre dispositivos eléctricos y electrónicos. Los dispositivos eléctricos engloban resistencias, condensadores y bobinas, e integran el campo de electricidad. Los dispositivos electrónicos, surgen del uso de materiales semiconductores, y dan lugar al campo de la electrónica.

Un diodo es una unión de dos materiales semiconductores con dopados distintos. Sin entrar en detalles, esta diferencia de dopado hace que genere una barrera de potencial, que como primera consecuencia hace que el paso de corriente en uno de los sentidos no sea posible.

Aquí tenemos la primera característica de los diodos, tienen polaridad, es decir, solo dejan pasar la corriente en un sentido. Por tanto, tenemos que conectar correctamente la tensión al dispositivo.

La patilla larga debe ser conectada al voltaje positivo (ánodo), y la corta al voltaje negativo (cátodo).

La otra consecuencia de la barrera de potencial es que, incluso conectando el dispositivo con la polaridad correcta, a baja tensión los electrones siguen sin poder atravesar el dispositivo. Esto ocurre hasta alcanzar un cierto valor de tensión que llamamos tensión de polarización directa (VAK), que depende del tipo de diodo.

A partir de esta tensión decimos que el diodo está polarizado y la corriente puede atravesarlo libremente con una resistencia casi nula.

Puesto que la resistencia interna del diodo es muy pequeña, se genera una gran corriente que si no la limitamos, destruirá el diodo. Por ese motivo, necesitamos una resistencia que limite la cantidad de corriente que circula por el diodo.

En resumen, tenemos que considerar que:

  • Si alimentamos a una tensión inferior a VAK, el LED no luce.
  • Si circula una intensidad superior a IFMAX, el LED se rompe.

En cualquier caso, no conseguiremos hacer lucir el LED sin utilizar una resistencia de valor adecuado.


Valores orientativos para elegir resistencias limitadoras para LEDs

Valores de resistencias por colores

GUÍA DE PROGRAMACIÓN

Abrimos el IDE de Arduino y hacemos la configuración básica:

  • Elegimos en Herramientas la placa "Arduino nano" y el procesador "ATmega328P".
  • Conectamos el arduino con el cable a un puerto USB libre.

Abrimos el archivo de ejemplo básico "Blink" y editamos los tiempos de delay y por ejemplo los ponemos en 500 ms.

En este modelo de placa hay un LED integrado conectado internamente al pin D13.

Verificamos y subimos el programa a la placa.

El led integrado debería de parpadear con la cadencia programada en los tiempos de delay.

+ info en https://www.arduino.cc/en/Tutorial/Blink

ACTIVIDADES

1

Escribe qué ha pasado. ¿Era lo que pensabas que iba a ocurrir?

Si no coincide con lo que pensabas, indica qué ha cambiado y por qué crees que ha sido diferente.

2

Sin cambiar el programa, vamos a conectar ahora un LED externo como en la imagen. Usaremos una resistencia de al menos 220Ω. Ten cuidado con la polaridad del LED. ¿Por dónde se alimenta el LED? ¿A qué voltaje está conectado?

¿Qué ocurrirá cuando lo desconectemos del ordenador?

3

Ahora haremos parpadear el LED con diferentes tiempos de encendido y apagado.

¿Por qué hay un delay tras cada acción sobre el LED? ¿Qué ocurriría si no lo ponemos? Pruébalo.

4

Ahora añadimos un LED de otro color y lo programamos para que se enciendan de forma alterna. Por ejemplo, que cada 500 ms se encienda un led y se apague el otro.

5

Terminamos la práctica programando un pequeño ritmo de luces con los dos leds, o incluso con 3.

2.CONTROL CON PULSADORES

Un pulsador es un elemento de control que nos permite unir (o separar) dos puntos de un circuito cuando los presionamos. Junto con las sentencias condicionales serán de gran utilidad para controlar máquinas y robots.

Pulsador NA: Botón que permite el paso de corriente eléctrica al pulsarlo y no la permite al soltarlo (cierra y abre el circuito).

Pulsador NC: Botón que interrumpe el paso de corriente eléctrica al pulsarlo y la permite al soltarlo (abre y cierra el circuito).

CONEXIÓN DE PULSADORES EN ARDUINO

Para evitar conexión "al aire" que pueden introducir valores erróneos en los pines digitales usaremos dos tipos de conexión: Pull-up o pull-down.

Las resistencias de Pull-Down y Pull-Up se conectan entre el PIN digital y una de las tensiones de referencia (0V o 5V) y “fuerzan” (de ahí su nombre) el valor de la tensión a LOW o HIGH, respectivamente.

  • La resistencia de Pull-Up fuerza HIGH cuando el pulsador está abierto. Cuando está cerrado el PIN se pone a LOW, la intensidad que circula se ve limitada por esta resistencia.
  • La resistencia de Pull-Down fuerza LOW cuando el pulsador está abierto. Cuando está cerrado el PIN se pone a HIGH, y la intensidad que circula se ve limitada por esta resistencia

Así es como quedaría el montaje final en vista esquemática (la conexión de puede realizar en empleando cualquiera de los PIN digital).

GUÍA DE PROGRAMACIÓN

En este montaje vamos a hacer que el led integrado del pin 13 se encienda al presionar un pulsador. Usaremos una configuración pull-down con una resistencia de 10KΩ.

Conecta los cables como ves en los esquemas. Los cables rojos representan siempre una conexión a 5V y los negros a 0V (GND). Un cable va del pin digital 2 a una pata del pulsador. Esa misma pata del pulsador se conecta a través de una resistencia pull-down (aquí 10KΩ) a GND. La otra pata del pulsador se conecta a 5V.

Utilizaremos el programa Button que encontrás en los ejemplos del IDE, en la categoría "2.Digital".

+ info en https://www.arduino.cc/en/Tutorial/Button

ACTIVIDADES

1

Escribe qué ha pasado. ¿Era lo que pensabas que iba a ocurrir?

Si no coincide con lo que pensabas, indica qué ha cambiado y por qué crees que ha sido diferente.

2

Añade un LED externo con una resistencia en serie en un pin diferente al 13. Cambia el programa para que funcione.

3

Añade un segundo LED con su correspondiente resistencia. Cuando presionemos el pulsador se encenderá el primer LED y se apagará el segundo. Cuando no presionemos el pulsador funcionará al revés.

3. BOTONERA ANALÓGICA

De forma muy sencilla podemos unir varios pulsadores y unas resistencias para que dependiendo del botón que pulsemos Arduino lea un valor distinto desde uno de sus pines analógicos, y así podamos diferenciar la pulsación de cada botón. Con la botonera analógica, únicamente necesitamos usar un pin de la placa (analógico) y podremos tenerla en un módulo externo conectada únicamente por dos cables.

GUÍA DE PROGRAMACIÓN

En concreto este circuito de ejemplo usa cinco pulsadores y 6 resistencias. Tiene como limitación que solo puede leer un botón a la vez, si pulsamos dos botones a la vez leerá el que oponga menos resistencia de todos ellos. Por medio del programa de la derecha podremos saber el valor que lee en el pin analógico al presionar cada pulsador.

void setup() {
  Serial.begin(9600);
}
void loop() {
  // lee la entrada en el pin analógico A7 y la muestra por el puerto serie
  int dato = analogRead(A7);
  Serial.println(dato);
  delay(500);
}

ACTIVIDADES

1

Escribe qué ha pasado. ¿Era lo que pensabas que iba a ocurrir? Anota los valores que te aparecen en el terminal del puerto serie al pulsar cada uno de los botones.

2

Realiza un programa para que se indique por el puerto serie el nombre del botón que se pulsa. Puedes basarte en el que se propone en el blog de giltesa.

3

Para terminar encenderemos un led diferente al pulsar cada botón.