Arduino Forum

International => Español => Software => Topic started by: 07MenaJesus on May 07, 2019, 12:27 am

Title: Mover servo por grados con teclado matricial
Post by: 07MenaJesus on May 07, 2019, 12:27 am
Buenos días/tardes/noches.
Necesito saber como controlar un servomotor por grados con un teclado matricial, de modo que por ejemplo.  
Si presiono 0, que esté en 0 grados, o de no estarlo, que vaya a ésa posición.
Si presiono 1: que gire hasta los 50°
Si presiono 2 que gire hasta 100°
....
Si presiono 8, que gire hasta los 300 grados.
Y si presiono 9, que gire hasta los 359°.
Y si estando en los 359° presiono él 2 del teclado, que regrese hasta los 100° y así.
Es para hacer un ascensor para una maqueta de una torre.
Haganme saber si no fui muy claro.
Gracias por su atención.
Title: Re: Mover servo por grados con teclado matricial
Post by: surbyte on May 07, 2019, 01:08 am
Mi estiamado amigo, el IDE viene con una librería Servo.

Si pones en google: arduino Servo encontrarás muchos tutoriales.

Practicamente nos pides que hagamos tu trabajo. Asi que como creo que no has leído las normas del foro, porque no lo haces, compartes el código, lees los tutoriales y luego nos pasas tus dudas.

Arduino servo en google me dio una primer respuesta como esta

https://programarfacil.com/tutoriales/fragmentos/servomotor-con-arduino/ (https://programarfacil.com/tutoriales/fragmentos/servomotor-con-arduino/)

Algo que hubiera evitado tu consulta.
Que dice el tutorial?

Quote
Lo primero, el ángulo de giro, en este caso nos permite hacer un barrido entre -90º y 90º. Lo que viene a ser un ángulo de giro de 180º.
O sea que el servo se mueve en grados.

Sigue

Quote
El 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º.
Code: [Select]
/*
  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);
}



Entonces como vés tienes la respuesta a tu consulta.

Si quiers presionar 1,2,3, y que vaya a 0, 50, 100, etc.. solo un poco de matemáticas resuelve el problema, no te parece?

Ahhh falta como le pones 1,2,3 y responde. PUes estudia como usar el Monitor serie con Arduino.
Algo que tambien viene en el IDE.