Autor
|
Tema: Como programo esto en arduino? (Leído 5,798 veces)
|
JCRb
Desconectado
Mensajes: 23
|
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.
|
|
|
En línea
|
|
|
|
engel lex
|
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
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
JCRb
Desconectado
Mensajes: 23
|
Para interconectarlos utilizare un modulo bluetooth HC-06. Mira, aqui dejo el codigo que utilizo para mover un servo con un potenciómetro: #include <Servo.h>
Servo s1;
void setup(){ s1.attach(3); }
void loop(){ int val = analogRead(1);
val = map(val,0,1023,0,179); s1.write(val); } 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.
|
|
|
En línea
|
|
|
|
engel lex
|
val = map(val,0,1023,0,179);
“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
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
JCRb
Desconectado
Mensajes: 23
|
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.
|
|
« Última modificación: 1 Diciembre 2014, 19:23 pm por JCRb »
|
En línea
|
|
|
|
engel lex
|
Usa siempre las etiquetas GeSHi o de codigo para publicar codigo (arduino es C) Con val++ incrementas 1, no es necesario el 1 alli val =(val++)%180
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
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
JCRb
Desconectado
Mensajes: 23
|
Ok gracias. Lo intetaré a ver si funciona.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Como programo y/o leo un microcontrolador motorola de 44 pines, 68HC70SC9ACFN
Electrónica
|
wolf_then
|
1
|
2,817
|
1 Febrero 2005, 07:41 am
por cracking
|
|
|
¿Cómo programo un datagrid sin datasource?
Programación Visual Basic
|
alvaroguillen
|
0
|
2,240
|
24 Mayo 2009, 23:10 pm
por alvaroguillen
|
|
|
como programo PIC16F84A con PICKIT2?
Electrónica
|
Lalooh
|
8
|
21,490
|
31 Diciembre 2011, 00:18 am
por skapunky
|
|
|
No se como reproducir sonidos en la cpu con arduino.
Electrónica
|
LaRazonQueTeDemora
|
3
|
5,851
|
10 Agosto 2013, 03:45 am
por engel lex
|
|
|
¿Cómo programo una luz expandiéndose?
Programación General
|
Tachikomaia
|
0
|
2,060
|
17 Octubre 2023, 09:40 am
por Tachikomaia
|
|