elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica
| | |-+  Como programo esto en arduino?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como programo esto en arduino?  (Leído 5,490 veces)
JCRb

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Como programo esto en arduino?
« 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.


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Como programo esto en arduino?
« Respuesta #1 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


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 Desconectado

Mensajes: 23


Ver Perfil
Re: Como programo esto en arduino?
« Respuesta #2 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>

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Como programo esto en arduino?
« Respuesta #3 en: 1 Diciembre 2014, 18:42 pm »

Código
  1. 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 Desconectado

Mensajes: 23


Ver Perfil
Re: Como programo esto en arduino?
« Respuesta #4 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.
« Última modificación: 1 Diciembre 2014, 19:23 pm por JCRb » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Como programo esto en arduino?
« Respuesta #5 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
  1. 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 Desconectado

Mensajes: 23


Ver Perfil
Re: Como programo esto en arduino?
« Respuesta #6 en: 2 Diciembre 2014, 10:07 am »

Ok gracias. Lo intetaré a ver si funciona.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines