Paso 7: Comunicación inalámbrica
Programación no es muy atractivo-tiempo (en nuestra opinión). Apenas consigamos todos la programación fuera del camino.
Lo Bullduino debe colocarse con el siguiente código de transmisor:
El Arduino para la caja del receptor se debe cargar con el siguiente código:
< pre > / * incluyen pantalones de Romance por equipo Instructables principio actores: Audrey Love, Amanda Ghassaei, Randy Sarafan este código está recibiendo datos seriales sin hilos de un par de pantalones por medio de Xbee y: - control de un controlador de ventilador para atenuar la iluminación de la sala en correlación con una cremallera de pantalón - aumentando el volumen de un estéreo cuando se baja la cremallera - encender velas cuando los pantalones son desabrochados para obtener más información , por favor visite: basado en el código de http://www.ladyada.net/learn/sensors/ir.html este código es de dominio público, disfrute por favor! * / / / Define el LED conectado al pin digital 13 int IRledPin = 13; Lámparas conectado al pin digital 9 int lampsPin = 3; int sentDat; int prevSentDat; establecer la comparación valor //for el volumen del cae de comando int = 250; void setup() {/ / inicializar el pin digital de IR como una salida: pinMode (IRledPin, salida); //initializes la vela salida pines pinMode (8, salida); pinMode (9, salida); Serial.Begin(9600); } void loop() {si (Serial.available() > 0) {prevSentDat = sentDat; sentDat = Serial.read(); if (sentDat > prevSentDat) {//if el nuevo valor es mayor que el tiempo pasado (prevSentDat < sentDat) {prevSentDat ++; //increment prevSent analogWrite (lampsPin, prevSentDat); delay(5);}} más {//new valor es inferior al (prevSentDat < sentDat) {prevSentDat - //decrement prevSent analogWrite (lampsPin, prevSentDat); delay(5);}} //if está disminuyendo la resistencia, suba el volumen si (caer < = sentDat) {//volume sube volumeUp(); / / espere 30 milisegundos delay(30); caer = sentDat - 5;} si (sentDat == 'z') {/ / se descoloran hacia fuera de max a min en incrementos de 5 puntos: digitalWrite (8, HIGH); digitalWrite (9, alto); Delay(10000); digitalWrite (8, bajo); digitalWrite (9, bajo); }}} / / Este procedimiento envía un pulso de 38 KHz a la IRledPin / / para un cierto número de microsegundos. Esto usaremos siempre que necesitemos enviar códigos void pulseIR (microsecs largo) {/ / a cuenta regresiva desde el número de microsegundos que se nos dice que esperar cli(); / / esto apaga cualquier interrupciones de fondo mientras (microsecs > 0) {/ / 38 kHz es alta alrededor de 13 microsegundos y 13 microsegundos baja digitalWrite (IRledPin, alto); / / esto lleva alrededor de 3 microsegundos a suceder delayMicroseconds(10); / / rato de 10 microsegundos digitalWrite (IRledPin BAJA); Esto también toma cerca de 3 delayMicroseconds(10) de microsegundos; rato de 10 microsegundos / / tan 26 microsegundos en conjunto microsecs-= 26; } sei(); Este se convierte nuevamente en} void volumeUp() {/ / este es el código de mi estéreo JVC particular / / para el volumen botón delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(480); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(20140); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(480); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(20140); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(480); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(20140); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(480); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(20140); pulseIR(520); /////// }
Cuando ambos están programados, asegúrese de que estén y fije los escudos sin hilos. Asegúrese de que los microinterruptores en los dos el los escudos se pueden alternar a "micro".