Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Servo

Descargar como txt, pdf o txt
Descargar como txt, pdf o txt
Está en la página 1de 3

'************************************************************************

'******************* Ideas & Tecnologia


**************************
'******************* M�dulo Entrenamiento I&T 04 *************************
'******************* www.ideastechnology.com *************************
'
' * Nombre proyecto: Control servo motor
'
' * Descripcion:
' El proyecto se basa en el control de giro de un servo mediante la botonera
RE3
' es decir si presionamos la botonera el servo girara a 0 grados y si no
presinamos.
' la botonera el servo gira a 180 grados
'* Configuraciones:
' Microcontrolador: PIC16F886
' Oscillator: INT_RC_OSC_NOCLKOUT, 4MHz
' Compilador: mikroBasic Pro for PC 3.2
'*************************************************************************
program SERVO
SYMBOL BOTON=PORTE.3
main:
OSCCON=0X65 'oscilador interno de 4 MHZ
'Declaracion de Puertos
' Registro PUERTO B
TRISB = 0X00 ' PORTB salidas
PORTB = 0X00
' Registro PUERTO C
TRISC = 0X00 ' PORTC salidas
PORTC = 0X00
' Registro PUERTO E
TRISE = 0X08 ' PORTE.3 entrada digital
PORTE = 0X00
' Seleccion de registro analogico. 1 analogico, 0 digitales
ANSEL = 0X00 ' AN<7:0>
ANSELH = 0X00 ' AN<13:8>
while (1)
if BOTON=0 THEN 'PREGUNTA POR LA BOTONERA SI HA SIDO PRESIONADA
GOTO DERECHA 'DE SER CIERTO VA A LA ETIQUETA DERECHA
else GOTO IZQUIERDA 'O SINO SE VA A LA ETIQUETA IZQUIERDA
end if
WEND
DERECHA:
WHILE(1)
PORTC.0=1 'ENVIA UN PULSO
Delay_us(1000) 'RETARDO 1000uS
PORTC.0=0 'SE PRESENTA UN NIVEL BAJO
Delay_us(1100) 'RETARDO DE 1100 uS
Delay_ms(18) 'RETARDO DE 18mS
if PORTE.3=1 THEN 'PREGUNTA POR LA BOTONERA SI SE HA DEJADO DE PRESIONAR
GOTO IZQUIERDA 'DE SER VERDAD VA A LA ETIQUETA IZQUIERDA
END IF
WEND
IZQUIERDA:
WHILE(1)
PORTC.0=1 'ENVIA UN PULSO
Delay_us(2000) 'RETARDO 2000uS
PORTC.0=0 'SE PRESENTA UN NIVEL BAJO
Delay_us(100) 'RETARDO DE 100 uS
Delay_ms(18) 'RETARDO DE 18mS
if PORTE.3=0 THEN 'PREGUNTA SI LA BOTONERA HA SIDO PRESIONADA
GOTO DERECHA 'DE SER VERDAD VA A LA ETIQUETA DERECHA
END IF
WEND
END.

***********************************************************************************
******
/* Sweep
by BARRAGAN <http://barraganstudio.com>
This example code is in the public domain.

modified 8 Nov 2013


by Scott Fitzgerald
http://www.arduino.cc/en/Tutorial/Sweep
*/

#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
}
}

***********************************************************************************
*********

/*
Creado: Luis del Valle (ldelvalleh@programarfacil.com)
https://programarfacil.com
*/

// Inclu�mos la librer�a para poder controlar el servo


#include <Servo.h>

// Declaramos la variable para controlar el servo


Servo servoMotor;
void setup() {
// Iniciamos el monitor serie para mostrar el resultado
Serial.begin(9600);

// Iniciamos el servo para que empiece a trabajar con el pin 9


servoMotor.attach(9);
}

void loop() {

// Desplazamos a la posici�n 0�
servoMotor.write(0);
// Esperamos 1 segundo
delay(1000);

// Desplazamos a la posici�n 90�


servoMotor.write(90);
// Esperamos 1 segundo
delay(1000);

// Desplazamos a la posici�n 180�


servoMotor.write(180);
// Esperamos 1 segundo
delay(1000);
}

También podría gustarte