Diversity DIY

Modérateur : Dehas

Avatar du membre
TiTTaN
Octocopter
Messages : 634
Enregistré le : ven. 2 janv. 2015 12:00
Réputation : 0
Localisation : DAX
Genre :

Re: Diversity DIY

Message non lu par TiTTaN »

C est des led classiques couplé à des résistances qui été sur un circuit 5v


TBS Discovery-=-RD210-=-QAV250 Low Racer-=-GERPC Mark4 HD5-=-Taranis X9D+ 2019-=- Google DJI Digital FPV
Avatar du membre
Vincent81
Quadricopter
Messages : 196
Enregistré le : dim. 30 nov. 2014 12:31
Réputation : 0
Localisation : Puylaurens, Tarn, France
Contact :

Re: Diversity DIY

Message non lu par Vincent81 »

OK, alors pas de problème, vérifie que l'arduino peut les piloter au niveau courant de sortie.
Tu peux aussi, les piloter en inverse, tu met le "+" de la led au plus et le "-" sur la sortie arduino, les sortie numérique passe toujours plus de courant dans ce sens. Il faut bien sur inverser dans le soft.


Avatar du membre
TiTTaN
Octocopter
Messages : 634
Enregistré le : ven. 2 janv. 2015 12:00
Réputation : 0
Localisation : DAX
Genre :

Re: Diversity DIY

Message non lu par TiTTaN »

bruno a écrit :Donc si c'est pas utilisé retiré les appel à la 9.

Et dans le setup tu mets tous les input et output pour le lecteur c'est mieux.

Désolé, j essaye me faire ca, mais je pense pas faire ce qu'il faut. :/

j'ai des erreurs de compil lorsque je le passe dans le soft arduino

Peux tu me mettre le code au propre mon cher bruno car la je patine grave. ca serait super :amen: :amen: :amen:


TBS Discovery-=-RD210-=-QAV250 Low Racer-=-GERPC Mark4 HD5-=-Taranis X9D+ 2019-=- Google DJI Digital FPV
Avatar du membre
bruno
Pilote toutes catégories
Messages : 1820
Enregistré le : mar. 15 avr. 2014 11:39
Réputation : 1
Localisation : Créteil (94)

Re: Diversity DIY

Message non lu par bruno »

Bonjour,
Dans ton setup tu y place:

Code : Tout sélectionner

void setup() {
   // définition de la PIN 13 & 14 en OUTPUT
   pinMode(Led_RX1, OUTPUT);
   pinMode(Led_RX2, OUTPUT);

   pinMode(PinHelix, INPUT);
   pinMode(PinDipole, INPUT);
 }
en y ajoutant tes autres INPUT et OUTPUT tous simplement.


Avatar du membre
TiTTaN
Octocopter
Messages : 634
Enregistré le : ven. 2 janv. 2015 12:00
Réputation : 0
Localisation : DAX
Genre :

Re: Diversity DIY

Message non lu par TiTTaN »

ok donc en propre ca donne ca ??:

Code : Tout sélectionner

    int Relay = 2;
    int PinHelix = A1;
    int PinDipole = A0;
    int RssiHelix = 0;
    int RssiDipole = 0;
    int Led_RX1 = 3; //led 1 pour le Dipole omnidirectionnelle
    int Led_RX2 = 4; //led 2 pour l'Helix directionnelle

    void setup() {
          
   pinMode(Led_RX1, OUTPUT);
   pinMode(Led_RX2, OUTPUT);

   pinMode(PinHelix, INPUT);
   pinMode(PinDipole, INPUT);
    }

    void loop() {
    RssiHelix = analogRead(PinHelix);
    RssiDipole = analogRead(PinDipole);


    if (RssiHelix > RssiDipole){digitalWrite(Relay, HIGH);}
    if (RssiDipole > RssiHelix){digitalWrite(Relay, LOW;)}

    delay(500);
    }

    int EcartRssi;
    int Seuil = 10; // par exemple, a régler.

    void loop() {

    EcartRssi = analogRead(PinHelix) - analogRead(PinDipole);

    // Si les 2 valeurs sont identique nous passons sur l'antenne dipole par defaut
    // ce qiu vas éviter que le relais travail trop dans le cas ou les 2 valeurs sont trop proche.
    if ((abs(EcartRssi) < Seuil) || (EcartRssi < 0))  {
    // nous nous mettons d'office sur l'antenne dipole
     digitalWrite(Relay, LOW);
     digitalWrite(Led_RX1, LOW); // la led (helix) est eteinte
     digitalWrite(Led_RX2, HIGH); // la led (dipole) est allumée
    } else {
    digitalWrite(Relay, HIGH); // nous passons sur l'Helix
    digitalWrite(Led_RX1, HIGH); // la led (helix) est allumée
    digitalWrite(Led_RX2, LOW); // la led (dipole) est eteinte
    }
    delais(500) // nous attendons 500ms (ou autre valeur) avant de boucler. Là aussi le but est de ne pas faire trop travailler le relais.
    }
J'ai viré les trucs des pin 9 :

pinMode(Relay,OUTPUT);
pinMode(9,OUTPUT);
digitalWrite(9, HIGH);

et la phrase: "// définition de la PIN 13 & 14 en OUTPUT" puisque je n'utilise pas ses pin.

Encore désolé pour mon côté nul en programmation, je m y suis mis y a 1 semaine et c est pas évident.

dans mon code y a 2 fois: void loop() :(

et quand je compile
exit status 1
redefinition of 'void loop()


TBS Discovery-=-RD210-=-QAV250 Low Racer-=-GERPC Mark4 HD5-=-Taranis X9D+ 2019-=- Google DJI Digital FPV
Avatar du membre
bruno
Pilote toutes catégories
Messages : 1820
Enregistré le : mar. 15 avr. 2014 11:39
Réputation : 1
Localisation : Créteil (94)

Re: Diversity DIY

Message non lu par bruno »

ne mets qu'un loop()


Avatar du membre
TiTTaN
Octocopter
Messages : 634
Enregistré le : ven. 2 janv. 2015 12:00
Réputation : 0
Localisation : DAX
Genre :

Re: Diversity DIY

Message non lu par TiTTaN »

désolé d'être con, mais que je vire ( void loop() { ) l'un au l autre je me retrouve avec des erreurs de compil.

il me souligne "RssiHelix = analogRead(PinHelix); et RssiHelix = analogRead(PinHelix); et erreur: exit status 1 expected ')' before ';' token

je vais pas arriver a le faire cette page code :85: :85: ca rentre pas


TBS Discovery-=-RD210-=-QAV250 Low Racer-=-GERPC Mark4 HD5-=-Taranis X9D+ 2019-=- Google DJI Digital FPV
Avatar du membre
BlackBear
Hexacopter
Messages : 302
Enregistré le : mer. 3 déc. 2014 16:50
Réputation : 0
Localisation : L'Isle-Jourdain

Re: Diversity DIY

Message non lu par BlackBear »

Là tu définies le contenu 2 fois de la méthode loop(). Ce n'est possible.


____________________________________
Président Aéro Modélisme L'Islois
Multi: QAV-R (Neuron, XNova 2206 2500kV, LittleBee 30A, Lumenier 25mW), IRC VORTEX PRO
Lunettes: HD V2
Hélicos: Goblin 570, MiniProtos
Avatar du membre
bruno
Pilote toutes catégories
Messages : 1820
Enregistré le : mar. 15 avr. 2014 11:39
Réputation : 1
Localisation : Créteil (94)

Re: Diversity DIY

Message non lu par bruno »

Avant de te mettre le code je vais expliquer tes erreur. Y-en a pas qu'une.

1°) ligne 24 tu écris:
if (RssiDipole > RssiHelix){digitalWrite(Relay, LOW;)}
ce qui te donne l'erreur:
erreur: exit status 1 expected ')' before ';' token
Mais pourquoi ?
tous simplement par ce que ton ; et juste derriére le LOW et non pas après la fermeture ) de ta fonction digitalWrire()
tu dois écrire:
if (RssiDipole > RssiHelix){digitalWrite(Relay, LOW);}

2°) ligne 26 et 27:
tu écris:
delay(500);
}
là c'est comme ci tu avait terminé ton programme puisque tu ferme la loop() par le } (accolade de fin
Donc ça tu retire aussi

3°) ligne 28 et 29
tu écris:
int EcartRssi;
int Seuil = 10; // par exemple, a régler.
tu les mets tous en haut de ton programme.

4°) Ligne 31:
tu écris:
void loop() {
et donc là tu redéfini une boucle dans une boucle ce qui te donne l'erreur:
loop() redefinition (ou un truc du genre)

5°) ligne 47
tu écris:
delais(500) // nous attendons 500ms (ou autre valeur) avant de boucler. Là aussi le but est de ne pas faire trop travailler le relais.
Arduino est in language qui utilise l'anglais et donc tu dois écrire delay(500)
J'ai du certainement une fois depuis mon portable écrire pour te répondre delay que le correcteur orthograpique à changé en delais :)
Sur cette même ligne il te manque aussi le ;

donc ces corrections nous donne le code suivant:

Code : Tout sélectionner

        int Relay = 2;
        int PinHelix = A1;
        int PinDipole = A0;
        int RssiHelix = 0;
        int RssiDipole = 0;
        int Led_RX1 = 3; //led 1 pour le Dipole omnidirectionnelle
        int Led_RX2 = 4; //led 2 pour l'Helix directionnelle
        
        int EcartRssi;
        int Seuil = 10; // par exemple, a régler.

void setup() {
  pinMode(Led_RX1, OUTPUT);
  pinMode(Led_RX2, OUTPUT);

  pinMode(PinHelix, INPUT);
  pinMode(PinDipole, INPUT);
} // End setup()

void loop() {
  RssiHelix = analogRead(PinHelix);
  RssiDipole = analogRead(PinDipole);

  if (RssiHelix > RssiDipole){digitalWrite(Relay, HIGH);}
  if (RssiDipole > RssiHelix){digitalWrite(Relay, LOW);}

  EcartRssi = analogRead(PinHelix) - analogRead(PinDipole);

  // Si les 2 valeurs sont identique nous passons sur l'antenne dipole par defaut
  // ce qiu vas éviter que le relais travail trop dans le cas ou les 2 valeurs sont trop proche.
  if ((abs(EcartRssi) < Seuil) || (EcartRssi < 0))  {
    // nous nous mettons d'office sur l'antenne dipole
    digitalWrite(Relay, LOW);
    digitalWrite(Led_RX1, LOW); // la led (helix) est eteinte
    digitalWrite(Led_RX2, HIGH); // la led (dipole) est allumée
  } else {
    digitalWrite(Relay, HIGH); // nous passons sur l'Helix
    digitalWrite(Led_RX1, HIGH); // la led (helix) est allumée
    digitalWrite(Led_RX2, LOW); // la led (dipole) est eteinte
  }
  delay(500); // nous attendons 500ms (ou autre valeur) avant de boucler. Là aussi le but est de ne pas faire trop travailler le relais.
}// end loop()
Normalement maintenant tu dois pouvoir faire tes tests.
Pas besoin de brancher tu peux passer par un serial pour entrer des valeur et tester ton code.


Avatar du membre
TiTTaN
Octocopter
Messages : 634
Enregistré le : ven. 2 janv. 2015 12:00
Réputation : 0
Localisation : DAX
Genre :

Re: Diversity DIY

Message non lu par TiTTaN »

oh put** ca marche -m- -m- -m- -m- -m- -m- -m- -m- -m-

:amen: :amen: :amen: :amen: tu es un dieu

j'ai juste inversé les leds et nickelllllllllllllllllllll

tu testes comment ??
" Pas besoin de brancher tu peux passer par un serial pour entrer des valeur et tester ton code"


TBS Discovery-=-RD210-=-QAV250 Low Racer-=-GERPC Mark4 HD5-=-Taranis X9D+ 2019-=- Google DJI Digital FPV
Avatar du membre
bruno
Pilote toutes catégories
Messages : 1820
Enregistré le : mar. 15 avr. 2014 11:39
Réputation : 1
Localisation : Créteil (94)

Re: Diversity DIY

Message non lu par bruno »

comme ça:

Code : Tout sélectionner

int valeur;

void setup(){
 Serial.begin(9600);
}

void loop(){
 valeur = Serial.read();
 
 Serial.write(valeur);
 //ou
 Serial.println(valeur);
 
}
tu peux donc entrer des valeur en Serial.read() et ensuite les utiliser dans des opérations mathématique.

Je te laisse chercher ... :)


Avatar du membre
Vincent81
Quadricopter
Messages : 196
Enregistré le : dim. 30 nov. 2014 12:31
Réputation : 0
Localisation : Puylaurens, Tarn, France
Contact :

Re: Diversity DIY

Message non lu par Vincent81 »

En passant, vire les 4 première ligne après le loop, ils ne servent a rien, juste a faire clignoter les leds quand les rssi seront proche ;-)


Avatar du membre
bruno
Pilote toutes catégories
Messages : 1820
Enregistré le : mar. 15 avr. 2014 11:39
Réputation : 1
Localisation : Créteil (94)

Re: Diversity DIY

Message non lu par bruno »

Vicent81
ce doit être bon car y-a un seuil ... moi je préfère constrain() mais c'est aussi une solution, il devra adapter son seuil en fonction de lui et aisni obtenir une page ou le relais ne devrait pas trop travailler. C'est simplement à tester.


Avatar du membre
Vincent81
Quadricopter
Messages : 196
Enregistré le : dim. 30 nov. 2014 12:31
Réputation : 0
Localisation : Puylaurens, Tarn, France
Contact :

Re: Diversity DIY

Message non lu par Vincent81 »

Oui, tout a fait d'accord, on peut le faire de plein de maniére, mais dans son code il met pratiquement les 2 solutions, il faut en choisir une...
2 fois la lecture rssi et 2 fois le basculement du relais dans la même boucle, ça fait brouillon ;-)


Avatar du membre
TiTTaN
Octocopter
Messages : 634
Enregistré le : ven. 2 janv. 2015 12:00
Réputation : 0
Localisation : DAX
Genre :

Re: Diversity DIY

Message non lu par TiTTaN »

Moi je veux bien choisir, mais vu mon niveau de programmation, ç est pas encore de mon niveau


TBS Discovery-=-RD210-=-QAV250 Low Racer-=-GERPC Mark4 HD5-=-Taranis X9D+ 2019-=- Google DJI Digital FPV
Avatar du membre
bruno
Pilote toutes catégories
Messages : 1820
Enregistré le : mar. 15 avr. 2014 11:39
Réputation : 1
Localisation : Créteil (94)

Re: Diversity DIY

Message non lu par bruno »

Vincent81 a écrit :Oui, tout a fait d'accord, on peut le faire de plein de maniére, mais dans son code il met pratiquement les 2 solutions, il faut en choisir une...
2 fois la lecture rssi et 2 fois le basculement du relais dans la même boucle, ça fait brouillon ;-)
Ho oui
Je corrige les erreur de compil et je envois pas ça :92:


Avatar du membre
TiTTaN
Octocopter
Messages : 634
Enregistré le : ven. 2 janv. 2015 12:00
Réputation : 0
Localisation : DAX
Genre :

Re: Diversity DIY

Message non lu par TiTTaN »

bonjour a tous,

je viens de faire mes essais, le fonctionnenent est nickel, les leds basculents pour le changement etat, mais le relais ne s alimentent pas :/


TBS Discovery-=-RD210-=-QAV250 Low Racer-=-GERPC Mark4 HD5-=-Taranis X9D+ 2019-=- Google DJI Digital FPV
Avatar du membre
bruno
Pilote toutes catégories
Messages : 1820
Enregistré le : mar. 15 avr. 2014 11:39
Réputation : 1
Localisation : Créteil (94)

Re: Diversity DIY

Message non lu par bruno »

C'est quoi ce relais ?


Avatar du membre
TiTTaN
Octocopter
Messages : 634
Enregistré le : ven. 2 janv. 2015 12:00
Réputation : 0
Localisation : DAX
Genre :

Re: Diversity DIY

Message non lu par TiTTaN »

C est un relais 5v DPDT pilotait par un BD 241.

J ai tester le relais en reinjectant le premier firmware et ça marche nickel.

J ai vérifié la pin assigné au relais, ç est OK.

donc soucis de firmware.

Par contre les Leds commutate lors des tests


TBS Discovery-=-RD210-=-QAV250 Low Racer-=-GERPC Mark4 HD5-=-Taranis X9D+ 2019-=- Google DJI Digital FPV
Avatar du membre
Vincent81
Quadricopter
Messages : 196
Enregistré le : dim. 30 nov. 2014 12:31
Réputation : 0
Localisation : Puylaurens, Tarn, France
Contact :

Re: Diversity DIY

Message non lu par Vincent81 »

Essaye d'effacer les 4 1er ligne après loop , il sont surement antagoniste avec celles qui suivent :

Code : Tout sélectionner

  RssiHelix = analogRead(PinHelix);
  RssiDipole = analogRead(PinDipole);

  if (RssiHelix > RssiDipole){digitalWrite(Relay, HIGH);}
  if (RssiDipole > RssiHelix){digitalWrite(Relay, LOW);}


Avatar du membre
TiTTaN
Octocopter
Messages : 634
Enregistré le : ven. 2 janv. 2015 12:00
Réputation : 0
Localisation : DAX
Genre :

Re: Diversity DIY

Message non lu par TiTTaN »

ca y est c est fait,

Je teste ça ce soir pour voir et je vous tiens au courant


TBS Discovery-=-RD210-=-QAV250 Low Racer-=-GERPC Mark4 HD5-=-Taranis X9D+ 2019-=- Google DJI Digital FPV
Avatar du membre
TiTTaN
Octocopter
Messages : 634
Enregistré le : ven. 2 janv. 2015 12:00
Réputation : 0
Localisation : DAX
Genre :

Re: Diversity DIY

Message non lu par TiTTaN »

bon ben je viens de faire le test avec le drone, c est pareil, les leds Indiquent la commutation mias le relais veut pas suivre :pleur4: :pleur4: :pleur4:


TBS Discovery-=-RD210-=-QAV250 Low Racer-=-GERPC Mark4 HD5-=-Taranis X9D+ 2019-=- Google DJI Digital FPV
Avatar du membre
Vincent81
Quadricopter
Messages : 196
Enregistré le : dim. 30 nov. 2014 12:31
Réputation : 0
Localisation : Puylaurens, Tarn, France
Contact :

Re: Diversity DIY

Message non lu par Vincent81 »

En relisant ton code en entier, j'ai vu qu'il te manque :
pinMode(Relay, OUTPUT);

Dans la procédure setup...


Avatar du membre
TiTTaN
Octocopter
Messages : 634
Enregistré le : ven. 2 janv. 2015 12:00
Réputation : 0
Localisation : DAX
Genre :

Re: Diversity DIY

Message non lu par TiTTaN »

Ca marche le relais commute nickel. [yahoo.gif] [yahoo.gif]

j'ai plus que les tests en réel a faire

merci a tous ceux qui apporté leurs enormes aide :amen: :amen:


TBS Discovery-=-RD210-=-QAV250 Low Racer-=-GERPC Mark4 HD5-=-Taranis X9D+ 2019-=- Google DJI Digital FPV
Avatar du membre
TiTTaN
Octocopter
Messages : 634
Enregistré le : ven. 2 janv. 2015 12:00
Réputation : 0
Localisation : DAX
Genre :

Re: Diversity DIY

Message non lu par TiTTaN »

en attendant que le temps s améliorent, je m imprime mon antenne helix:
Image

Je pensais qu'il me restait des chutes de plaque de cuivre électronique pour faire le déflecteur, mais j en ai plus, j'irai demain me chercher une petite feuille A5.


TBS Discovery-=-RD210-=-QAV250 Low Racer-=-GERPC Mark4 HD5-=-Taranis X9D+ 2019-=- Google DJI Digital FPV
Répondre

Retourner vers « Electronique (Cartes, Moteurs, ESC, Radios) »