Paso 3: El código!!!!
Ahora todo lo que necesitas hacer es escribir el código para que todos estos diferentes componentes trabajan juntos.Primero empiezas con el código de barrido Servo de la Arduino Playground, que permite el servo barrer continuamente en la forma
no se crear una subrutina que encuentra el tiempo que tarda una señal ultrasónica a enviado y volver a la entrada del sensor. A continuación, establece este valor a una variable
Aquí está el código de ejemplo
de cómo hacerlo
digitalWrite (Trig_pin, bajo);
delayMicroseconds(2);
digitalWrite (Trig_pin, alto);
delayMicroseconds(5);
digitalWrite (Trig_pin, bajo);
duración = pulseIn(Echo_pin,HIGH);
Serial.println (duración, DEC);
Delay(50);
Entonces dentro de los lazos del código de barrido crear un tiempo bucle. dice cuando entonces valor de duración está por debajo de un cierto número
las pausas de servo, LED se enciende y revise de nuevo el valor del sensor.
Se adjunta código completamente comentado de mi proyecto
/*
Centinela
Un Sensor de ultrasonidos está continuamente explorando para encontrar la distancia hasta el objeto más cercano
basado en este valor el Servo motor se detiene (pistola deja de barrer) y el LED se enciende,
Luego, comprueba de nuevo valor del sensor
Circuito:
Servo Motor está conectado al Digital Pin 9 y planta de energía
LED está conectado al pin digital 13
Entrada de sensor de ultrasonidos es conectado al pin 12
Salida está conectada al pin digital 7;
Creado por Krishna Peri de noviembre de 2013
modificado de diciembre de 2013, por KRishna Peri
*/
#include < Servo.h >
#include < SoftwareSerial.h >
const int Trig_pin = 7; Pulsoe de disparadores para Sensor ultrasónico
const int Echo_pin = 12; Recibe eco sensor ultrasónico
int ledpin = 13; condujo comando pin pin
de larga duración; Tiempo que tarda el pulso echar atrás a la derecha el Sensor ultrasónico
unsigned int duración = 1; valor para la distancia ultrasónico
Motor servo; Motor servo que controla el
int pos = 0; variable para almacenar la posición del servo
int rejilla = 10; no hace nada ahora mismo
void setup() {}
Serial.Begin(9600); Biblioteca Serial a 9600 bps
motor.Attach(9); Motor servo está conectado al pin 9
Inicializa el pin de pulso como salida:
pinMode (Trig_pin, salida);
inicializar el echo_pin pin como una entrada:
pinMode (Echo_pin, entrada);
pinMode(ledpin,OUTPUT);
pinMode(Dcmotor,OUTPUT);
}
void loop()
{
para (pos = 0; pos < 180; pos += 2) / / ejecuta servo en pasos de 5 de 0 a 180
{
motor.Write(POS);
Delay(15);
(Sensor);
mientras que (duración > 10 & & duración < 400) {/ / si el sensor detecta algo para cerrar
delayMicroseconds(30); servo de pausas
digitalWrite(ledpin,HIGH); enciende led
Sensor(); comprueba si el objeto está todavía cerrar
}
digitalWrite(ledpin,LOW); se apaga el led
}
para (pos = 180; pos > = 1; pos-= 2) / / igual a la anterior para el lazo excepto corre en dirección opuesta
{
motor.Write(POS);
Delay(15);
(Sensor);
mientras que (duración > 10 & & duración < 400) {}
digitalWrite(ledpin,HIGH);
delayMicroseconds(30);
Sensor();
}
digitalWrite(ledpin,LOW);
}
}
void Sensor() {/ / distancia del sensor al objeto más cercano recto
digitalWrite (Trig_pin, bajo);
delayMicroseconds(2); retrasos
digitalWrite (Trig_pin, alto); se inicia la señal
delayMicroseconds(5); retardo de
digitalWrite (Trig_pin, bajo); señal de parada
duración = pulseIn(Echo_pin,HIGH); comprueba lo que el valor es
Serial.println (duración, DEC); imprime el valor
Delay(50); retrasos
}