0% encontró este documento útil (0 votos)
3 vistas8 páginas

Servo Motor Programando

El documento proporciona ejemplos de código en Arduino para controlar un servomotor, incluyendo la posición en ángulos específicos (0º, 90º, 180º) y un barrido de 0 a 180º y viceversa. Se utilizan la librería Servo.h y métodos como attach y write para manejar el servomotor. Además, se incluye un ejemplo de control del servomotor mediante un potenciómetro, donde la posición del servo se ajusta según la lectura del potenciómetro.

Cargado por

jhocenti82
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas8 páginas

Servo Motor Programando

El documento proporciona ejemplos de código en Arduino para controlar un servomotor, incluyendo la posición en ángulos específicos (0º, 90º, 180º) y un barrido de 0 a 180º y viceversa. Se utilizan la librería Servo.h y métodos como attach y write para manejar el servomotor. Además, se incluye un ejemplo de control del servomotor mediante un potenciómetro, donde la posición del servo se ajusta según la lectura del potenciómetro.

Cargado por

jhocenti82
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

l código para girar el motor de 0º a 180º

Esta acción ya nos ha hecho un include en nuestro código que nos permite controlar el servo. Os dejo a continuación un código
básico para posicionar el servo en los ángulos 0º, 90º y 180º.

1 /*

2 Creado: Luis del Valle (ldelvalleh@[Link])

3 [Link]

4 */

6 // Incluímos la librería para poder controlar el servo

7 #include <Servo.h>

9 // Declaramos la variable para controlar el servo

10 Servo servoMotor;

11

12 void setup() {

13 // Iniciamos el monitor serie para mostrar el resultado

14 [Link](9600);

15

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

17 [Link](9);

18 }

19

20 void loop() {

21

22 // Desplazamos a la posición 0º

23 [Link](0);

24 // Esperamos 1 segundo

25 delay(1000);

26

27 // Desplazamos a la posición 90º

28 [Link](90);

29 // Esperamos 1 segundo

30 delay(1000);

31

32 // Desplazamos a la posición 180º


33 [Link](180);

34 // Esperamos 1 segundo

35 delay(1000);

36 }

De la librería Servo.h hemos declarado un objeto o variable servoMotor y hacemos uso de dos métodos. Por un lado el attach, que
nos permite indicar en que pin tenemos conectado nuestro servo, y por otro lado el write, donde indicamos en qué ángulo
queremos posicionar nuestro servomotor.

Girando grado a grado el servomotor

Vamos a realizar otro ejemplo un poco más complicado, en este caso queremos que el servo haga un barrido desde el 0 al 180º y
luego en sentido contrario. Vamos a utilizar los mismos métodos pero incorporamos dos bucles for, uno para cada sentido.

1 /*

2 Creado: Luis del Valle (ldelvalleh@[Link])

3 [Link]

4 */

6 // Incluímos la librería para poder controlar el servo

7 #include <Servo.h>

9 // Declaramos la variable para controlar el servo

10 Servo servoMotor;

11

12 void setup() {

13 // Iniciamos el monitor serie para mostrar el resultado

14 [Link](9600);

15

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

17 [Link](9);

18

19 // Inicializamos al ángulo 0 el servomotor

20 [Link](0);

21 }

22

23 void loop() {

24

25 // Vamos a tener dos bucles uno para mover en sentido positivo y otro en sentido negativo

26 // Para el sentido positivo


for (int i = 0; i <= 180; i++)

// Desplazamos al ángulo correspondiente

[Link](i);

// Hacemos una pausa de 25ms

delay(25);

// Para el sentido negativo

27 for (int i = 179; i > 0; i--)

28 {

29 // Desplazamos al ángulo correspondiente

30 [Link](i);

31 // Hacemos una pausa de 25ms

32 delay(25);

33 }

34 }

35

36

37

38

39

40

41

42

43
CONTROL DE UN SERVOMOTOR POR ÁNGULO:
PARA ESTO REALIZAREMOS LAS SIGUIENTES CONEXIONES:

*La alimentación del motor puede ser la misma que el Arduino


siempre y cuando la fuente soporte la potencia del servo y sea de 5V.
Los 5V del USB solo soporta un servo SG90, más servos o de otro tipo
se necesita usar una fuente externa.
Luego de realizar las conexiones procederemos a cargar("subir") el
siguiente programa:

//LIBRARIES:
#include <Servo.h>

Servo myservo; //creamos un objeto servo


int angulo;

void setup(){
[Link](3); // asignamos el pin 3 al servo.
[Link](9600); // iniciamos el puerto serial
}

void loop() {

angulo= 0;
[Link](angulo);
[Link]("ángulo: ");
[Link](angulo);
delay(2000);

angulo= 90;
[Link](angulo);
[Link]("ángulo: ");
[Link](angulo);
delay(2000);

angulo= 180;
[Link](angulo);
[Link]("ángulo: ");
[Link](angulo);
delay(2000);

angulo= 90;
[Link](angulo);
[Link]("ángulo: ");
[Link](angulo);
delay(2000);
}

2. Control de un servomotor a través de un potenciómetro:


En este ejemplo controlaremos la posición del servo por medio de un
potenciómetro, donde el servo se posicionará en función de la
posición del potenciómetro.

#include <Servo.h>

Servo myservo; //creamos un objeto servo

void setup() {
[Link](3); // asignamos el pin 3 al servo.
[Link](9600);
}

void loop() {
int adc = analogRead(A0); // realizamos la lectura del
potenciometro
int angulo = map(adc, 0, 1023, 0, 180); // escalamos la
lectura a un valor entre 0 y 180
[Link](angulo); // enviamos el valor escalado al servo
[Link]("ángulo: ");
[Link](angulo);
delay(10);
}

Como se observa en el código, básicamente se hace la lectura del


potenciómetro y se lo escala entre valores de 0° y 180° para después
enviarlo al servomotor.

Una vez cargado el programa el servo debe moverse cada vez que
movemos le potenciómetro, y si abrimos el Monitor Serie de
Arduino IDE debería mostrar el ángulo del servomotor.
GIRANDO GRADO A GRADO NUESTRO SERVOMOTOR
SI LO QUE PRETENDEMOS ES QUE NUESTRO SERVO HAGA UN BARRIDO DESDE 0 A
180º Y VICEVERSA, PODEMOS CONSEGUIRLO UTILIZANDO DOS BUCLES FOR:

#include "Servo.h" // librería para poder controlar el servo

Servo servoMotor; // Crea un objeto servo llamado servoMotor

void setup(){

[Link](9600);

// Asociamos el servo a la patilla 2 del Arduino

[Link](2);

[Link](0); // Inicializamos al ángulo 0 el

servomotor

void loop(){

// giro de 0 a 180º

for (int i = 0; i <= 180; i++){

[Link](i);

[Link]("Angulo: ");

[Link](i);

delay(30);

// giro de 180 a 0º

for (int i = 179; i > 0; i--){

[Link](i);

[Link]("Angulo: ");
[Link](i);

delay(30);

También podría gustarte