Hola, me presento, soy Rubén, soy aeromodelista y me quiero iniciar en el mundo de la electrónica avanzada y del arduino, un miembro de otro foro me recomendó el arduino por lo flexible que es, pero necesito urgentemente un circuito que me controle unos led luxeon de 1W para que simule las luces de navegación, de posición y de aterrizaje de un avión y que pueda controlar desde la emisora. Si hay alguien tan amable y dispuesto a ayudarme y explicarme cómo hacer el circuito y programar el arduino, se lo agradecería en el alma, espero vuestras opiniones y respuestas.
Gracias de antemano. Un saludo.
Hola,
creo que nadie se va a poner a hacer tu circuito y tu programa. Este foro es para ayudar, pero el trabajo lo tiene que hacer cada uno. Cómprate un Arduino, empieza a practicar: encender un LED, mover un motorcito cuando aprietes un pulsador... Cuando pasen 6 meses, y lo hayas conseguido, podrás empezar con un módulo RF. Y cuando pase un año, a lo mejor, consigues hacer algo que se aproxime a lo te planteas.
Según yo lo veo, es el único camino que hay.
Si lo necesitas muy urgentemente, siempre puedes acordar con alguien un precio para realizar el proyecto
Yo te podría ayudar, supongo que usarias un canal auxiliar (de los de on-off) conectado al arduino, no?
Saludos.
Yo te ayudo en el código si quieres, no te voy a cobrar nada esto es una plataforma libre.
Necesito saber como se comunican.
@a9965: libre y gratis son dos cosas totalmente distintas, y una de ellas no implica ni lleva implícitamente la otra.
Por esa misma regla de 3, todos los programadores de Python, PHP, etc deberían trabajar gratis.
No está pidiendo gran cosa.Un código para encender un juego de leds no es nada.
Vamos, yo no le cobraría a nadie por eso, otra cosa es que te pida un código difícil y costoso.
Parece que también necesita el driver de los leds también, pero bueno, que sólo era una opción, yo no tengo ni idea de emisoras así que tampoco es que fuera a cogerlo.
Hola de nevo a todos, lamento no haber podido contestar antes pero tuve estos días un poco liados, en un principio lo asignaría a un canal controlado por un interruptor de 3 posiciones, la primera todo apagado, la segunda las luces de posición y navegación encendidas y en la tercera posición también se encienden las de aterrizaje.
Pido ayuda porque ami nadie me enseñó cómo se diseña un circuito, lo único que me han enseñado es la ley de ohm, cómo soldar, y lo que son las resistencias, condensadores, diodos... en definitiva, estoy aprendiendo a las bravas. Desde que empecé en el aeromodelismo estoy tratando de construir yo las placas que puedo y tratando de averiguar el porqué de una cosa o de otra. Además estoy acabando un avión con un amigo y necesito este circuito para poder controlar los led que tengo para instalar.
Si alguien tiene alguna sugerencia estoy abierto a cualquier comentario.
Pero eso no consiste en decir:"asignar un canal a la emisora que tenga un conmutador". Bajo mi punto de vista eso es un poco complicado, además yo no tocaría algo hecho ya. ¿Que haría yo? Un par de arduinos con un módulo de RF bidireccional. Con esto consigues hacer un módulo para tu avión, con muchas más posibilidades que control de luces (temperatura,presión,batería...), es decir, harías lo que quisieras.
Ya me dices algo. un saludo
cambia el titulo del post a algo mas indicativo de lo que contiene. la mayoría de los post son pidiendo ayuda y si todos pusiésemos "necesito ayuda" el foro seria un caos.
Hola, pido perdón por el título del post, voy a ver cómo puedo cambiarlo. encuanto al circuito, no me quería complicar tanto teniendo que hacer un emisor y un receptor, estoy deacuerdo en que sería mucho más útil, pero sólo necesito que me controle las luces. Hace algo de tiempo, el que me había recomendado el arduino para este proyecto hizo un proyecto para controlar un motor eléctrico desde la emisora con un interruptor de 3 posiciones, creo que el programa tendría que ser igual o casi y sólo habría que cambiar las líneas de programación que controlan las salidas, pero eso es lo que yo entiendo, no sé si será así, os dejo la programación que hizo para el otro proyecto y así podéis hecharle un vistazo.
#define led 3
#define emisora 6
#define motor 10
#define servo 5
#define intensidad 0
#define tension 5
int pulso = 1500;
boolean corriente_max = false;
int corriente=0;
int voltage =0;
boolean paso = false;
boolean paso1 = false;
unsigned long tiempo2=0;
int ancho = 1500;
unsigned long tiempo=0;
unsigned long tiempo1=0;
boolean senal=false;
void setup()
{
pinMode(servo,OUTPUT);
pinMode(emisora,INPUT);
pinMode(led, OUTPUT);
pinMode(motor,OUTPUT);
}
void loop()
{
// Zona programación control servo
if((millis() >= (tiempo + 20)) && (senal == false))
{
digitalWrite(servo,HIGH);
tiempo1 = micros();
tiempo = millis();
senal = true;
}
if((micros() >= (tiempo1 + ancho)) && (senal==true))
{
digitalWrite(servo,LOW);
senal = false;
}
// Fin zona programacion servo.
digitalWrite(led,HIGH);
if ((millis() >= tiempo2 + 300) && senal == false)
{
tiempo2 = millis();
pulso = pulseIn(emisora,HIGH); //leo la señal de la emisora cada medio segundo
}
corriente = analogRead(intensidad); //leo la corriente
if (corriente > 800){corriente_max = true;} //Si la intensidad sobrepasa los 2A activo el flag corriente_max 500
voltage = analogRead(tension); //leo la tensión de la bateria
if (pulso < 1350 && pulso > 800) //Si el stick esta al minimo 1000us
{
motor_off(); //apago el motor
ancho = 900; //mando al servo al extremo
}
if (pulso > 1350 && pulso < 1785) //Si el stick esta a mitad 1500us
{
motor_off(); //apago el motor
ancho = 1000; //mando al servo al centro
}
if (pulso > 1785 && pulso < 2200) // Si el stick esta al maximo 2000us
{
motor_on(); //enciendo el motor
ancho = 1000; //mando al servo al centro
}
microsreset();
}
void motor_on() //rutina de encendido
{
if (corriente_max == true) //si la corriente ha llegado al limite
{
motor_bloq(); //bloqueo el motor
}
else if (corriente_max == false && paso == false) //si la corriente es normal, y aun no he arrancado el motor
{
for (int x=0;x<255;x++) //arranco el motor de forma suave
{
analogWrite(motor,x);
delay(5);
paso = true;
}
}
}
void motor_off() //rutina de apagado de motor
{
analogWrite(motor,0);
corriente_max = false;
paso=false;
paso1=false;
}
void motor_bloq() //rutina de bloqueo de motor
{
if(paso1 == false) //si no he apagado el motor previamente
{
for (int x=255;x>10;x--) //lo apago de forma suave
{
analogWrite(motor,x);
delay(5);
paso1 = true;
}
}
analogWrite (motor,5); //y lo dejo un poco forzado para que no gire en sentido opuesto
}
boolean pasamitad = false;
void microsreset()
{
if(micros()>=2294967295 && pasamitad==false)
{
pasamitad=true;
}
if(micros()<=100 && pasamitad==true)
{
pasamitad=false;
tiempo1 = 0;
}
}
Pero hizo inalámbrico?
Ese circuito está conectado al receptor de la emisora con un cable igual al de los servos.
El código está claro, pero no se como hace para entenderse con la emisora.Veo que tiene algo que es de tipo INPUT, pero no se como se comunica. Podrías preguntarle y luego decirnos.
El correspondiente canal de la emisora, en el receptor, el cable que llevarías al servo es el que tienes que llevar a la entrada de Arduino, según el código a la entrada digital 6.
Para que te podamos ayudar, estaría bien que nos pusieses el circuito que usas. Puedes usar el Fritzing que es gratuito y muy fácil de usar. Del canal que quieres leer con arduino, necesitas leer señal y masa, para tener la referencia 0.
Por otra parte pondría unos comentarios más claros. Si son leds que lo que quieres usar, no pongas motor.
Pido perdón si os he liado un poco, la programación es un ejemplo que puse de un circuito que está conectado y sontrolado con un receptor de radiocontrol. Lo que necesito es un circuito que me controle sólo unos led luxeon que imiten las luces de navegación y aterrizaje de un avión, sin nada más.
encuanto tenga un momento miro lo de la señal y lo pongo, ahora me tengo que ir.
Lo que quieres hacer está claro. Yo ya te dije una solución, pero no es lo que buscabas. Llegado este punto lo que debes de hacer es lo que dice nayma, pero de todas maneras lo veo chungo, porque no creo que sea conveniente modificar una emisora ya hecho. Sigo en mi empeño de hacer un módulo RF independiente que te pueda servir de mucho más.
Yo creo que podrias conectar el cable de señal del servo del canal que quieres usar para el control de las luces a una entrada del arduino y usar la libreria Servo para leer la posición en la que esta el interruptor y a partir de ahi controlar las luces.
Saludos