Sunteți pe pagina 1din 7

UMSA INGENIERA Servo Motor y

sensor de Ultra
Sonido con
Arduino
Laboratorio de Mecatrnica

CHUQUIMIA CASTILLO LUIS ALBERTO


Univ. Chuquimia Castillo Luis UMSA ING ELM

Servo Motor y sensor de Ultra Sonido con Arduino

1.- OBJETIVO
* Conocer los comandos del programa ARDUINO UNO
* Disear, programar, conexionar y simular diferentes programas para el
funcionamiento del servo motor y del sensor de ultra sonido.

2.- PROCEDIMIENTO

MATERIALES
Los materiales que se emplearon en la prctica fueron

Una computadora personal Laptop


Un hardware Arduino Uno
Un cable interfaz entre Arduino PC
Jumpers
Un Potencimetro
Un Protoboard
Un sensor de Ultra Sonido
Un servo motor

DESARROLLO

a) ULTRA SONIDO
Realizar el siguiente programa en Arduino para la programacin del sensor de
ultra sonido.

#include <Servo.h>
Servo myservo;
int cm=0;
const int EchoPin = 5;
const int TriggerPin = 6;
const int LedPin = 13;

void setup() {
myservo.attach(9);
Serial.begin(9600);
pinMode(LedPin, OUTPUT);
pinMode(TriggerPin, OUTPUT);
Univ. Chuquimia Castillo Luis UMSA ING ELM

pinMode(EchoPin, INPUT);
}

void loop() {
int cm = ping(TriggerPin, EchoPin);
cm = map(cm, 0, 1023, 0, 180);
Serial.print("Distancia: ");
Serial.println(cm);
delay(1000);

int ping(int TriggerPin, int EchoPin)


long duration, distanceCm;

digitalWrite(TriggerPin, LOW); //para generar un pulso limpio ponemos a LOW 4us


delayMicroseconds(4);
digitalWrite(TriggerPin, HIGH); //generamos Trigger (disparo) de 10us
delayMicroseconds(10);
digitalWrite(TriggerPin, LOW);

duration = pulseIn(EchoPin, HIGH); //medimos el tiempo entre pulsos, en microsegundos

distanceCm = duration * 10 / 292/ 2; //convertimos a distancia, en cm


return distanceCm;
myservo.write(cm);
}

Una vez compilado el programa y subido al Arduino, realizar el siguiente conexionado.

Lo que nos mostrara la distancia de los objetos que cruzan su seal pulsante.
Univ. Chuquimia Castillo Luis UMSA ING ELM

b) SERVO MOTOR
Realizar los siguiente programas en Arduino para la programacin del servo
motor, el cual el primero es con conexionado directo y el segundo es con un
potencimetro que varia la velocidad del mismo.
#include <Servo.h>

Servo myservo; // create servo object to control a servo


// twelve servo objects can be created on most boards

int pos = 0; // variable to store the servo position

void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}

void loop()
{
for(pos = 0; pos <= 180; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for(pos = 180; pos>=0; pos-=1) // goes from 180 degrees to 0 degrees
{
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
Univ. Chuquimia Castillo Luis UMSA ING ELM

Servo motor regulable:


#include <Servo.h>

Servo myservo; // create servo object to control a servo

int potpin = 0; // analog pin used to connect the potentiometer


int val; // variable to read the value from the analog pin

void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}

void loop()
{
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and
1023)
val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180)
myservo.write(val); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
}
Univ. Chuquimia Castillo Luis UMSA ING ELM

c) Mando del servo Motor con Ultra sonido


Combinamos los programas anteriores para poder tener un un mando
automatizado del servo motor por el sensor de ultra sonido

#include <Servo.h> //Incluimos la libreria Servo


#include <Ultrasonic.h> //Incluimos la libreria Ultrasonico

Servo servo1; //Declaramos nuestro servo


Ultrasonic ultraso (6, 7); //Declaramos los pines del ultrasonico
int distancia; //Declaramos una constante
int pausa; //Declaramos una cosntante

void setup (){

servo1.attach(8); //Declaramos el pin de nuestro servo


Serial.begin(9600);
}

void loop()
{
distancia = ultraso.Ranging(CM); //Medimos la distancia del Ultrasonico
if (distancia < 10){ //Si la distancia es menor a 10 cm el servo se situa a 90
pausa = ultraso.Ranging(CM) *10;
servo1.write (90);
delay(1000);
}
else if (distancia >10){ //Si la distancia es mayor a 10 cm el servo se situa donde le indica la
siguiente orden del programa
servo1.write (0); //Ponemos el servo a 0
delay(1000);
}

distancia = ultraso.Ranging(CM);
if( distancia < 10){ //Si la distancia es menor a 10 cm
pausa = ultraso.Ranging(CM) *10; //Decimos que el servo se ponga a 90
servo1.write (90);
delay(1000);
}
else if (distancia >10){
servo1.write(180);
delay(1000);
}
Serial.print(" Distancia estimada: "); //Comandos para ver en pantalla la distancia al cual est el
obstaculo
Serial.print(distancia);
Serial.println(" cm");

}
Univ. Chuquimia Castillo Luis UMSA ING ELM

S-ar putea să vă placă și