Título: Como programo esto en arduino? Publicado por: JCRb en 1 Diciembre 2014, 15:01 pm Buenas, estoy haciendo un proyecto que es un brazo robótico con arduino.
Quiero poder controlar los servos del brazo con una app desde android y para ello he hecho una secilla app con el app inventor a modo de mando de consola. La cosa es que se programar los servos para que giren con un potenciometro o que giren ciertos grados cada cierto tiempo etc. Lo que no se es como hacer que giren indefinidamente para un lado mientras esté pulsado un botón y que paren cuando suelte el botón. Podriais ayudarme? Gracias. Título: Re: Como programo esto en arduino? Publicado por: engel lex en 1 Diciembre 2014, 16:57 pm Primero, si quieres controlarlo con una app desde arduino necesitaras un medio para interconectarlos, ya sea usb, wifi(con su respectivo shield) o una pc conectada al arduino
Para que giren indefinidamente con un while deberia bastar Coloca la sección de codigo que no sabes modificar y te podemos explicar Título: Re: Como programo esto en arduino? Publicado por: JCRb en 1 Diciembre 2014, 18:19 pm Para interconectarlos utilizare un modulo bluetooth HC-06.
Mira, aqui dejo el codigo que utilizo para mover un servo con un potenciómetro: Código: #include <Servo.h> Si uso el while que comando debo poner para que gire indefinidamente hacia un lado? O sea, while aprieto un boton ---> servo.write(LoQueSeaParaQueGireIndefinidamente) En el servo.write() si pongo un numero solo girará esos grados. Gracias. Título: Re: Como programo esto en arduino? Publicado por: engel lex en 1 Diciembre 2014, 18:42 pm Código “map" es una regla de tres Entonces sabemos que tus valores del servo deben estar entre 0 y 179 (no se si gira hasta 360 te queda a ti averiguar) Seria hacer una variable externa al while y el while es mientras el boton este presionado Cada ciclo la variable crece en uno y si llega a 180 vuelve a 0 y ese valor es el que va al write Título: Re: Como programo esto en arduino? Publicado por: JCRb en 1 Diciembre 2014, 19:12 pm Pero como hago que vaya creciendo el uno mientras lo mantengo pulsado?
Escribo los comandos de manera chapucera porque aun no me los se en arduino, pero para que me entiendas: void setup(){ int val = 0; servo.write(Val); } void loop{ while "boton pulsado" servo.write(val ++ 1); } Algo así? Gracias. Título: Re: Como programo esto en arduino? Publicado por: engel lex en 1 Diciembre 2014, 19:24 pm Usa siempre las etiquetas GeSHi o de codigo para publicar codigo (arduino es C)
Con val++ incrementas 1, no es necesario el 1 alli Código
El % es 'modulo', su resultado es el resto de la division.... es una operacion muy usada por el asunto de los ciclos, te recomiendo aprendas sobre ella Por otro lado lo hago por asignacion para que no se desborde la variable... lo otro es que, no se si el servo.write es bloqueante, asi que recomiendo que si no lo es uses un timer para controlar la velocidad Título: Re: Como programo esto en arduino? Publicado por: JCRb en 2 Diciembre 2014, 10:07 am Ok gracias. Lo intetaré a ver si funciona.
|