Paso 8: Efectos de sonido y sensores de la curva
El sensor de curva en este ejemplo se utiliza como un disparo, una vez que su salida valor alcanza un cierto nivel causas el Arduino para ejecutar el código especificado. Usted puede cambiar el valor de umbral para modificar el punto en el cual el sensor actúa como un disparador. Si abres la ventana de serial monitor de Arduino, mientras la Junta servo está conectada a su computadora que usted puede ver cuando se activa el sensor de curva. El sensor de curva se establece usando un divisor del voltaje para proporcionar un valor de entrada analógico en el pin de entrada 1.
Este ejemplo utiliza el protector de la onda de Adafruit para proporcionar efectos de sonido. Las instrucciones para construir y configurar el protector de la onda se pueden encontrar en la página web de protector de la onda en el http://www.ladyada.net/make/waveshield/
Hay varios ejemplos de código en la página de protector de la onda para reproducir archivos de audio. El ejemplo que he utilizado es el ejemplo de play6_hc.pde en http://www.ladyada.net/make/waveshield/libraryhcplay6.html
Descargar el archivo de sonido para una tarjeta de memoria SD y un lugar en su protector de la onda y usted son buenos ir.
Para el esquema de cableado lo hice dos formas. La primera versión utiliza un tablero de transistores pequeños de montaje superficial para activar el tablero del LED y el protector de la onda. La segunda versión utiliza dos transistores TIP 120 en lugar de otro - son funcionalmente idénticas. La gran diferencia es que los transistores TIP 120 pueden manejar cargas actuales mucho más grandes que la pequeña superficie Monte transistores - pero el 120s punta toman mucho más espacio.
Los transistores son necesarios porque el protector de la onda necesita un interruptor para decirle cuando para jugar el archivo de audio (transistor recinto pin de la entrada del protector de la onda cuando se activa) y múltiples LEDs mucho más corriente que puede proporcionar un único pin de salida de Arduino.
Cuando el sensor de curva está doblado lejos suficientemente los LEDs se desvanecerán, se reproducirá el archivo de sonido y después se mueve un servo. El servo se utilizaría para abrir un compartimento de misiles de antebrazo.
Para más Iron Man disfraces diversión revisa el sitio SIWDAT-
http://www.siwdat.com/index.html
Copie y pegue este bosquejo en tu ventana de Arduino-
/*
* Ejemplo 4
* Escudo doble Sensor/onda
* En este ejemplo utiliza un sensor de curva como un disparador de desaparecer un LED con efecto de sonido
* uso de un protector de la onda y luego activar un servo
* Honus 2010
* Modificado de Knock Sensor código creado 25 de marzo de 2007 por David Cuartielles
* y modificado 4 Sep 2010 por Tom Igoe
*/
#include "Servo.h" / / incluye la librería servo
Servo1 servo; crea una instancia del objeto servo para controlar un servo
estas constantes no va a cambiar:
const int servoPin1 = 9; pin de control de servo
const int triggerSensor = 1; el sensor está conectado a la clavija analógica 1
const int umbral = 400; valor de umbral para decidir cuando el sensor de entrada activa
const int ledPin = 11;
int soundPin1 = 10; pin de control de tarjeta de sonido
estas variables va a cambiar:
int sensorReading = 0; variable para almacenar el valor leído desde el perno del sensor
int ledState = bajo; variable utilizada para almacenar el estado del pasado, para cambiar la luz
void setup() {}
Serial.Begin(9600); utilizar el puerto serie
servo1.Attach(servoPin1); se fija el servo en el pin 9 al objeto servo
pinMode (soundPin1, salida); establece el sonido pin como salida
digitalWrite (soundPin1, bajo);
}
void loop() {}
servo1.Write(20); mover el servo a la posición de 20 grados
leer el sensor y almacenarlo en la variable sensorReading:
sensorReading = analogRead(triggerSensor);
Si la lectura del sensor es mayor que el umbral:
Si (sensorReading > = umbral) {}
digitalWrite (soundPin1, HIGH); activar el sonido
Delay(10); Espere diez milisegundos
digitalWrite (soundPin1, bajo); Apagar el sonido
fundidos de min a max en incrementos de 5 puntos:
para (int fadeValue = 0; fadeValue < = 255; fadeValue += 5) {}
establece el valor (rango de 0 a 255):
analogWrite (ledPin, fadeValue);
Espere 30 milisegundos ver el efecto de atenuación
Delay(40);
}
se descoloran hacia fuera de max a min en incrementos de 5 puntos:
para (int fadeValue = 255; fadeValue > = 0; fadeValue-=5) {}
establece el valor (rango de 0 a 255):
analogWrite (ledPin, fadeValue);
Espere 30 milisegundos ver el efecto de atenuación
Delay(40);
enviar la cadena "gatillo!" a la computadora, seguido de nueva línea
Serial.println("Trigger!");
}
servo1.Write(160); mover el servo a la posición de 160 grados
Delay(3000); Espere 3 segundos
servo1.Write(20); mover el servo a la posición de 20 grados
}
retrasar (3000); tres segundos de retraso para evitar la sobrecarga del búfer de puerto serie
}