Controlado por Arduino/App escritorio luz (4 / 6 paso)

Paso 4: Código de Arduino

Como con el código de la aplicación cubriré esto brevemente...

En primer lugar configurar todas mis variables, asignando los de LED y sensores a los pines correctos. La salida de los sensores de efecto hall se leerá utilizando la función analogRead, dando un valor entre 0 y 1023. Como se describió anteriormente salidas mitad cuando ninguÌ n imán presente, así que alrededor de 500. Uso bajo y variables de gatillo alta para poder ajustar fácilmente cuando sabe que el disco es sobre el sensor.

Los neopixels requiere una biblioteca para que de aquí definidos...

La configuración de vacía empieza los cuentos por entregas, para el Micro Rx/Tx pines (bluetooth) utilizan Serial1... Los pernos entonces están listos para ser entradas o salidas y ponga el LED apagado.

Ahora es el bucle principal...

Esta primera sección es comprobar si los datos están siendo recibida de la Serial1.available() de la bobina es leyendo la serie y conseguir el número de bytes de la cadena. Si eso de > 0 sé datos entrantes.

Si usted recuerda, todas las cadenas que envían desde la aplicación terminan con un signo de interrogación... es decir (Bright100)?

Utilizo la función .readStringUntil para leer los datos en serie hasta el signo de interrogación (Bright100) y configure la variable BTstring con esto. Comprobar si BTstring termina con un ')' para asegurarse de que recibe de comandos completados. Si son, entonces el bucle BluetoothProgram Loft... esto se describe más abajo...

Este bit siguiente controla la alarma de la salida del sol. Básicamente si la alarma está activada y el tiempo es correcto entonces comienza a aumentar de intensidad los LEDs. Por el ojo humano percibir luz logarítmico es mejor no hacer ningún tipo de transición LED ups/abajo con una curva exponencial y no lineal. Por lo tanto una ecuación está impulsando los valores PWM...

Para evitar que el puck interfiera con el control de la aplicación es desactivada al utilizar la aplicación. Para volver a activar el disco necesita mover el producto durante 5 segundos... Este pedacito de código comprueba primero si todos los sensores son salida de un valor de estado estacionario (sin imán) y luego inicia un temporizador. Cuando 5 segundos se completa la variable BTinControl es retroceder en false.

El código para el disco ahora... Los sensores deben ser leído.

Si la luz está apagado, comprobará si alguno de los sensores están por encima o por debajo de los puntos gatillo, es decir, el disco se ha colocado en el arco. Si es entonces se desvanecerá el LED blanco s su último ajuste no importa donde la coloques.

Para mantener el sistema de LED a su último valor en lugar de actualización a los valores asociados con lo que los sensores de su accionar, la variable MovedSinceStandby está establecida en false. Básicamente este bit siguiente de código comprueba si se ha mudado el puck desde su posición inicial por una cantidad fija...

Si va a mover el disco se llama 'MainProgram' para actualizar a la temperatura de brillo/color. Esto se describe más abajo.

La última parte de este bucle principal comprueba si el disco se ha colocado en la espera de muelle - es sensor 12 leer un valor por encima/por debajo de un punto gatillo. Si es así, desvanece el LED hacia abajo...

El bucle de bluetooth:

Como se describió anteriormente cuando se reciben datos a través de bluetooth, se lee la cadena. Ahora tenemos que comprobar lo que dice esa cadena...

Todas las cadenas aparte de brillo, temperatura de color y RGB son bastante fáciles de tratar. Comprobar si BTstring es igual que el texto enviado desde la aplicación.

Si recuerdan, cuando cambias pantallas en la aplicación enviará un comando de bluetooth. Aquí nos pregunta para y algunas variables en verdadero o falso así que sabemos que la pantalla está en.

Aviso al final de cada sección que configurar la variable BTinControl a true y borrar el valor de BTstring.

Cuando usted pulse el botón de encendido en la aplicación se descolorará los LEDs hacia arriba o hacia abajo. Las variables establecidas anteriormente para que la pantalla está en se utilizan para decidir si es el RGB o LED blanco a control...

Brillo, temperatura de color y RGB necesito leer las cadenas de una manera ligeramente diferente. Porque el número parte de la cadena a cambiar me pregunto si la cadena comienza con uno de los identificadores no la cadena completa, tan sólo (Bright aquí...

Ahora tengo que separar el valor del brillo real de la cadena. Es el formato de la cadena enviada desde la aplicación (Brightvalor) por lo que sé por lo tanto el valor de brillo será entre la ' t 'y la')'. La posición de la ' t ' permanece constante, siempre va a ser el 7 º carácter de la cadena. Sino porque el valor de brillo puede ser entre 10 y 100 en la posición de la ')' va a cambiar. Utilizo el comando .indexOf a trabajar a donde el ')' es, qué personaje es y entonces puede utilizar el comando .substring leer la cadena entre el carácter 7 y ')' posición de carácter. Esto me deja con solo el valor de brillo que puedo usar para ajustar el RGB o LED blanco dependiendo de la pantalla.

Ajuste temperatura de color es un proceso similar al anterior pero el valor será entre la 'p' y ')' esta vez...

Para el ajuste RGB tenemos tres valores para extraer de la cadena, pero es un proceso similar de nuevo. De la aplicación recibimos cadenas en forma (RGBvalor. valor. valor)

Para saber que el valor rojo será entre la 'B' y el primer punto. El valor verde está entre los puntos 1 º y 2 º y el valor de azul es entre el 2 º punto y ')'.

Una vez tenemos los valores de la neopixles se establecen en el nuevo color...

Aquí comprobamos si la alarma está habilitada o deshabilitada. Si se cambia la hora de alarma Haz enviado una cadena con el número de milisegundos a partir de ahora hasta la alarma. Otra vez este valor se extrae de la cadena y para poder comprobar si su tiempo para iniciar la salida del sol que necesitamos establecido una variable en el tiempo actual (millis)...

Controles de disco:

Como se describe antes si el puck (imán) es una forma que impulsará la salida del sensor hall debajo del gatillo baja y si la otra manera para arriba del gatillo del alta.

Esto permite el control de brillo y temperatura de color en el mismo arco...

Se leen los valores de los sensores. Si alguno de ellos es menor que el valor de disparo baja estamos ajuste a temperatura de color. Hay 11 sensores en el área de arco, que a su vez ir por debajo del punto de gatillo como el duende malicioso es pasará sobre ellos. Cada sensor tiene un valor PWM para los LEDs frescos y calientes contra él, comenzando con sensor de 1 a 100% 0% cálido, fresco y a 11 en 0% caliente y 100% cool.

El control de brillo se hace de la misma manera... comprobar si las salidas de los sensores son arriba del gatillo del alta esta vez y dando a cada sensor un brillo ponderación de valor.

Esta ponderación de brillo es entonces multiplicado por el valor de temperatura de color para dar el total valor de la salida. Que le permite instalar a cualquier temperatura de color a cualquier brillo...

Artículos Relacionados

Lámpara de sobremesa - con caja de relé controlado por Arduino Bluetooth

Lámpara de sobremesa - con caja de relé controlado por Arduino Bluetooth

Hoy voy a mostrar cómo construir tu propia lámpara de escritorio controlado Bluetooth con arduino uno.Para este proyecto tienes que construir el ralay de caja que se puede encontrar aquí:(Nota: si no desea construir una caja se puede usar un módulo d
Controlado por Arduino lobo cola

Controlado por Arduino lobo cola

saludos, o mejor dicho, "Aaaaaooooooooooooh"! Complace en hacer su entusiasta compañero lobo de acquaintence. Tienes un espíritu lobo interior que es por lo que deseoso de darse a conocer que han venido a aprender a hacer tu cola de lobo animatr
Calabaza de luz controlado por Arduino

Calabaza de luz controlado por Arduino

la visión inicial del proyecto fue establecer un LED para encender y apagar por sí mismo basado en la luz ambiental y parpadeo y variar la intensidad para simular una vela.Piezas necesarias:1 x Arduino1 x LED (preferiblemente brillante ámbar un reali
Cómo hacer fotografía Time-lapse inteligente controlado por Arduino

Cómo hacer fotografía Time-lapse inteligente controlado por Arduino

proyecto: fotografía Time-lapse dinámica sensible a la luz y ajustablePor Holden Leslie-BoleCosto aproximado: $70 sin la cámaraHe estado haciendo alguna fotografía Time-lapse con mi GoPro HERO3 un rato ahora, y he conseguido algunas imágenes grandes.
Controlado por Arduino Bluetooth-bot

Controlado por Arduino Bluetooth-bot

este instructable le mostrará cómo convertir un viejo coche de R/C del juguete de la tienda ($1,50) en un robot controlado por bluetooth. Para hacer la conversión, usted necesitará un Arduino (cualquier tipo), un L298N 2 amp motor-controlador doble (
El Hexachord, un instrumento Musical controlado por Arduino

El Hexachord, un instrumento Musical controlado por Arduino

El año pasado, con la fecha límite de la zona de Bahía Maker Faire, he creado un nuevo instrumento llamado el Hexachord. Era un montón de diversión, un gran éxito, y he tenido la oportunidad de hacer una serie de conversaciones sobre ello. El desafío
1Sheeld controlado por Arduino vehículo

1Sheeld controlado por Arduino vehículo

Utilizando 1Sheeld, mando un Arduino powered vehículo con el acelerómetro en tu Smartphone/Tablet.Paso 1: lo esencial Se requieren los siguientes elementos, o equivalente.1) cualquier Arduino powered plataforma del vehículo. En la foto es el Thumper
Lanzador de pelotas de Ping Pong controlado por Arduino

Lanzador de pelotas de Ping Pong controlado por Arduino

Hola todo el mundo!Se trata de un lanzador de pelotas de ping pong diseñado para ser controlado por un arduino.Utiliza un servo para dispensar las bolas y dos motores con las ruedas para dar velocidad y disparar.Todas las piezas pueden imprimirse uti
Huevo-Bot controlado por Arduino DIY

Huevo-Bot controlado por Arduino DIY

En este instructables te mostrará cómo hacer tu propio Huevo-Bot controlado con Arduino. Que quería hacer antes pero pensé que es demasiado difícil para mí pero me equivoqué. Es fácil de construir que para que todo el mundo puede hacerlo.Paso 1: part
Pequeño Smartphone controlado por Arduino tanque

Pequeño Smartphone controlado por Arduino tanque

en este Instructable te voy a mostrar cómo hacer un tanque de arduino controlado muy pequeño smartphone.He intentado hacer la TinyTank tan pequeños como sea posible, también quería controlarlo con un smartphone.Por lo menos que quería hacer fácil de
Controlado por Arduino, alas de disfraz de Arcángel de aluminio

Controlado por Arduino, alas de disfraz de Arcángel de aluminio

siempre he amado el Arcángel del personaje de Marvel. Cuando mi hermano, (enchufe descarado alerta) budding historietista David Fernández, me mostró fotos de una Convención de cosplay fue a yo pensaba "¿no sería impresionante si alguien hizo Arcángel
Nunchuck Wii inalámbrico controlado por Arduino

Nunchuck Wii inalámbrico controlado por Arduino

Utilizar un sin modificar totalmente inalámbrico Wii Nunchuck como un sistema de control para cualquier proyecto basado en Arduino. No pares de transmisor/receptor de radio mayor etc..Este instructable asumir alguna experiencia con el microcontrolado
Con Bluetooth Robot controlado por Arduino mediante aplicación Android

Con Bluetooth Robot controlado por Arduino mediante aplicación Android

Después de intentar robot seguimiento remoto por mando a distancia IR. He proceder para controlar la misma plataforma del robot por BluetoothControlador Arduino a través de la aplicación para Android. Este método es más confiable, más distancia, mejo
Controlado por Arduino RGB LED Infinity Mirror

Controlado por Arduino RGB LED Infinity Mirror

Actualización 22/11/2013: gracias a todos los que votaron por este proyecto en el concurso de microcontrolador! Fue uno de los tres ganadores del primer premio.Actualización 17/09/2013: gracias a todos los que votaron por este proyecto en el concurso