Ardu uno & mini pro RX specktrum

Bonjour,

Explication de mon projet.Je pratique le modelisme depuis quelques années. Le drone est a la mode ;).
Dans mon club on voudrait s'amuser a tirer des fusée pyrotechnique sur des ballons pour s'amuser ...

pour cela j'ai creer un petit programme qui semble bien marche sur mon arduino uno.
par contre sur le mini pro y a un gros pb de lecture du signal radio

sur uno j'ai bien des valeurs comprisent entre <1500> pour ma variable radio
sur le mini pro >10000

j'utilise le meme programme pour le mini et l'uno
avez vous une idee j'ai essayer d'augmenter le debit serial mais ca ne vient pas de la

mon programme si dessous

//Mise a feu fusee depuis interrupteur DX18
int pause = 250; //pause
int cpt =0;
int etat = true;

int radio; // signal radio

int fuse1 = 3; // sortie
int fuse2 = 4; // sortie
int fuse3 = 5; // sortie
int fuse4 = 6; // sortie
int fuse5 = 7; // sortie
int fuse6 = 8; // sortie
int fuse7 = 9; // sortie
int fuse8 = 10; // sortie

void setup() {

pinMode(2, INPUT); // signal RX.

digitalWrite(fuse1, HIGH);
pinMode(fuse1, OUTPUT);
pinMode(fuse2, OUTPUT);
digitalWrite(fuse2, HIGH);
pinMode(fuse3, OUTPUT);
digitalWrite(fuse3, HIGH);
pinMode(fuse4, OUTPUT);
digitalWrite(fuse4, HIGH);
pinMode(fuse5, OUTPUT);
digitalWrite(fuse5, HIGH);
pinMode(fuse6, OUTPUT);
digitalWrite(fuse6, HIGH);
pinMode(fuse7, OUTPUT);
digitalWrite(fuse7, HIGH);
pinMode(fuse8, OUTPUT);
digitalWrite(fuse8, HIGH);

Serial.begin(9600); // connexion serie

}
void loop() {
delay(100);
radio = pulseIn(2, HIGH,25000);
Serial.println(radio);
Serial.println(cpt);

//course haute interrupteur radio
if(radio>1500 && etat==true ){
etat = false;
MISE_A_FEU (cpt);
cpt++;
}
//course basse interrupteur radio
if(radio<1500){
etat = true;
}

if(cpt>8)
{
cpt=0;
}

}

void MISE_A_FEU(int cpt){
digitalWrite(fuse1 + cpt, LOW); // active relais
delay(pause);
digitalWrite(fuse1 + cpt, HIGH); // ferme relais

}

Salut,

En soi dans le code je ne vois rien qui peut expliquer ton problème. Quelques remarques cependant :

  • pense à utiliser les balise code pour poster du code, plus facile à lire et ça évite de se retrouver avec des smileys :wink:
  • pourquoi déclarer tous les pin pour ensuite faire :
digitalWrite(fuse1 + cpt, LOW);

Autant faire un tableau et le parcourir :

int fuse[] = {3,4,5,6,7,8,9,10};

puis

  digitalWrite(fuse[cpt], LOW); // active relais
  delay(pause);             
  digitalWrite(fuse[cpt], HIGH); // ferme relais

En plus à n'initialisation ça fait beaucoup plus court :

for(int i=0;i<8;i++) {
pinMode(fuse[i], OUTPUT);
digitalWrite(fuse[i], HIGH);
}

Est-ce que t'es sûr que ton hardware est bon ? Branché au bon pin ?

Merci pour la simplification :wink:

je pense avoir trouve!
mon accus de reception etait limite en tension, j'ai brance mon recepteur sur la pin 5v du mini pro plus de soucis.
l'etat haut n'etait pas a la bonne tension je pense ?

c'est dangereux qd meme ! manquerait plus que ca que mes fusees partent toutes seules ;).

avez vous une astuce ?

merci
laurent

Ah bin il faut tout prendre en compte ... Quelle conso le récepteur ? Quelle tension d'alimentation nominale ?

merci
effectivement je ne veux pas de bricolage, pour l'astuce = solution

laurent

j'ai trouve la solution si accus separe.
il faut que la masse soit commune.

laurent