Controlando Intensidad de Tira de led por Bluetooth-Pwm

En este video veremos como controlar la intensidad de una tira de led mediante bluetooth y pwm.

Circuito

El circuito se compone de un arduino uno un módulo bluetooth hc-06 un transistor npn Tip31c, un resistor de 120 ohm y por supuesto una tira de led.

La tira de led se alimenta con 12 voltios no así el arduino que usa 5 voltios para su funcionamiento. A través del pin número 3 del arduino se conecta a la base del transistor Tip31c, no olvidemos colocar un resistor de 120 ohm a la base para no dañar al transistor.

Al aumentar la tensión, en el pin 3 este también hace que aumente la tensión en el transistor, lo cual genera que la tira de led se ilumine más.

El módulo bluetooth hc-06 establece la conexión entre el arduino uno y el smartphone que estemos usando, la velocidad de conexión es de 115200 bps.

 

circuito_pwm_tira_led

Código fuente

led_pwm

Aplicación App inventor

interface_pwm

 

bloques_pwm

Descargar la aplicación para android

variador_de_luz_app

Hoja de datos Tip31c

tip31c

Módulo bluetooth hc-06

Imágenes integradas 1

Características:

  • Especificación bluetooth v2.0 + EDR (Enhanced Data Rate)
  • Modo esclavo (Solo puede operar en este modo)
  • Puede configurarse mediante comandos AT (Deben escribirse en mayúscula)
  • Chip de radio: CSR BC417143
  • Frecuencia: 2.4 GHz, banda ISM
  • Modulación: GFSK (Gaussian Frequency Shift Keying)
  • Antena de PCB incorporada
  • Potencia de emisión: ≤ 6 dBm, Clase 2
  • Alcance 5 m a 10 m
  • Sensibilidad: ≤ -80 dBm a 0.1% BER
  • Velocidad: Asincrónica: 2 Mbps (max.)/160 kbps, sincrónica: 1 Mbps/1 Mbps
  • Seguridad: Autenticación y encriptación (Password por defecto: 1234)
  • Perfiles: Puerto serial Bluetooth
  • Módulo montado en tarjeta con regulador de voltaje y 4 pines suministrando acceso a VCC, GND, TXD, y RXD
  • Consumo de corriente: 30 mA a 40 mA
  • Voltaje de operación: 3.6 V a 6 V
  • Dimensiones totales: 1.7 cm x 4 cm aprox.
  • Temperatura de operación: -25 ºC a +75 ºC

 

Aplicaciones:

  • Comunicación inalámbrica entre microcontroladores
  • Comunicación inalámbrica entre computadoras y microcontroladores
  • Comunicación inalámbrica entre teléfonos móviles o tabletas y microcontroladores

Estriado de playground

Señales analógicas de salida en Arduino (PWM).

En este apartado vamos a ver los fundamentos en los que se basa la generación de salidas analógicas en Arduino. El procedimiento para generar una señal analógica es el llamado PWM.

Señal PWM (Pulse-width modulation) señal de modulación por ancho de pulso.

Donde:

– PW (Pulse Width) o ancho de pulso, representa al ancho (en tiempo) del pulso.

– length/period (periodo), o ciclo , es el tiempo total que dura la señal.

La frecuencia se define como la cantidad de pulsos (estado on/off) por segundo y su expresión matemática es la inversa del periodo, como muestra la siguiente ecuación.

El periodo se mide en segundos, de este modo la unidad en la cual se mide la frecuencia (hertz) es la inversa a la unidad de tiempo (segundos).

Existe otro parámetro asociado o que define a la señal PWM, denominado “Duty cycle”, Ciclo de Trabajo, el cual determina el porcentaje de tiempo que el pulso (o voltaje aplicado) está en estado activo (on) durante un ciclo.

Por ejemplo, si una señal tiene un periodo de 10 ms y sus pulsos son de ancho (PW) 2ms, dicha señal tiene un ciclo de trabajo (duty cycle) de 20% (20% on y 80% off). El siguiente gráfico muestra tres señales PWM con diferentes “duty cycles”.

La señal PWM se utiliza como técnica para controlar circuitos analógicos. El periodo y el ciclo de trabajo (duty cycle) del tren de pulsos puede determinar la tensión entregada a dicho circuito. Si, por ejemplo, tenemos un voltaje de 5v y lo modulamos con un duty cycle del 10%, obtenemos 0.5V de señal analógica de salida.

Las señales PWM son comúnmente usadas para el control de velocidad de motores DC (si decrementas el ciclo de trabajo sobre la señal de control del circuito de potencia que actúa sobre el motor el motor se mueve más lentamente), ajustar la intensidad de brillo de un LED, etc.

En Arduino, con ATmega168 o ATmega328, la señal de salida PWM (pines 3,5,6,9,10, y 11) es una señal de frecuencia 490 Hz aproximadamente y que sólo nos permite cambiar el “duty cycle” o el tiempo que el pulso está activo (on) o inactivo (off), utilizando la función analogWrite().

Otra forma de generar señales PWM es utilizando la capacidad del microprocesador. La señal de salida obtenida de un microprocesador es una señal digital de 0 Voltios (LOW) y de 5 voltios (HIGH).

Con el siguiente código y con sólo realizar modificaciones en los intervalos de tiempo que el pin seleccionado tenga valor HIGH o LOW, a través de la función digitalWrite (), generamos la señal PWM.

El programa pone el pin 10 a HIGH una vez por segundo durante medio segundo (ciclo de trabajo 50%), la frecuencia que se genera en dicho pin es de 1 pulso por segundo o 1 Hz de frecuencia (periodo de 1 segundo). Cambiando la temporización del programa, podremos cambiar el ciclo de trabajo de la señal. Por ejemplo, si cambiamos las dos líneas con delay(500) por delay(250) y delay(750), modificamos el ciclo de trabajo a 25%; ahora, el programa pone el pin 10 a HIGH una vez por segundo durante 1/4 de segundo y la frecuencia sigue siendo de 1 Hz.

Utilizando la función analogWrite(pin,value) podemos obtener la misma señal a una frecuencia de 490 Hz aproximadamente. Para una señal PWM con ciclo de trabajo 50% hay que poner en el parámetro value, de la función analogWrite(pin,value), el valor de 127.

De forma que cambiando el valor del parámetro value en la función analogWrite(pin,value), podemos obtener distintos ciclos de trabajo:

value Ciclo de trabajo
0 0%
63 25
127 50%
190 75%
255 100%

Tal vez pueda interesarte proyectos en IOT, raspberry pi, arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas.

Un comentario en “Controlando Intensidad de Tira de led por Bluetooth-Pwm

Deja una respuesta