* Código cráneo - Charles Ford otoño 2013
*
* Luz de las velas
* -----------
*
* Utilización de números aleatorios para emular una vela parpadeante con un PWM habían conducido
*
* 2007 Tod E. Kurt < tod
* http://todbot.com/
*
*/
// ---------------------------------------------------------------------------
Ejemplo biblioteca NewPing del bosquejo hace un ping unas 20 veces por segundo.
// ---------------------------------------------------------------------------
#include < NewPing.h >
#define TRIGGER_PIN 12 / / pin Arduino atado para activar el pin en el sensor de ultrasonidos.
#define ECHO_PIN 11 / / atado de Arduino pin a pin en el sensor ultrasónico del eco.
#define MAX_DISTANCE 200 / / distancia máxima queremos ping para (en centímetros). Distancia máxima del sensor está valorada en 400-500cm.
Sonar de NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); NewPing instalación de pernos y distancia máxima.
// ***************VARIABLES*********************************************
int ledPin = 13; selecciona el pin para el LED
int jawPin = 9; selecciona el pin para el transistor abrir la mandíbula
int signalPin = 5; LED en la placa de Arduino un mínimo
int k = 0; variable de bucle
int val = 0; variable que contiene el actual brillo de LED
int delayval = 0; variable que guarda el tiempo de retardo actual
int distancia = 0; variable para ultrasónica de la distancia en cm
//****************SETUP************************************************
void setup() {}
randomSeed(0); inicializar el generador de números aleatorios
pinMode (ledPin, salida); declara el ledPin como salida
pinMode (jawPin, salida); control de transistor como salida
pinMode (signalPin, salida); incorporado en placa Arduino desnuda
digitalWrite(ledPin,HIGH);
Delay(2000);
digitalWrite(ledPin,LOW);
}
//***************LOOP***************************************************
void loop() {}
Delay(50); Esperar 50ms entre pings (pings alrededor de 20 por segundo). 29ms debería ser el retraso más corto entre pings.
unsigned int nos = sonar.ping(); Enviar ping, ping tiempo en microsegundos (uS).
Convertir el tiempo de ping de distancia e imprimir el resultado (0 = distancia fija exterior gama, no echo ping)
distancia = (nos / US_ROUNDTRIP_CM);
Si (distancia < 60 & & distancia > 0) jaw(); ejecutar la rutina de la mandíbula abierta
}
//************END OF LOOP**********************************************
void jaw() {}
rutina para abrir la mandíbula y parpadean las luces
para (k = 0; k < 100; k) {}
ACTIVAR EL RELÉ
Si (k < 50) digitalWrite(jawPin,HIGH);
digitalWrite(jawPin,LOW) otra cosa;
EFECTO DE LUZ DE LAS VELAS EN LOS OJOS
Val = random(20,255); escoger un número al azar entre 100 y 255
analogWrite (ledPin, val); ajustar el brillo de LED
delayval = random(50,150); escoger un número al azar entre 30 y 100
Delay(delayval); demora tantos milisegundos
}
analogWrite (ledPin, 40); deja los ojos bajos en el final de la rutina
}