Anda di halaman 1dari 5

-------------------------------------CONTROL DE 2 SERVOMOTOR con reed y ultrasonico

-------------------------------------En este ejercicio al accionar el sensor reed, activara el


servomotor a 90 y encender el LED 10 veces
luego el LED se apagara y el servomotor ira a la posicin 0
reed = pin 2 //Pin asignado al reed switch + 1 R 1K a +
led= pin 13
//Pin asignado al LED
buzzer= pin 10 //Pin asignado al buzzer
servo1= pin 3 //agisnamos el servo en el pin 3
servo2= pin 5 //agisnamos el servo en el pin 5
trig= pin 9 //Pin asignado al trig del sensor ultrasonico
echo= pin 8 //Pin asignado al echo del sensor ultrasonico
conexion servo:
cafe:GND
rojo:+
naranja:seal(en este caso pin 3 y 5)
Javiertecteos
*/
//-------------------------------------------------//Declara puertos de entradas y salidas y variables
//-------------------------------------------------int reed = 2; //Pin asignado al reed switch
int led= 13;
//Pin asignado al LED
int buzzer= 10;
//Pin asignado al buzzer
#include <Servo.h> //Libreria Servo
Servo servo1;
//crea un objeto servo en la libreria Servo.h
Servo servo2;
//crea un objeto servo en la libreria Servo.h
//sensor ultrasonico
long distancia;
long tiempo;

//-----------------------------------//Funcion principal

//-----------------------------------void setup()
//Se ejecuta cada vez que el Arduino se inicia
{
servo1.attach(3);
//agisnamos el servo en el pin 3
servo2.attach(5);
//agisnamos el servo en el pin 5
pinMode(reed,INPUT);
//El reed switch como una entrada
pinMode(led, OUTPUT); //El LED como una salida
pinMode(buzzer, OUTPUT); //El buzzer como una salida
Serial.begin(9600);
pinMode(9, OUTPUT); /*activacin del pin 9 como salida: para el pulso
ultrasnico*/
pinMode(8, INPUT); /*activacin del pin 8 como entrada: tiempo del rebote del
ultrasonido*/
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop()
{

//Esta funcion se mantiene ejecutando


//cuando este energizado el Arduino

//sensor ultrasonico
digitalWrite(9,LOW); /* Por cuestin de estabilizacin del sensor*/
delayMicroseconds(5);
digitalWrite(9, HIGH); /* envo del pulso ultrasnico*/
delayMicroseconds(10);
tiempo=pulseIn(8, HIGH); /* Funcin para medir la longitud del pulso entrante.
Mide el tiempo que transcurrido entre el envo
del pulso ultrasnico y cuando el sensor recibe el rebote, es decir: desde que
el pin 12 empieza a recibir el rebote, HIGH, hasta que
deja de hacerlo, LOW, la longitud del pulso entrante*/
distancia= int(0.017*tiempo); /*frmula para calcular la distancia obteniendo
un valor entero*/
/*Monitorizacin en centmetros por el monitor serial*/
Serial.println("Distancia");
Serial.println(distancia);
Serial.println(" cm");
delay(1000);
// Si el iman se acerca al reed switch o el sensor ultrasonico
// detecta algo a menos de 30 cm
if (digitalRead(reed)==LOW || (distancia)<=30){

digitalWrite(buzzer,HIGH); //Apaga el buzzer


servo1.write(180); //Cargamos la funcion con el valor en grados de 0 a 179
delay(1000);
//Retardo entre coordenadas
digitalWrite(buzzer,LOW); //Apaga el buzzer
for(int a=0; a<3; a++){
digitalWrite(led,HIGH); //Prende el LED
servo1.write(90); //Cargamos la funcion con el valor en grados de 0 a 179
servo2.write(90); //Cargamos la funcion con el valor en grados de 0 a 179
delay(1000);
//Retardo entre coordenadas
digitalWrite(led,LOW); //Apaga el LED
delay(300); //Tiempo
}
// Si el iman esta lejos del reed switch
}else{
digitalWrite(led,LOW); //Mantiene apagado el LED
servo1.write(0); //Cargamos la funcion con el valor en grados de 0 a 179
servo2.write(180); //Cargamos la funcion con el valor en grados de 0 a 179
delay(1000);
//Retardo entre coordenadas
digitalWrite(buzzer,LOW); //Apaga el buzzer
}
}
//Fin programa
int ledPin = 12; // declaramos el led en el pin 12 del arduino
int sensorPin=11; // declaramos el sensor PIR en el pin 11
int val = 0;
//variable para asignar la lectura del sensor PIR
void setup()
{
pinMode(ledPin, OUTPUT);
//El pin 12 del arduino lo asignamos como
salida para el led
pinMode(sensorPin, INPUT);
//El pin 11 lo asignamos como entrada
para la seal del sensor
Serial.begin(9600);
for(int i = 0; i < 30; i++)
//Utilizamos un for para calibrar el sensor
depende del tipo de sensor que utilicemos va a cambiar el tiempo de
calibracin
{
delay(1000);
}

delay(50);
}
void loop()
{
val = digitalRead(sensorPin);

//Lee el valor de la variable (val)

if (val == HIGH)
//Si detecta que hay movimiento manda activar el led
que hay conectado en el pin 12 del arduino
{
digitalWrite(ledPin, HIGH);
}
else
//Si la condicin anterior no se cumple manda apagar el led
{
digitalWrite(ledPin, LOW);
}
}

http://hetpro-store.com/TUTORIALES/wp-content/uploads/2015/02/circuitopir.jpg

int ledpin = 13;


/*ESTABLECEMOS PIN 13 COMO EL LED*/
int pir = 2;
/*ESTABLECEMOS PIN 2 COMO EL PIR*/
int estado = 0;
/*VARIABLE ESTADO DEL SENSOR PIR*/
void setup(){
/*CONFIGURACION DE LOS PINES*/
pinMode(ledpin, OUTPUT); /*LEDPIN COMO SALIDA*/
pinMode(pir, INPUT);
/*PIR COMO ENTRADA*/
}
void loop(){

/*BUCLE QUE SE REPITE*/

estado = digitalRead(pir); /*LEEMOS EL ESTADO DEL PIR Y LO GUARDAMOS EN


VARIABLE ESTADO*/
if (HIGH == estado) {
/*SI EL ESTADO ES ALTO*/
digitalWrite(ledpin, HIGH); /*ENCENDEMOS EL LED*/
delay(2000);
/*ENCENDIDO DURANTE 2 SEG*/
}
else {
/*DE LO CONTRARIO*/
digitalWrite(ledpin, LOW); /*APAGAMOS EL LED*/
}
}
Lo ms destacable de este cdigo (como novedad), es que hemos asignado a los pins
un nombre asociado a un nmero, para que sea ms facil de identificar (ej. ledpin =
13), mediante varibles de tipo entero (int). Por otro lado tenemos las instrucciones:
int ledpin = 13;
se almacena el numero entero 13 en la variable "ledpin"
estado = digitalRead(pir); se hace una lectura digital del pin "pir" y se almacena en
la variable "estado" definida previamente.
if (HIGH == estado) { }
si "estado" es un valor alto (5v = HIGH) ejecuta
las instrucciones de este corchete
else { }
de lo contrario (es un valor bajo, 0v = LOW), se ejecutan las
instrucciones de este corchete

https://sites.google.com/site/webmicrocontroladores/arduino/arduino-primerospasos

Anda mungkin juga menyukai