Archivo de la etiqueta: Potenciometro

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.

Esquemas fritzing disponibles en: https://github.com/jecrespo/aprendiendoarduino-Curso_Programacion_Arduino_2019/tree/master/Esquemas%20Montajes%20Pr%C3%A1cticas%20Fritzing

Montaje Arduino UNO

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 11: Sonda DHT11
  • PIN A0: Potenciómetro (Usar potenciómetro grande)
  • PIN A1: LDR
  • I2C (Pines SDA – A4 y SCL – A5): Pantalla LCD I2C

Montaje Wemos D1 Mini

Pines Wemos D1 Mini: https://steve.fi/Hardware/d1-pins/

Elementos:

Botones/Pulsadores

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:

Donde 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 DHT11

Sensor de humedad y temperatura DHT11. Es lo suficientemente exacta para la mayoría de los proyectos que necesitan hacer un seguimiento de las lecturas de humedad y temperatura. Es unas de las sondas más populares.

Parámetros del producto:

  • Humedad relativa:
    • Resolución: 16 bits
    • Repetibilidad: ±1% H.R.
    • Precisión: 25 ° C ± 5% hr
    • Histéresis: < ± 0.3% RH
    • Estabilidad a largo plazo: < ± 0.5% hr / año
  • Temperatura:
    • Resolución: 16 bits
    • Repetibilidad: ±0. 2 ° C
    • Precisión: 25 ° C ± 2° c
  • Características eléctricas
    • Fuente de alimentación: DC 3.5 ~5.5V
    • Corriente: medición 0.3mA
    • Espera 60μA
    • Periodo de muestreo: más de 2 segundos
  • Descripción pines:
    • VDD alimentación 3,5~5.5V DC
    • serie de datos, un solo bus
    • NC, pin vacío
    • GND tierra, la energía negativa

Datasheet y protocolo sonda DHT11: https://akizukidenshi.com/download/ds/aosong/DHT11.pdf

Librerías:

Pantalla LCD I2C

Pantalla LCD I2C. La pantalla tiene una retroiluminación de LED y puede mostrar dos filas con hasta 16 caracteres en cada fila.

El controlador de LCD I2C es un dispositivo que nos permite controlar una pantalla a través del bus I2C, usando únicamente dos cables.

Librería LiquidCrystal_I2C del gestor de librerías: https://github.com/marcoschwartz/LiquidCrystal_I2C

La dirección I2C por defecto del módulo puede ser 0x3F o en otros casos 0x27. Es muy importante identificar correctamente la dirección I2C de nuestro módulo, pues de otra forma nuestro programa no funcionará correctamente. Para identificar la dirección específica de nuestro módulo podemos utilizar un pequeño sketch de prueba llamado: I2C Scanner, el cual nos permite identificar la dirección I2C del dispositivo conectado al Arduino.

Más información: https://www.naylampmechatronics.com/blog/35_Tutorial–LCD-con-I2C-controla-un-LCD-con-so.html

Wemos D1 Mini

Wemos son una serie de placas de prototipado con chip ESP8266 integrado para conexión WiFi. Hay varios modelos y la página web oficial es https://www.wemos.cc/

Vamos a usar la Wemos D1 Mini: https://wiki.wemos.cc/products:d1:d1_mini 

Shields Wemos D1 Mini

Fritzing parts: https://github.com/mcauser/Fritzing-Part-WeMos-D1-mini-Shields

Relay Shield

Web: https://wiki.wemos.cc/products:d1_mini_shields:relay_shield

Por defecto usa el pin D1, pero es configurable.

Wemos RGB LED Shield

Web: https://wiki.wemos.cc/products:d1_mini_shields:rgb_led_shield

Por defecto usa el pin D4, pero es configurable.

NOTA: La shield led RGB de un pin va al pin D2: https://wiki.wemos.cc/products:d1_mini_shields:ws2812b_rgb_shield

Wemos mini Oled Shield

Web: https://wiki.wemos.cc/products:d1_mini_shields:oled_shield

Pantalla I2C – Pines SDA – D2 y SCL – A1

Librería Pantalla: https://github.com/mcauser/Adafruit_SSD1306/tree/esp8266-64×48

Librería Botones: https://github.com/wemos/LOLIN_OLED_I2C_Button_Library (En la versión disponible para prácticas no dispone de los botones)

Características

  • Screen Size: 64×48 pixels (0.66” Across)
  • Operating Voltage: 3.3V
  • Driver IC: SSD1306 (I2C Address: 0x3C or 0x3D)
  • 2x I2C Button (customizable I2C Address, default:0x31)

Ejercicio01 – Testeo del Circuito Arduino

Para comprobar que todo funciona ejecutar el programa de testeo. Para ello coger el código de https://github.com/jecrespo/aprendiendoarduino-Curso_Programacion_Arduino_2019/blob/master/Ejercicio01-Comprueba_Entorno_Arduino/Ejercicio01-Comprueba_Entorno_Arduino.ino.

Todo el código que haga cada alumno lo guardará en su repositorio de github llamado: “Curso Programacion Arduino 2019”. Cada ejercicio se guardará en un directorio con el nombre EjercicioXX y dentro el código.

Pasos a seguir:

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 Texto Pantalla
  • 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) DHT11
  • 8 – Test Servo (comprobar el movimiento completo)
  • 9 – Test Buzzer (comprobar sonido)

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.

Ejercicio02 – Testeo del Circuito Wemos D1 Mini

Pasos a seguir:

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

Código: https://github.com/jecrespo/aprendiendoarduino-Curso_Programacion_Arduino_2019/blob/master/Ejercicio02-Comprueba_Entorno_ESP8266/Ejercicio02-Comprueba_Entorno_ESP8266.ino

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 – Test Cliente Web (comprobar respuesta del servidor)
  • 3 – Test Servidor Web (comprobar servidor embebido en Arduino)
  • 4 – Prueba Pulsador (comprobar pulsaciones correctas)
  • 5 – Prueba Relé Shield
  • 6 – Prueba Neopixel Shield
  • 7 – Prueba Pantalla Oled Shield
Anuncios

Componentes Electrónicos

Para trabajar con Arduino es necesario algunos conocimientos de electrónica y de los componentes electrónicos que usamos junto con Arduino. Veamos un pequeño resumen.

Libros básicos de electrónica que deberías leer:  http://hackaday.com/2016/08/19/books-you-should-read-basic-electronics/

Conceptos Elementales

Corriente Continua

La corriente continua (CC en español, en inglés DC, de Direct Current) se refiere al flujo continuo de carga eléctrica a través de un conductor entre dos puntos de distinto potencial, que no cambia de sentido con el tiempo. A diferencia de la corriente alterna (CA en español, AC en inglés, de Alternating Current), en la corriente continua las cargas eléctricas circulan siempre en la misma dirección. Aunque comúnmente se identifica la corriente continua con una corriente constante, es continua toda corriente que mantenga siempre la misma polaridad, así disminuya su intensidad conforme se va consumiendo la carga (por ejemplo cuando se descarga una batería eléctrica). También se dice corriente continua cuando los electrones se mueven siempre en el mismo sentido, el flujo se denomina corriente continua y va (por convenio) del polo positivo al negativo.

Ley de Ohm

La ley de Ohm, postulada por el físico y matemático alemán Georg Simon Ohm, es una ley de la electricidad. Establece que la intensidad de la corriente I que circula por un conductor es proporcional a la diferencia de potencial V que aparece entre los extremos del citado conductor. Ohm completó la ley introduciendo la noción de resistencia eléctrica  R; esta es el coeficiente de proporcionalidad que aparece en la relación entre I y V.

Componentes Electrónicos

Resistencia

Se le denomina resistencia eléctrica a la igualdad de oposición que tienen los electrones al desplazarse a través de un conductor. La unidad de resistencia en el Sistema Internacional es el ohmio, que se representa con la letra griega omega, en honor al físico alemán Georg Ohm, quien descubrió el principio que ahora lleva su nombre.

En este enlace se puede ver la asociación de las resistencias en serie, en paralelo y mixta, así como la potencia disipada por una resistencia: http://es.wikipedia.org/wiki/Resistencia_el%C3%A9ctrica

Calculadora de resistencias: http://www.digikey.com/es/resources/conversion-calculators/conversion-calculator-resistor-color-code-5-band

Pulsador

Un botón o pulsador es un dispositivo utilizado para realizar cierta función. Los botones son de diversas formas y tamaños y se encuentran en todo tipo de dispositivos, aunque principalmente en aparatos eléctricos y electrónicos. Los botones son por lo general activados, al ser pulsados con un dedo. Permiten el flujo de corriente mientras son accionados. Cuando ya no se presiona sobre él vuelve a su posición de reposo.

Puede ser un contacto normalmente abierto en reposo NA o NO (Normally Open en Inglés), o con un contacto normalmente cerrado en reposo NC.

Cuando nos de desenvolvemos en el entorno de los microcontroladores, nos encontramos con un término poco común, me refiero a la polarización de una E/S, debemos saber que hay dos tipos de polarización, polarización alta la resistencia (término inglés Pullup) va conectada a + (5V) o polarización baja la resistencia (término inglés Pulldown) va conectada a masa – (0V). Siguen dos esquemas de estos términos:

Cuando conectamos un pulsador a una entrada de un microcontrolador, debemos polarizar la entrada para no recibir ruido.

Al trabajar con botones nos vamos a encontrar el problema de los rebotes o bouncing. La solución pasa por leer el estado del botón cuando se produce el borde ascendente de la tensión a extremos de los contactos del pulsador e introducir inmediatamente la salida con ese estado, el resto de entradas (se llama ruido) se inhiben o anulan mediante un lapsus de tiempo. Véase la imagen de debajo para entender mejor lo dicho.

Para solucionar el problema de los rebotes podemos hacerlo vía hardware o software:

  • Hardware: aquí se pueden utilizar diferentes técnicas, pero la más común es utilizar un condensador conectado en paralelo al pulsador. El condensador tardará cierto tiempo en cargarse y una vez que esté cargado, la señal de salida será igual a la señal de entrada.
  • Software: puede utilizarse solamente cuando tratemos la señal con un procesador, es decir, hay algún programa que lea la señal emitida por el pulsador. La técnica más utilizada consiste en ignorar las conmutaciones del valor del sensor si desde la última conmutación válida no ha pasado suficiente tiempo.

Más información en:

Un buen tutorial que explica el funcionamiento de los pulsadores: http://rufianenlared.com/pulsadores-arduino/

Y más información sobre los pulsadores y switches: https://learn.sparkfun.com/tutorials/switch-basics

LED

Un led (del acrónimo inglés LED, light-emitting diode: diodo emisor de luz) es un componente optoelectrónico pasivo y, más concretamente, un diodo que emite luz.

Un LED es un componente en el que el voltaje que cae depende de la intensidad, de la corriente que circula por él, siempre que esta corriente circule en el sentido correcto.

Los leds se usan como indicadores en muchos dispositivos y en iluminación. Los primeros leds emitían luz roja de baja intensidad, pero los dispositivos actuales emiten luz de alto brillo en el espectro infrarrojo, visible y ultravioleta.

Un LED al ser un diodo tiene una caída de tensión que depende del tipo o 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.

Datasheet LED rojo: https://www.arduino.cc/documents/datasheets/LED(red).pdf

Calculadora resistencias para LED: https://www.inventable.eu/paginas/LedResCalculatorSp/LedResCalculatorSp.html

Debido a su capacidad de operación a altas frecuencias, son también útiles en tecnologías avanzadas de comunicaciones y control. Los ledes infrarrojos también se usan en unidades de control remoto de muchos productos comerciales incluyendo equipos de audio y video.

Más información:

RECORDAR, primero montar todos los elementos sin alimentación, revisar su instalación y finalmente alimentar. Nunca manipular ni modificar con alimentación, desconectar, modificar y volver a alimentar.

Más información:

También tenemos LEDs infrarrojos emisores y receptores muy usados para hacer seguidores de línea o medidores de velocidad de ruedas

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.

Normalmente, los potenciómetros se utilizan en circuitos de poca corriente. Para circuitos de corrientes mayores, se utilizan los reostatos, que pueden disipar más potencia.

Más información http://diwo.bq.com/descubre-el-potenciometro/

Fotoresistencia

Una fotorresistencia o LDR (por sus siglas en inglés “light-dependent resistor”) es un componente electrónico cuya resistencia varía en función de la luz.

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. Aunque estos valores pueden depender del modelo de LDR.

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]

El valor de resistencia eléctrica de un LDR es bajo cuando hay luz incidiendo en él (puede descender hasta 50 ohms) y muy alto cuando está a oscuras (varios megaohmios).

Más información http://diwo.bq.com/descubre-el-ldr/

Ejemplos de uso:

Arduino Starter Kit

Vamos a trabajar con el Arduino Starter Kit, por lo tanto es importante conocer los elementos que lo componen. Veamos una serie de dispositivos incluidos en el Arduino Starter Kit. Dentro del enlace están las características técnicas de cada elemento.

Componentes:

Actualmente hay un Arduino Basic Kit https://www.arduino.cc/en/Main/ArduinoBasicKit que da acceso a project ignite https://projectignite.autodesk.com/shop/product/arduino-basic-kit/?pageTitle=Shop

Con este kit hay 15 proyectos muy interesantes propuestos:

  • GET TO KNOW YOUR TOOLS an introduction to the basics
  • SPACESHIP INTERFACE design the control panel for your starship
  • LOVE-O-METER measure how hot-blooded you are
  • COLOR MIXING LAMP produce any color with a lamp that uses light as an input
  • MOOD CUE clue people in to how you’re doing
  • LIGHT THEREMIN create a musical instrument you play by waving your hands
  • KEYBOARD INSTRUMENT play music and make some noise with this keyboard
  • DIGITAL HOURGLASS a light-up hourglass that can stop you from working too much
  • MOTORIZED PINWHEEL a colored wheel that will make your head spin
  • ZOETROPE create a mechanical animation you can play forward or reverse
  • CRYSTAL BALL a mystical tour to answer all your tough questions
  • KNOCK LOCK tap out the secret code to open the door
  • TOUCHY-FEEL LAMP a lamp that responds to your touch
  • TWEAK THE ARDUINO LOGO control your personal computer from your Arduino
  • HACKING BUTTONS create a master control for all your devices!

En esta lista de youtube hay varios video tutoriales de los proyecto propuestos por el Arduino Starter Kit: https://www.youtube.com/playlist?list=PLT6rF_I5kknPf2qlVFlvH47qHvqvzkknd

Más recursos de electrónica

Un libro para comenzar con la eléctrónica: http://mysite.du.edu/~ccolem22/Getting_started_in_electronics.pdf

Herramientas de calculo para resistencias, condensadores, leds, etc…: http://www.pighixxx.com/test/tools/

Buena web para iniciarse en electrónica: http://startingelectronics.org/

Como leer datasheets: http://rufianenlared.com/como-leer-datasheet/

Grobs Basic Electronics: http://lshoshia.science.tsu.ge/circuits/Mitchel_E._Schultz_Grobs_Basic_Electronics__2010.pdf

Libros básicos de electrónica que deberías leer:  http://hackaday.com/2016/08/19/books-you-should-read-basic-electronics/

Más libros: http://www.free-engineering-books.com/