Servo a varias posiciones a rf

Hola a todo el Mundo. Hace dias que estoy investigando por la red para encontrar la solucion a mi problema pero no consigo dar con ello. A ver si alguien puede ayudarme. Necesito controlar un servo a distancia mediante un receptor a radiofrecuencia. Este emisor actua como un interruptor o pulsador segun se configure. O sea q al caso seria un pulsador cerrado/abierto. La idea es que cada vez q se pulse el boton del mando ( q es de un solo canal como ya he comentado) se mueva el servo hacia donde yo quiera. Cuando se vuelva a pulsar se mueva a otros grados. Asi hasta 5 veces. Es posible hacerlo con programacion? He visto q hay receptores con varios canales o señales que se conectan a los varioa pina de arduino pero por el momento me interesa hacerlo de la manera q os he comentado. Como si fuera un pulsador. Agradeceria mucho la ayuda.

Primero determina la distancia entre el servo y el elemento de control. Los módulos de RF suelen tener problemas de todo tipo y no son muy recomendables. Yo no los he usado y poco puedo decir mas que lo que he leído en el foro. Te recomiendo por ello el módulo nRF24L01 (RF 2.6Ghz), un ESP8266 (WIFI), si no hay mucha distancia podria ser tambien un enlace Bluetooth.

Yo los he usado muy a menudo para servos pero no he necesitado arduino para programarloa ya que no lo necesitaban y el resultado siempre ha sido bueno. Lo que necesito saber si es posible hacer la programacion.

Por supuesto que se puede hacer. Lo que pides es simple (al menos para muchos de este foro, incluyéndome) pero la idea es que lo hagas tu y preguntes dudas.

Posible código: 1 pulsación lo mueve a 180 grados 2da pulsación lo mueve a los grados que desees en la secuencia que desees. Comienza con el ejemplo de la librería Servo, disponible en tu IDE. Tambien mira como usar un pulsador y comandar diferentes órdenes.

Genial! Sabiendo q es posible con un solo pulsador mandar al servo a varias posiciones cada vez que se pulse tengo mas q suficiente para ponerme a ello. Seguramente me surgiran dudas y ya las ire posteando. Muchisimas gracias

Con un pulsador puedes hacer esto: *Alternativa 1 * cada vez que pulsas cambias el estado de una variable y esa variable controla la acción de moverlo a una posición u otra o moverlo a la posición deseada inicial y luego que cumpla una secuencia dada.

*Alternativa 2 * cada vez que pulsas incrementas un contador y este contador controla la secuencia de movimientos, usando un switch-case

Por eso te comentaba que a nivel programación no tienes casi restricciones para tu objetivo.

Gracias surbyte. En breve explico mis experiencias para otros usuarios ya que poco he visto en español sobre esto. Ire colgando codigos

En este enlace te dejo algo que leí como mando a distancia por RF 433 MHz. Posible otra alternativa.

Saludos.

Gracias light!

A depensas de que me llegue mi arduino nano para probar el codigo, este es un posible codigo. Que os parece?

#define BUTTON 2

#include <Servo.h>

Servo myservo;

int val;
int old_val=0;
int state=0;
int x;
void setup()
{
myservo.attach(9);
pinMode(x,OUTPUT);
pinMode(BUTTON,INPUT);

myservo.write(90); //ready
delay(550);;
}
void loop()
{
val=digitalRead(BUTTON);
if((val==HIGH)&&(old_val==LOW))
{
state++;
delay(10);
if(state>4) //
{
state=1;
delay(10);
}
}
old_val=val;
if(state==1)
{
myservo.write(10);
delay(150);
}
else if(state==2)
{
myservo.write(45); //Move o servo
}
else if(state==3)
{
myservo.write(90);
delay(150);
}
else if(state==4)
{
myservo.write(155);
delay(150);
}
}

Saludos a todos este es mi primer post en este forum, Jordanbosco, ojala mi opinion aunque un poco tirada por los pelos te sirva de ayuda, veo que haces una referencia a una variable old_val supongo lo usas para controlar el estado del boton al cual haces referencia en tu primera entrada, yo en lo personal trato de optimizar siempre el codigo, ahora bien si tu pulsador es un emisor RF de 1 solo boton y el receptor es un aparato preconstruido, imagino que con una salida de rele deberias, colocar en la puerto de entrada de tu arduino una resistencia PULL UP o PULL DOWN dependiendo de como quieras esto te elimina la necesidad de usar una variable para leer el estado UP o DOWN de la pata ya que siempre va a estar en un Nivel u otro, normalmente se colocan este tipo de resistencia para evitar estados de alta impedancia o indeterminados en las patas que uses como entrada del arduino. Claro esta no es la unica manera y muchas formas de hacerlo.

Por otro lado si tu emisor es comun control como los de apertura de cochera, alarma de vehiculo entre otros y quiere hacer algo que te ponga a prueba y te ayude a elevar tus conocimientos y ego, usa un modulo receptor de rf es sumamente sencillo poner a funcionar esos comunes transmisores a estos modulos solo ve bien si van en la misma frecuencia normalmente trabajan en 315mhz y 433mhz, no todos pueden ser decodificados con arduino pero la mayoria si y estan sencillo como capturar el codigo del control y en el mas sencillo del casos lo compraras en un if y ya.

Ojala aunque largo esto te ayude, cualquier cosa estamos por aca. saludos,

Gracias ejgraterol. Informo en breve