Control de luces en el árbol de Navidad a través de Arduino, Android y Bluetooth! (3 / 8 paso)

Paso 3: El código

El código fue creado en gran parte debido a cómo exactamente quería que esto funcione. Además, soy muy exigente acerca de hacer las cosas ordenadas, por eso esto es todo en funciones, realmente no tiene que ser, que es justo cómo yo lo prefiero. Mucho del código se puede omitir si usted no es tan exigente como yo acerca de cómo funciona. Asegúrese de leer los comentarios para encontrar cualquier parte innecesaria del código para su proyecto.

Realmente necesita gracias a bwrussell por su ayuda con este proyecto. Le preguntas de codificación múltiple y respondió todas ellas muy detalladamente para que pudiera entenderlos. Él sabe mucho más acerca de Arduino y la codificación que hago, y no habría podido hacerlo sin él. Ha sido un recurso fantástico y sólo un muy buen muchacho Instructable-maker.

Aquí está el código que he utilizado...

/ * Este código es para mi controlador Arduino/Bluetooth/Android. Una Android aplicación enviará una específica 'byte' de datos
a este código, el interruptor... sentencia case recibe el 'byte' y da vuelta pernos encendido o apagado dependiendo de lo que recibe.

Algoritmo: 4 pines se declaran, pinA - pinD. Son pernos 4-7 en el Arduino. El comando es el byte de datos que el código
recibe. rHigh y rLow se utilizan para los valores mínimo y máximo retardo aleatorio. El programa de instalación establece pinA - pinD como salidas
y pone todo tan apagado. Entonces comienza la transferencia serial, si se recibe un byte, se establece como comando. En el bucle
casos 1-4 simplemente activar o desactivar pinA - pinD. Caso 5 establece todos los pines como al azar. Caso 6 enciende todos los pines. Caso 7 vueltas
todos los pines fuera. Caso 8 comienza un patrón intermitente. */

const int pinA = 4;
const int pinB = 5;
const int pinC = 6;
const int pinD = 7;
comando de byte = 0;
const int rHigh = 555;
const int rLow = 100;
int randomPin;
void pinDo (int pin);
void allOn();
void allOff();
void randomStart();
void flashThrough();

void setup()
{
pinMode (pinA, salida); conjunto los relés pin como salida
pinMode (pinB, salida); //
pinMode (pinC, salida); //
pinMode (pinD, salida); //

allOff(); Asegúrese que los pernos estén apagados iniciar

Serial.Begin(9600);

Si (Serial.available() > 0) / / iniciar transferencia serial
{
comando = Serial.read(); Comando SET para igualar la serie de datos
}
}

void loop()
{
Si (Serial.available() > 0)
{
comando = Serial.read();
interruptor (comando)
{
caso 1: / / relé 1
pinDo (pinA);
rotura;
caso 2: / / relé 2
pinDo (pinB);
rotura;
caso 3: / / relé 3
pinDo (pinC);
rotura;
caso 4: / / relé 4
pinDo (pinD);
rotura;
caso 5: / / la función al azar
randomStart();
rotura;
caso 6: / / enciende todos los pines
allOn();
rotura;
caso 7: / / apagar todos los
allOff();
rotura;
caso 8: / / comenzar patrón intermitente
mientras que (comando! = 6 & & comando! = 7)
{
flashOn();
comando = Serial.read(); Verifique que los datos nuevos en serie
}
}
}
}

void pinDo(int pin)
{
Si (digitalRead(pin) == LOW)
{
digitalWrite (pin, HIGH);
}
otra cosa
{
digitalWrite (pin, LOW);
}
}

void randomStart)
{
mientras que (comando! = 6 & & comando! = 7)
{
randomPin = random (pinA, pinD + 1);
Si (digitalRead(randomPin) == LOW)
{
digitalWrite (randomPin, HIGH);
retardo (random (rLow, rHigh));
}
otra cosa
{
digitalWrite (randomPin, LOW);
retardo (random (rLow, rHigh));
comando = Serial.read(); Busque nuevos datos seriales, si es así, salir el parpadeo aleatorio
/ * Estos 2 si las declaraciones están presentes en el caso 5 º porque quería las clavijas inmediatamente
activar o desactivar dependiendo del comando que recibe mientras que en la parte aleatoria de code.* /
Si (comando == 6)
{
allOn();
}
Si (comando == 7)
{
allOff();
}
}
}
}
flashOn nula)
{
digitalWrite (pinA, HIGH); todo en
Delay(150);
digitalWrite (pinB, HIGH);
Delay(150);
digitalWrite (pinC, HIGH);
Delay(150);
digitalWrite (pinD, HIGH);
Delay(400);
allOff();
allOn();
allOff();
allOn();
allOff();
flashThrough();
flashThrough();
flashBack();
flashBack();
}

allOn nula)
{
digitalWrite (pinA, HIGH);
digitalWrite (pinB, HIGH);
digitalWrite (pinC, HIGH);
digitalWrite (pinD, HIGH);
Delay(300);
}

allOff nula)
{
digitalWrite (pinA, LOW); siguiente fase
digitalWrite (pinB, LOW);
digitalWrite (pinC, LOW);
digitalWrite (pinD, LOW);
Delay(350);
}

void flashThrough)
{
digitalWrite (pinA, HIGH); siguiente fase
Delay(200);
digitalWrite (pinA, LOW);
digitalWrite (pinB, HIGH);
Delay(200);
digitalWrite (pinB, LOW);
digitalWrite (pinC, HIGH);
Delay(200);
digitalWrite (pinC, LOW);
digitalWrite (pinD, HIGH);
Delay(200);
digitalWrite (pinD, LOW);
}

(flashBack vacío)
{
digitalWrite (pinD, HIGH); siguiente fase
Delay(200);
digitalWrite (pinD, LOW);
digitalWrite (pinC, HIGH);
Delay(200);
digitalWrite (pinC, LOW);
digitalWrite (pinB, HIGH);
Delay(200);
digitalWrite (pinB, LOW);
digitalWrite (pinA, HIGH);
Delay(200);
digitalWrite (pinA, LOW);
}

Artículos Relacionados

Cómo controlar sus luces de árbol de Navidad con un iphone o un android

Cómo controlar sus luces de árbol de Navidad con un iphone o un android

Tuve la brillante idea de controlar mi led luces para el árbol de Navidad con mi teléfono, se utiliza el método de bluetooth.Aunque no sé nada acerca de programación de bluetooth, para hacer mi propio, comencé a buscar en internet para que funcione.E
Arduino/Android - servomotor BLUETOOTH Multi aplicación Android Control

Arduino/Android - servomotor BLUETOOTH Multi aplicación Android Control

¡Hola mundo! Hice una aplicación de control de 1 servo ayer y dije que haría un control multi, así que aquí está la aplicación de control de múltiples! También hice un mejor código de arduino. Siga el siguiente paso para el esquema, código, lista de
Luces de árbol de Navidad parpadea música sincronizada controlado por ordenador

Luces de árbol de Navidad parpadea música sincronizada controlado por ordenador

Relés de estado sólido de uso a parpadear las luces de su árbol de Navidad en tiempo con la música. También bueno para Halloween haunted casas.Paso 1: Adquirir y configurar un árbol de NavidadHaz un bonito árbol grande y saludable ante sus ventanas m
Árbol de Navidad LED bordado

Árbol de Navidad LED bordado

inspirados en el Tutorial de bordado electrónico de Becky Stern, este patrón utiliza LEDs como la cadena de luces en un árbol de Navidad de fieltro aplique.He incluido un modelo de árbol que se adapta a 8" o 6" aros de bordado, o usted puede hac
Tomar una imagen HDR agradable de su árbol de Navidad

Tomar una imagen HDR agradable de su árbol de Navidad

Hola,en este Instructable quiero mostrar cómo hacer una foto HDR tiene un aspecto de su árbol de Navidad.HDR significa High Dynamic Range.Básicamente estamos tomando una serie de imágenes claras y oscuras y haciendo una imagen con un contraste más al
Cómo hacer un Mini Portal de árbol de Navidad de regalo

Cómo hacer un Mini Portal de árbol de Navidad de regalo

esto es como hacer un regalo de la novedad del light-up basado en el juego Portal. Usted puede hacer este arte para cualquier día de fiesta--un huevo de Pascua, fuegos artificiales, una calabaza... pero era tiempo de Navidad cuando lo hice, usé un ár
Árbol de Navidad de ueber-Geek con decoraciones de código QR

Árbol de Navidad de ueber-Geek con decoraciones de código QR

árbol de Navidad de Über-Geek con códigos QR decoracionesMostrar su geekyness con adornos de árbol de códigos QR que tienen cojo galleta Navidad chistes sobre ellos. Por supuesto, necesita un escáner para apreciar los chistes de cojos, pero entonces
Teléfono control árbol de Navidad luces

Teléfono control árbol de Navidad luces

Me encanta Day de Chrismas, creo que es uno de los mejores días en el año. Siempre hacemos un bonito árbol de Navidad con mi familia, pero este año decidí que voy añadir alguna función extra a este árbol. Entonces hice un sistema de luz controlada po
¿Árbol de Navidad luces controladas por teléfono? Un simple hack Internet de las cosas.

¿Árbol de Navidad luces controladas por teléfono? Un simple hack Internet de las cosas.

Mi hijo quería ser capaz de convertir el árbol de Navidad encendido y apagado con su teléfono. Cavado alrededor en el laboratorio secreto de montaña (también conocido como el sótano) y vino para arriba con el siguiente proyecto, que utiliza un Arduin
Arduino controla el árbol de Navidad de LED RGB posicional

Arduino controla el árbol de Navidad de LED RGB posicional

En este Instructable nos va creando un árbol de Navidad de LED RGB programables y construyendo (X, Y) posición de las luces en el Arduino que podemos crear diferentes patrones tanto animada como estática. Yo recomendaría esto a cualquier persona que
Pie el árbol de Navidad en lata a GE color efectos luces LED

Pie el árbol de Navidad en lata a GE color efectos luces LED

Un proyecto de decoración de fiesta DIY antigua para su patio delantero es la tartera de árbol de Navidad. Este instructivo describe cómo actualizar este proyecto con el color de GE efectos de Color cambiando bombillas LED. Las lámparas GE Color efec
Treelegram - hackear un árbol de Navidad luces de cualquier parte del mundo!

Treelegram - hackear un árbol de Navidad luces de cualquier parte del mundo!

Hola a todos,después de algunos años había registrado en Instructables y nunca publicaron cualquier tutorial, ha llegado el momento!Así que, aquí estoy, dispuesto a compartir mi último proyecto, llamado Treelegram.Treelegram es un Social árbol de Nav
Colgante luces de árbol de Navidad sin una escalera

Colgante luces de árbol de Navidad sin una escalera

problema: Quiero colgar mis luces de Navidad en mis árboles y reducir al mínimo el riesgo de ortopédico previene.  Quiero ser capaz de derribar sin ripeo las ramas o romper los cables.Solución: Se trata de una plantilla simple de dos polos de escoba
@tweet_tree: twitter control árbol de Navidad

@tweet_tree: twitter control árbol de Navidad

es un árbol de Navidad que todo el mundo puede controlar desde Twitter. Tweet a un color. Un pequeño servidor embebido lee tus tweets y desvanece de nuestro árbol óptico de fibra a los colores que usted envíe. Nuevos tweets se agarraron cada pocos se