Montaje Prácticas

Para el curso vamos a usar un entorno de trabajo fijo con diversas entradas y salidas analógicas y digitales, que una vez montado se usará en diferentes prácticas.

Para hacer el montaje se usará una protoboard por separado y no la protoboard que viene con el kit de Arduino. Este montaje no se desmontará durante todo el curso.

Elementos:

  • PIN 2: Botón A. Resistencia pullup interna
  • PIN 3: Botón B. Resistencia pulldown externa
  • PIN 4: LED 1
  • PIN 5: LED 2 (PWM)
  • PIN 6: LED 3 (PWM)
  • PIN 7: LED 4
  • PIN 8: Buzzer
  • PIN 9: Servo
  • PIN A0: Potenciómetro (Usar potenciómetro grande)
  • PIN A1: LDR
  • PIN A2: Temperature sensor [TMP36] (¡¡¡ATENCIÓN A LA ALIMENTACIÓN!!!)

BOTONES

Botón A con resistencia pull-up interna.

Botón B con resistencia de pull-down externa de 10 Kohms

NOTA: Muy buen tutorial para entender las resistencias de pullup y pulldown http://www.instructables.com/id/Understanding-the-Pull-up-Resistor-With-Arduino/

LEDs

Un LED al ser un diodo tiene una caída de tensión que depende del tipo y del color del LED. Para usar un LED es imprescindible poner una resistencia adecuada a cada led. Según la ley de ohm: V = I * R, si el voltaje es de 5 V y queremos que al LED sólo le lleguen entre 5 mA (0.005 A) y 20 mA (0.02 A), entonces usar una resistencia entre 250 y 1000 ohms.

Circuito LED: https://es.wikipedia.org/wiki/Circuito_de_LED

La fórmula a usar para calcular el valor correcto de la resistencia del circuito es:

Donde:

  • Voltaje de la fuente de alimentación, es el voltaje aplicado al circuito (5 voltios en el caso de Arduino)
  • Caída de voltaje del LED, es el voltaje necesario para el funcionamiento del LED, generalmente está entre 1.7 y 3.3 voltios, depende del color del diodo y de la composición de metales.
  • Rango de corriente del LED, es determinado por el fabricante, usualmente está en el rango de unos pocos miliamperios. A más corriente más iluminación. Para Arduino el valor máximo será de 20 mA.

Buzzer

Zumbador, buzzer en inglés, es un transductor electroacústico que produce un sonido o zumbido continuo o intermitente

El zumbador usado es: https://www.arduino.cc/documents/datasheets/PIEZO-PKM22EPPH4001-BO.pdf

Para usar el buzzer usaremos la función Tone() de Arduino. Tone() genera una onda cuadrada de una frecuencia específica y con un 50% de duty cycle en el pin especificado. La duración del tono puede ser especificado o en caso contrario continúa hasta llamar a la función noTone().

Para más información: Función tone(): https://www.arduino.cc/en/Reference/Tone

Servomotor

Servomotor (o también llamado servo) es similar a un motor de corriente continua pero con la capacidad de posicionarse en una posición determinada y permanecer fija en esta. Normalmente el ángulo es de 0 a 180 grados y se alimentan a 5 voltios mínimo.

Para controlar un servo, se usa el PWM. La mayoría de los servos trabaja en una frecuencia de 50 Hz (20ms). Cuando se manda un pulso, la anchura de este determina la posición angular del servo. La anchura varía según el servomotor pero normalmente es entre 0,5ms a 2,5ms.

En Arduino se utiliza la librería <Servo.h> para controlar los servos y generar las señales adecuadas para manejarlos. Dispone entre otras de las siguientes funciones:

Potenciómetro

Un potenciómetro es una resistencia cuyo valor de resistencia es variable. De esta manera, indirectamente, se puede controlar la intensidad de corriente que fluye por un circuito si se conecta en paralelo, o la diferencia de potencial al conectarlo en serie.

LDR

Se trata de un sensor que actúa como una resistencia variable en función de la luz que capta. A mayor intensidad de luz, menor resistencia: el sensor ofrece una resistencia de 1M ohm en la oscuridad, alrededor de 10k ohm en exposición de luz ambiente, hasta menos de 1k ohm expuesto a la luz del sol.

El LDR actúa como una resistencia variable. Para conocer la cantidad de luz que el sensor capta en cierto ambiente, necesitamos medir la tensión de salida del mismo. Para ello utilizaremos un divisor de tensión, colocando el punto de lectura para Vout entre ambas resistencias. De esta forma:

Dónde Vout es el voltaje leído por el PIN analógico del Arduino y será convertido a un valor digital, Vin es el voltaje de entrada (5v), R2 será el valor de la resistencia fija colocada (10k ohm generalmente) y R1 es el valor resistivo del sensor LDR. A medida que el valor del sensor LDR varía, obtendremos una fracción mayor o menor del voltaje de entrada Vin.

El LDR que usamos: Photoresistor [VT90N2 LDR]

Sensor de Temperatura

El sensor de temperatura usado es el TMP36: https://www.arduino.cc/en/uploads/Main/TemperatureSensor.pdf

El factor de escala de este sensor es de 10mV/ºC con un offset de 500mV

Fórmula para el cálculo de la temperatura:

 
//getting the voltage reading from the temperature sensor
int reading = analogRead(sensorPin); 
 
// converting that reading to voltage
float voltage = reading * 5.0 / 1023.0;
 
// now print out the temperature
//converting from 10 mv per degree with 500 mV offset
float temperatureC = (voltage - 0.5) * 100 ; 
 
// now convert to Fahrenheit
float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;

IMPORTANTE: si se ponen los cables de 5V y GND en el orden incorrecto, el sensor se calienta mucho y puede quemar. Asegurarse de conectarlo correctamente y en caso que se caliente tras conectarlo, desconectarlo y comprobar los cables.

NOTA: en caso de no tener sonda, usar un potenciómetro.

Arduino Ethernet Shield

Un shield es una placa de circuito modular que se montan unas encima de otras para dar funcionalidad extra a un Arduino. Esta Shields son apilables.

La MAC de cada Arduino será:

 
//Sustituir YY por el numero de KIT de Arduino
byte MAC [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xYY};

Esquema conexión Ethernet Shield:

Testeo del Circuito

Para comprobar que todo funciona ejecutar el programa de testeo Ejercicio01.

Ejecutar todos los test del Ejercicio01 y comprobar que funciona todo correctamente.

En caso que algo no funcione a lo largo del curso, usar este sketch para comprobar que la parte hardware funciona correctamente.

Tests:

  • 1 – Muestra IP Arduino
  • 2 – Prueba Botones (comprobar pulsaciones correctas)
  • 3 – Prueba LEDs (Iluminación LEDs)
  • 4 – Prueba PWM LEDs (No todos los LEDs son PWM)
  • 5 – Prueba Potenciómetro (comprobar que va de 0 a 1023)
  • 6 – Prueba LDR (ver valores máximo y mínimo. Anotarlos)
  • 7 – Sonda temperatura (comprueba valores)
  • 8 – Test Servo (comprobar el movimiento completo)
  • 9 – Test Buzzer (comprobar sonido)
  • 10 – Test Cliente Web (comprobar respuesta del servidor)
  • 11 – Test Servidor Web (comprobar servidor embebido en Arduino)

Código: https://github.com/jecrespo/aprendiendoarduino-Curso_Programacion_Arduino/tree/master/Ejercicio01-Comprueba_Entorno

IMPORTANTE: después de ejecutar los test o mientras se ejecutan, leer el código, entenderlo y preguntar todo aquello que no se entienda.

NOTA:  Las funciones de testeo de cada componente se pueden usar como plantilla para los ejercicios propuestos a lo largo del curso.

Anuncios

Un pensamiento en “Montaje Prácticas

  1. Pingback: Proyecto Final Programacion | Aprendiendo Arduino

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s