• Bonsoir, je me rends juste compte que les notifications des nouveaux messages étaient limitées aux membres actifs dans les 30 derniers jours. Donc, j'ai supprimé cette option. En espérant que vous aurez bien les notifications attendues. Merci pour votre patience. Yves

télécommande une voie/arduino

AVMD76

Nouveau membre
bonjour
je voudrais réaliser une télécommande une voie à partir d'une arduino nano, et d'un module émission comme celui ci http://www.hobbyking.com/hobbyking/...Compatible_2_4GHz_DIY_Transmitter_Module.html

le but est de connecter juste un inter 2 positions sur l aduino pour commander un servo pour ouvrir une trappe.

est ce que je peux partir de ce code ?
http://code.google.com/p/generate-ppm-signal/

suis débutant et n'est jamais pratiqué l ardunio, mais je pense que c'est assez simple

j'ai trouvé un autre lien qui correspond bien au projet mais du coup trop complet, si quelqu'un pouvait m’aiguiller pour épurer le code et juste garder une voie avec un inter ça serait top
http://www.modelflying.co.uk/forums/postings.asp?th=97589&p=1

merci du petit coup de main
 
Salut,
si tu présentais un peu ton projet et ce que tu veux faire, ca pourrait motiver les troupes...
mais a 1ere vue si tu utile le code que tu cite pour générer le signal PPM que tu injecte dans le module Orange de HK ça devrait le faire? Qu'est ce qui te manque?
 
merci de ta réponse, j'ai reçu le module orange hier, effectivement lorsque j'injecte le code du premier lien, ca fonctionne, enfin le code à pour but de générer une séquence qui fait que le servo balaye de droite à gauche en permanence. c'est déja un bon début. La com entre la nano et le module orange/ récepteur fonctionne.
La ou je galère comme je suis pas expert du tout en programmation c'est de modifier ce code pour qu'il m envoie juste 2 positions du servo (ouvert/fermé) en fonction de la position d'un inter câblé sur la nano

voici le code :
//this programm will put out a PPM signal

//////////////////////CONFIGURATION///////////////////////////////
#define chanel_number 8 //set the number of chanels
#define default_servo_value 1500 //set the default servo value
#define PPM_FrLen 22500 //set the PPM frame length in microseconds (1ms = 1000µs)
#define PPM_PulseLen 300 //set the pulse length
#define onState 1 //set polarity of the pulses: 1 is positive, 0 is negative
#define sigPin 10 //set PPM signal output pin on the arduino
//////////////////////////////////////////////////////////////////


/*this array holds the servo values for the ppm signal
change theese values in your code (usually servo values move between 1000 and 2000)*/
int ppm[chanel_number];

void setup(){
//initiallize default ppm values
for(int i=0; i<chanel_number; i++){
ppm= default_servo_value;
}

pinMode(sigPin, OUTPUT);
digitalWrite(sigPin, !onState); //set the PPM signal pin to the default state (off)

cli();
TCCR1A = 0; // set entire TCCR1 register to 0
TCCR1B = 0;

OCR1A = 100; // compare match register, change this
TCCR1B |= (1 << WGM12); // turn on CTC mode
TCCR1B |= (1 << CS11); // 8 prescaler: 0,5 microseconds at 16mhz
TIMSK1 |= (1 << OCIE1A); // enable timer compare interrupt
sei();
}

void loop(){
//put main code here
static int val = 1;

ppm[0] = ppm[0] + val;
if(ppm[0] >= 2000){ val = -1; }
if(ppm[0] <= 1000){ val = 1; }
delay(10);
}

ISR(TIMER1_COMPA_vect){ //leave this alone
static boolean state = true;

TCNT1 = 0;

if(state) { //start pulse
digitalWrite(sigPin, onState);
OCR1A = PPM_PulseLen * 2;
state = false;
}
else{ //end pulse and calculate when to start the next pulse
static byte cur_chan_numb;
static unsigned int calc_rest;

digitalWrite(sigPin, !onState);
state = true;

if(cur_chan_numb >= chanel_number){
cur_chan_numb = 0;
calc_rest = calc_rest + PPM_PulseLen;//
OCR1A = (PPM_FrLen - calc_rest) * 2;
calc_rest = 0;
}
else{
OCR1A = (ppm[cur_chan_numb] - PPM_PulseLen) * 2;
calc_rest = calc_rest + ppm[cur_chan_numb];
cur_chan_numb++;
}
}
}




J'ai trouvé une librairie dédiée pour faire ça avec les fonctions découpées, mais elle me génère pleins d'erreurs à la compil et la ca dépasse mes compétences encore une fois de débutant.
http://sourceforge.net/projects/arduinorclib/
 
Salut AVMD76

AOL06;2463845 à dit:
si tu présentais un peu ton projet et ce que tu veux faire, ça pourrait motiver les troupes...
.....

Quand on te demande de présenter ton projet, c'est ce que tu veux faire exactement, notre étonnement venant du fait qu'à l'époque ou on trouve facilement des radio à 8 voies pour une 50taine d'euro, on voit pas bien pourquoi tu t'emmerdes avec un système 1 voies, pour quoi faire.

Bon, tu as surement un bonne raison, c'est celle la qu'on aimerai savoir, voir si il n'y a pas une solution plus simple.

A+

PS la raison peut être: je veux découvrir le monde de l'Arduino, là on comprendrait mieux.
 
Haut