Diversity DIY

Modérateur : Dehas

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 »

Si tu passe en buzzer actif, il faut aussi que tu enlève la ligne :

Code : Tout sélectionner

digitalWrite(Buzz, BuzzEtat); 
et

Code : Tout sélectionner

digitalWrite(Buzz, LOW);
C'est l'instruction tone qui pilote le buzzer en mode actif et plus digitalWrite.

Et désolé pour l'oubli du ; dans le code que je t'ai donné, mais c'était pour voir si tu suivait ;-)


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 »

[yahoo.gif]


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 »

:mdr3: :mdr3: :mdr3: enfin ca marche et c est le principal

merci a tous


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 »

Je viens de faire des tests sur terrain c est nickel.

Il me manque juste une fonction: faire violer le buzzer lorsque je commute d antenne.

J ai un copain qui touche bien à arduino, je vais tenter avec lui pour le faire et me filer quelques bases


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 »

Hello,
Tu change ces lignes :

Code : Tout sélectionner

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
  }
par celles la :

Code : Tout sélectionner

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
    if (change <> LOW) {
         change = LOW;
         tone(Buzz,1000,100);
     }
  } 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
    if (change <> HIGH) {
         change = HIGH;
         tone(Buzz,1200,100);
     }
  }
Déclare la variable change avec les autres en début de programme :

Code : Tout sélectionner

boolean change;
Tu pourras changer les notes et la durée du bip, regarde la fonction "tone" : https://www.arduino.cc/en/Reference/Tone" onclick="window.open(this.href);return false;
@+


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 »

TiTTaN a écrit :Je viens de faire des tests sur terrain c est nickel.

Il me manque juste une fonction: faire violer le buzzer lorsque je commute d antenne.

J ai un copain qui touche bien à arduino, je vais tenter avec lui pour le faire et me filer quelques bases
Même si la réponse est déjà là...
Lorsque tu bascule ton relais, tu veux faire un bip. Donc tu fait l'ajout de ce bip. Il suffit de le mettre au bon endroit et ... Sans oublier la fin d'instruction qui est le ";"
Allé tu peux le faire ajouté un écran LCD avec un barre graph pour tes 2 récepteurs.

Ce que je ceux dire c'est qu'en fait x´est sa si compliqué, si il m'arrive ceci alors je fait ça. Mais dans mon je fait ça j'ai aussi le droit des faire plusieurs chose c'est à ça que servent les {} l'ensemble des 2 s'appel un bloc.

Si J'ai un dégât des eaux
Alors
Je fait rien et je me débrouille
Si non
J'appelle mon assurance
Je fait un courrier

Et donc dans le dernier blocg j'ai bien fait 2 truc
Tu peux en mettre autant que tu veux. Et même ajouter d'autre condition if.


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 »

merci a vincent pour la solution et a bruno pour l explication :super: :super: :super:

c est vraiment sympa


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 »

erreur de compil:
diverstiy_buzzer30-11.ino: In function 'void loop()':
diverstiy_buzzer30-11:54: error: expected primary-expression before '>' token
diverstiy_buzzer30-11:62: error: expected primary-expression before '>' token
expected primary-expression before '>' token

sur la ligne : if (change <> HIGH) { :/ :/

je cherche une structure ou il semblerait manquait un '> mais je vois 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 »

Ton "change" c'est quoi :
une constante ?
un define ?


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 »

je sais pas, j ai juste recopier le code donne par vincent81 et declarer la variable boolean change; au debut du programme


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 »

bon allé je vais t'aider et te mettre plus sur la route...
HIGH est en Arduino un constante qui montre le niveau haut, LOW pour son niveau bas d'une pin.
1 = HIGH
0 = LOW

Donc si tu écris un truc comme:

if (change = HIGH) {
// ton action
}else{
// autre action
}
ça donne quoi avec ton code ?


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 »

ensuite change viens de Où ? comment est-il déclaré ? (pas le temps de chercher le code de vincent)


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 »

C'est encore ma faute, j'ai écrit trop vite sans tester ;-(
c'est pas 'if (change <> HIGH) {'qu'il faute écrire, mais "if (change != HIGH) {'. Pareil pour 'if (change <> LOW) {' un peu plus haut. remplacer <> par !=
Pas facile de changer de langage toutes les 5mn. Et c'est encore des informaticiens qui ont définie les 1001 manières d'écrire "différent de", pffff.


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 »

change est une variable qu utilise vincent pour identifier la commutation du relais ( je pense) :rouge:


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 »

bruno a écrit :bon allé je vais t'aider et te mettre plus sur la route...
HIGH est en Arduino un constante qui montre le niveau haut, LOW pour son niveau bas d'une pin.
1 = HIGH
0 = LOW

Donc si tu écris un truc comme:

if (change = HIGH) {
// ton action
}else{
// autre action
}
ça donne quoi avec ton code ?

si je comprends le code premiere action, il bippe d une facon tone(Buzz,1200,100) puis d'une autre tone(Buzz,1200,100); donc 2 bips differents selon l antenne sur laquelle il es


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 »

Pour explication:

HIGH et LOW sont donc des état HAUT et BAS d'une PIN (0 ou 1).

Si un pin est déclarée en input via pinMode et que si une tension de 3V ou + est présente sur la broche, alors elle prendra la valeur HIGH.
Pour LOW le niveau bas sera de 2 V.
Donc ici le <> (différent de) ne peux être appliquer car qu'appliquer si la valeur est 2.5v ?
Du coups tu dois appliquer d'autre opérateur comme = (égale) ou != (non égale comme te le suggère vincent).

Toutefois attention donc à la déclaration INPUT / OUTPUT car tu peux aussi avoir une broche à 0 volt qui délivre un courrant afin d'allumer une led qui elle est reliée au 5v.
Ensuite y-a aussi le principe du PULLUP (résistance interne) j'utilise ce principe pour mes boutons lorsque j'en ai besoin... mais ce sera pour plus tard.

Pour le moment ce qui est à retenir c'est les niveau HIGH et LOW ne peuvent avoir de valeur autre qu'une égalité ou une inégalité (si t'est grand ou petit tu ne peux être moyen en même temps).

HIGH et LOW étant en arduino un byte je te suggère de déclarer change comme byte également.


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 »

TiTTaN a écrit :
bruno a écrit :bon allé je vais t'aider et te mettre plus sur la route...
HIGH est en Arduino un constante qui montre le niveau haut, LOW pour son niveau bas d'une pin.
1 = HIGH
0 = LOW

Donc si tu écris un truc comme:

if (change = HIGH) {
// ton action
}else{
// autre action
}
ça donne quoi avec ton code ?

si je comprends le code premiere action, il bippe d une facon tone(Buzz,1200,100) puis d'une autre tone(Buzz,1200,100); donc 2 bips differents selon l antenne sur laquelle il es
Non je l'écrais en francais (HIGH = HAUT / LOW = BAS):

donc dans ton test ça donne

si (change = HIGH) {
tone(Buzz,1200,100) ;
} else {
tone(Buzz,1200,100) ;
}
tu aura donc un bip identique pour le niveau HAUT et si pas au niveau BAS le même bip.

mais que veux tu faire plus exactement ?
Prends toi le temps de parler français.

Si j'ai faim alors
j'ouvre mon frigo
si mon frigo est vide alors que j'ai faim alors
je descends au super marché du coin acheter un truc a manger
sinon je me sert dans mon frigo
si non
je fait rien


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 »

8| 8| c est pas evident a comprendre quand meme,

mais bon déjà ca marche, je suis très content, il fait juste un petit cliquetit lors du basculement , je vais me debrouiller corriger ca:

je pense que cest la variable tone(Buzz,1000,100);,moi je veux juste un bip fort peu importe si le bip haut et bas sont identiques,

je souhaite entendre le changement d antenne simplement


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 »

HAUT BAS ne peuvent avoir d'autre valeur que 5 volts ou 0 volts, tu ne peux pas avoir de valeur de 2,1 volts ou 2,5 volts ou encore 2,9 volts par exemple.

Allé t'a déjà bien avancé ... c'est presque fini.


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 »

j ai compris que la variable tone inclut ((broche=Buzz), frequence et durée), donc si j augmente la frequence et la durée je devrais avoir un bip fort:
ex: tone(Buzz,2000,2000); je viens d essayer, ca clique plus fort mais pas beaucoup, y a une frequence a privilègier ??

la clé du probleme serait pas avec notone, c est a dire repeter le clic pour l avoir plus fort ??


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 »

tone c'est:

tone(PIN, FREQUENCE, DUREE)
Avec une fréquence allant de 0 à 65535 de mémoire.

et contrairement:
noTone(PIN)

Après coté valeur, je ne sais pas a toi de voir les valeurs que tu désire.


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 »

je cherche pas de valeur particuliere, je veux just un bon bip,

j ai vu que le bip batterie est fort:
tone(Buzz,1500,2000);

mais en recopiant le valeur, j ai juste un clic, le temps de 2 sec n est meme pas respecter ?? :-/
Modifié en dernier par TiTTaN le jeu. 3 déc. 2015 18:54, modifié 1 fois.


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 »

oui mais grave ou aigu ... c'est une note de musique. donc ça dépends de ce que tu veux.

Je te propose décrire un code qui vas:

pour les notes de 1 à 100 (par exemple)
jouer la note
incrémenter cette la note de 10 ou 100 ou 1000 comme tu veux (10 sera faible)
écrire la valeur dans le serial (afin d'entendre et de noter la valeur si ça te plais)
mettre en pause durant x secondes afin d'avoir le temps d'écrire

allé au script :)


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 »

je sais pas faire de script, j ai pas du tout ton niveau,

Je veux juste un bip genre quand tu allumes certains pc avec le bip de démarrage, franc et court, je vois pas d autres exemples pour l instant.


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 »

Je pense savoir pourquoi les 2 secondes du tone ne sont pas respecté :
tone doit être une instruction qui ne fait que lancer un timer et n'attend pas 2 secondes (si tu a mis 2000 en duration) pour sortir.
Donc le notone(buzz) de la mesure batterie un peu plus loin doit arrêter aussitôt le tone précédent (je sait pas si je suis clair ;-))
Solution : mettre un délai d'attente derrière le tone du changement d'antenne : delay(2000);

Code : Tout sélectionner

if (change != LOW) {
         change = LOW;
         tone(Buzz,1000,2000); // 2000 = 2 sec
         delay(2000); // même valeur : 2 sec
     }
même code plus bas avec HIGH et tu peux mettre une autre fréquence pour savoir quelle antenne a basculé.
Inconvénient : tu rajoute 2 sec a l'hystérésis du basculement du relais.

Pour info, la variable change est juste une mémorisation de l'état du relais, pour ne buzzer qu'au changement d'état de celui-ci, sinon, ton buzzer arrêterais pas de couiner ;-(. Ne pas oublier que l'on est dans une procédure loop, c'est a dire qu'elle est exécuté des milliers de fois par secondes, et on active le relais autant de fois, pour un relais, on s'en fiche, il est activé dans le même état (sauf au changement) mais pour jouer un son, c'est moins drôle, sauf si tu veux pouvoir le retrouver en cas de perte...

SI tu veux les notes exactes, ajoute ça au début du programme et remplace la fréquence par la note que tu veux ex : tone(Buzz,NOTE_C6 , 2000)

Code : Tout sélectionner

#define NOTE_B0  31
#define NOTE_C1  33
#define NOTE_CS1 35
#define NOTE_D1  37
#define NOTE_DS1 39
#define NOTE_E1  41
#define NOTE_F1  44
#define NOTE_FS1 46
#define NOTE_G1  49
#define NOTE_GS1 52
#define NOTE_A1  55
#define NOTE_AS1 58
#define NOTE_B1  62
#define NOTE_C2  65
#define NOTE_CS2 69
#define NOTE_D2  73
#define NOTE_DS2 78
#define NOTE_E2  82
#define NOTE_F2  87
#define NOTE_FS2 93
#define NOTE_G2  98
#define NOTE_GS2 104
#define NOTE_A2  110
#define NOTE_AS2 117
#define NOTE_B2  123
#define NOTE_C3  131
#define NOTE_CS3 139
#define NOTE_D3  147
#define NOTE_DS3 156
#define NOTE_E3  165
#define NOTE_F3  175
#define NOTE_FS3 185
#define NOTE_G3  196
#define NOTE_GS3 208
#define NOTE_A3  220
#define NOTE_AS3 233
#define NOTE_B3  247
#define NOTE_C4  262
#define NOTE_CS4 277
#define NOTE_D4  294
#define NOTE_DS4 311
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_FS4 370
#define NOTE_G4  392
#define NOTE_GS4 415
#define NOTE_A4  440
#define NOTE_AS4 466
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_CS5 554
#define NOTE_D5  587
#define NOTE_DS5 622
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_FS5 740
#define NOTE_G5  784
#define NOTE_GS5 831
#define NOTE_A5  880
#define NOTE_AS5 932
#define NOTE_B5  988
#define NOTE_C6  1047
#define NOTE_CS6 1109
#define NOTE_D6  1175
#define NOTE_DS6 1245
#define NOTE_E6  1319
#define NOTE_F6  1397
#define NOTE_FS6 1480
#define NOTE_G6  1568
#define NOTE_GS6 1661
#define NOTE_A6  1760
#define NOTE_AS6 1865
#define NOTE_B6  1976
#define NOTE_C7  2093
#define NOTE_CS7 2217
#define NOTE_D7  2349
#define NOTE_DS7 2489
#define NOTE_E7  2637
#define NOTE_F7  2794
#define NOTE_FS7 2960
#define NOTE_G7  3136
#define NOTE_GS7 3322
#define NOTE_A7  3520
#define NOTE_AS7 3729
#define NOTE_B7  3951
#define NOTE_C8  4186
#define NOTE_CS8 4435
#define NOTE_D8  4699
#define NOTE_DS8 4978
Modifié en dernier par Vincent81 le jeu. 3 déc. 2015 19:32, modifié 3 fois.


Répondre

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