You are on page 1of 8

#include <Servo.

h>
Servo motor;

int estado1 = 0, angulo = 0, estado2 = 0;

void setup()
{
Serial.begin(9600);
pinMode(7,INPUT);
pinMode(8,OUTPUT);
motor.attach(6);
}

void loop()
{
digitalWrite(8,HIGH);
estado1 = digitalRead(7);
estado2 = digitalRead(4);

if(estado1 == 1 && estado2 == 0)


{
motor.write(angulo);
angulo = angulo + 1;
restriccion();
}

if(estado1 == 0 && estado2 == 1)


{
motor.write(angulo);
angulo = angulo - 1;
restriccion();
}

if(estado1 == 0 && estado2 == 0)


{
motor.write(angulo);
}
}

void restriccion()
{
if(angulo < 1)
{
angulo = 0;
}
if(angulo>179)
{
angulo = 180;
}
}
// Mover servo de derecha a izquierda al oprimir el pulsador de cada lado

// el servo regresa automaticamente al centro (Direccion de Carro)

// Descargar el programa y plano en www.elprofegarcia.com

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

Servo servo1; // Crea el objeto servo1 con las caracteristicas de Servo

int pulsador_der = 1; // Fijamos el pulsador de la derecha en 1

int pulsador_izq = 1; // Fijamos el pulsador de la izquierda en 1

void setup()

servo1.attach(5,600,1500); // Aservo1 al pin 5, define el min y max del ancho del pulso

// eso depende del fabricante del servo

pinMode(2, INPUT); // Configuramos el pin 2 como entrada

pinMode(3, INPUT); // Configuramos el pin 3 como entrada

Serial.begin(9600);

void loop()

pulsador_der = digitalRead(2); //lee el valor del pin 2 si esta en alto o bajo

pulsador_izq = digitalRead(3); //lee el valor del pin 3 si esta en alto o bajo

Serial.println(pulsador_der);

Serial.println(pulsador_izq);

if (pulsador_der == LOW) { // si se oprimio el plsador de la derechao

servo1.write(180); // Gira el servo a 1800 grados

delay(15); // Espera 15 mili segundos a que el servo llegue a la posicion

if (pulsador_izq == LOW) { // si se oprimio el pulsador de la izquierda


servo1.write(0); // Gira el servo a 0 grados

delay(15); // Espera 12 mili segundos a que el servo llegue a la posicion

if(pulsador_izq == HIGH && pulsador_der == HIGH){ // Si se dejan de oprimir los dos


pulsadores

servo1.write(90); // Gira el servo a 90 grados

delay(15); // Espera 15 mili segundos a que el servo llegue a la


posicion

if(pulsador_izq == LOW && pulsador_der == LOW){ // Si se dejan de oprimir los dos


pulsadores

servo1.write(90); // Gira el servo a 90 grados

delay(15); // Espera 15 mili segundos a que el servo llegue a la


posicion

}
2 servos

/* Brazo robtico utilizando dos servos. Como controlar


servomotores Creado por www.web-robotica.com */

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

Servo servo_inferior; // Definimos los servos que vamos a


utilizar

Servo servo_superior;

int posicion_servo_inferior; // Estas variables definirn

int posicion_servo_superior; // las posicines de los servos en


cada momento

const int pulsador_izquierda = 2; // Definimos el nmero de pin

const int pulsador_derecha = 3; // para cada uno de los


pulsadores

const int pulsador_arriba = 4;

const int pulsador_abajo = 5;

int estado_pulsador_izquierda = 0; // Variables para leer el


estado del pulsador

int estado_pulsador_derecha = 0;

int estado_pulsador_arriba = 0;

int estado_pulsador_abajo = 0;

int incremento_de_angulo = 2; // Incremento que queremos


cada vez que pulsamos

void setup() // Comenzamos la configuracin de los pines

{
servo_inferior.attach(9) ; // Difinimos los pines de salida para
cada servo

servo_superior.attach(10);

pinMode(pulsador_izquierda, INPUT); // Difinimos los pines para


la seal de

pinMode(pulsador_derecha, INPUT); // los pulsadores como


entadas

pinMode(pulsador_arriba, INPUT);

pinMode(pulsador_abajo, INPUT);

void loop() {

estado_pulsador_izquierda = digitalRead(pulsador_izquierda); //
Leemos el estado

estado_pulsador_derecha = digitalRead(pulsador_derecha) ; //
de cada uno de los pulsadores

estado_pulsador_arriba = digitalRead(pulsador_arriba) ;

estado_pulsador_abajo = digitalRead(pulsador_abajo) ;

if (estado_pulsador_izquierda == HIGH)

// Si tenemos pulasdo el "Pulasdor izquierda"

// El servo inferior se mueve a la nueva posicin

// La nueva posicin ser la posicion actual + el incremento


angular

// Esperamos 100ms hasta una nueva seal

{
posicion_servo_inferior = posicion_servo_inferior +
incremento_de_angulo;

servo_inferior.write(posicion_servo_inferior);

delay(100);

else if (estado_pulsador_derecha == HIGH)

// Si tenemos pulasdo el "Pulasdor derecha"

// El servo inferior se mueve a la nueva posicin

// La nueva posicin ser la posicion actual - el incremento


angular

// Esperamos 100ms hasta una nueva seal

posicion_servo_inferior = posicion_servo_inferior -
incremento_de_angulo;

servo_inferior.write(posicion_servo_inferior);

delay(100);

else if (estado_pulsador_arriba == HIGH)

// Si tenemos pulasdo el "Pulasdor arriba"

// El servo superior se mueve a la nueva posicin

// La nueva posicin ser la posicion actual + el incremento


angular

// Esperamos 100ms hasta una nueva seal


{

posicion_servo_superior = posicion_servo_superior +
incremento_de_angulo;

servo_superior.write(posicion_servo_superior);

delay(100);

else if (estado_pulsador_abajo == HIGH)

// Si tenemos pulasdo el "Pulasdor abajo"

// El servo inferior se mueve a la nueva posicin

// La nueva posicin ser la posicion actual - el incremento


angular

// Esperamos 100ms hasta una nueva seal

posicion_servo_superior = posicion_servo_superior -
incremento_de_angulo;

servo_superior.write(posicion_servo_superior);

delay(100);

else {

// Si no tenemos pulasdo ningn


pulasdor

// esperamos 100ms hasta una nueva seal

delay(100);
}

You might also like