posicionamiento de un servo por puerto serie
hola todos:
soy nuevo en todo esto, adquirido recientemente una arduino mega porque me apetecía juguetear con ella, aprender un poco en cuanto la programación ya que mis conocimientos son básicos y me gustaría publicar mis primeros avances porque alguien igual le puede servir de ayuda.
bien, conseguido manejar un servo, al que enviamos el set point de la posición través del puerto serie.
#include <servo.h>
#include <servo.h>
servo myservo;
int pos = 0;
int a;
void setup() {
serial.begin(9600);
myservo.attach(9);
}
char cadena[24];
byte contador=0;
int valor = 0;
void loop(){
for(a; a<1; a++){
serial.print("introduzca posicion de servo :");
}
if(serial.available()){
memset(cadena, 0, sizeof(cadena));
while (serial.available()>0){
delay(5);
cadena[contador]=serial.read();
contador++;
}
valor=atoi(cadena);
valor = min(valor, 180); //establece valor maximo
valor = max(valor, 0); //establece valor minimo
serial.print(valor); //imprime en pantalla el valor introducido
serial.println(" grados");
myservo.write(valor); //establece el valor como posicion myservo
a=0; //reiniciamos para volver mostrar aviso para introduccion de datos
contador=0;
delay(100);
}
}
soy nuevo en todo esto, adquirido recientemente una arduino mega porque me apetecía juguetear con ella, aprender un poco en cuanto la programación ya que mis conocimientos son básicos y me gustaría publicar mis primeros avances porque alguien igual le puede servir de ayuda.
bien, conseguido manejar un servo, al que enviamos el set point de la posición través del puerto serie.
#include <servo.h>
#include <servo.h>
servo myservo;
int pos = 0;
int a;
void setup() {
serial.begin(9600);
myservo.attach(9);
}
char cadena[24];
byte contador=0;
int valor = 0;
void loop(){
for(a; a<1; a++){
serial.print("introduzca posicion de servo :");
}
if(serial.available()){
memset(cadena, 0, sizeof(cadena));
while (serial.available()>0){
delay(5);
cadena[contador]=serial.read();
contador++;
}
valor=atoi(cadena);
valor = min(valor, 180); //establece valor maximo
valor = max(valor, 0); //establece valor minimo
serial.print(valor); //imprime en pantalla el valor introducido
serial.println(" grados");
myservo.write(valor); //establece el valor como posicion myservo
a=0; //reiniciamos para volver mostrar aviso para introduccion de datos
contador=0;
delay(100);
}
}
Arduino Forum > International > Español > Proyectos (Moderators: surbyte, Hector_A) > posicionamiento de un servo por puerto serie
arduino
Comments
Post a Comment