Aller au contenu


Photo
- - - - -

probleme avec modules serie 2.4Ghz


  • Veuillez vous connecter pour répondre
7 réponses à ce sujet

#1 zavatha

zavatha

    Membre occasionnel

  • Membres
  • Pip
  • 146 messages
  • Gender:Male

Posté 31 décembre 2017 - 04:43

Bonjour a tous,

 

après une absence relative du forum pour cause de PC crashé je reprend enfin mes petits bidouillages et je vous expose un pb sur lequel je sèche sévèrement (et qui fera sûrement l'objet d'un tuto quand j'aurais la soluce car je galère bien à trouver des infos...)

 

je me suis procuré li y a qques mois ceci  :

https://fr.aliexpres...2311.0.0.Ww8qmW

 

j'utilise ces modules avec deux arduino nano chinois (V3), un qui (devrait) balance® des trames et l'autre qui reçoit...

 

les ports RX et TX sont respectivement câblés physiquement sur les ports 10 et 11 des arduinos (sur les deux, j'ai essayé de croiser sur un des deux également sans succès).

J'utilise la librairie SoftwareSerial pour faire causer tout ça...

 

voici le code de l'arduino qui émet :


#include <SoftwareSerial.h>

#define LED 13
#define TXPIN 11
#define RXPIN 10


int cpt = 0;
SoftwareSerial mySerial(TXPIN, RXPIN); // TX, RX (ports Arduino)

void setup()
{
  // initialize the digital pin as an output.
  pinMode(LED, OUTPUT);
  pinMode(RXPIN, INPUT);
  pinMode(TXPIN, OUTPUT);

  digitalWrite(LED, HIGH);

  mySerial.begin(9600); 
  Serial.begin(9600);
  delay(500);

  Serial.println("Sending...");
  digitalWrite(LED, LOW);
}

//Serial data transceiver
void loop()
{
  //  if(mySerial.available()>0){
  digitalWrite(LED, HIGH);
  cpt++;
  mySerial.print((cpt == 1)?'H':'L');
  delay(2);
  Serial.print((cpt == 1)?'H':'L');
  if (cpt > 1)
    cpt = 0;
  /*}
   else{
   
   Serial.print(". ");
   }*/
  delay(500);
  digitalWrite(LED, LOW); 
}

et le code de l'arduino qui recoit :

#include <SoftwareSerial.h>

// programme de reception
// recupère les commandes via la liaison serie radio et allume / eteinds les diodes en conséquence

// Pin 13 has an LED connected on most Ardiuno boards.
#define LED1 2
#define LED2 3
#define LED3 4
#define LED13 13
#define TXPIN 11
#define RXPIN 10

//SoftwareSerial mySerial(RXPIN,TXPIN); // TX, RX (ports Arduino)
SoftwareSerial mySerial(TXPIN, RXPIN); // TX, RX (ports Arduino)

char commande;

void setup()
{
  // initialize the digital pin as an output.
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED13, OUTPUT);
  pinMode(RXPIN, INPUT);
  pinMode(TXPIN, OUTPUT);

  digitalWrite(LED1, HIGH);
  delay(200);

  mySerial.begin(9600);
  Serial.begin(9600);
  Serial.println("init done...");
}

//Serial data transceiver
void loop()
{
  digitalWrite(LED13, HIGH);
  while(mySerial.available()>0 ) {
    commande = mySerial.read();
    delay(2);
    Serial.print(commande);
    // traitement des commandes
    if (commande == 'H') {
      digitalWrite(LED2,HIGH );
      digitalWrite(LED3, LOW);
      delay(500);
    }
    else if (commande == 'L') {
      digitalWrite(LED2, LOW);
      digitalWrite(LED3, HIGH);
      delay(500);
    }
    else {
      digitalWrite(LED2, LOW);
      digitalWrite(LED3, LOW);
    }
    digitalWrite(LED13, LOW);
  }
}

évidemment, si je vous écrit c'est que rien n'est reçu par le récepteur... :(

 

l'émetteur affiche bien alternativement HLHLHLHL dans la console si je monitore

 

rien ne se passe côté récepteur à priori...

 

j'arrive à balancer des commandes AT aux modules radio et j'ai des réponses donc je ne les ai pas grillés (ouf)

ils sont configurés sur le même canal et à la même vitesse (9600 bauds)

 

si qqu'un a une idée ça serait cool car là je suis sec :\

 

merci à tous de votre attention et surtout bonnes fêtes !

 

@+

 

zav

 

 



#2 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 4 390 messages
  • Gender:Male

Posté 04 janvier 2018 - 05:53

Sujet intéressant !

Dans le bouquin de Tavernier, http://www.robot-maker.com/shop/livres-robotique/176-boite-outils-arduino.htmlp:300, il y a un exemple de communication série qui utilise la bibliothèque VirtualWire de Mike McCauley.

Je pense que tu trouveras un début de solution ici, http://arduino-info.wikispaces.com/file/view/VirtualWire.pdf

Sinon, ça marche ça mySerial.print((cpt == 1)?'H':'L'); sur Arduino ?
Ma chaine vidéo YouTube : https://www.youtube....wMz-IzZqyvqEUek

#3 zavatha

zavatha

    Membre occasionnel

  • Membres
  • Pip
  • 146 messages
  • Gender:Male

Posté 06 janvier 2018 - 04:02

Bonjour Oracid,

 

merci pour ta réponse et bonne année à tous au passage !

 

j'ai commandé en // des modules NRF24L01 car j'ai déjà perdu beaucoup de temps sur les modules actuels (6 soirées environ sur 2 mois calendaires + 3 semaines de décalage pour cause e PC crashé je joue de malchance...) ce qui plombe très sérieusement mon projet qui n'avance plus...

 

les NRF24L01 sont plus documentés et fonctionnent avec la lib RF24 (un collègue a moi les a essayé avec difficulté mais succès)...

 

je vais jeter un oeil sur tes liens et voir si je trouve mon bonheur on ne sais jamais :)

 

les autres modules seront utilisables pour un autre projet que j'ai dans mes cartons (plus simple que celui en cours...) si je trouve ce qui cloche entre temps (je suis du genre têtu :) )

 

sinon pour la syntaxe oui ça passe sous Arduino et en C# également (donc et C et C++ je pense mais là je n'ai pas testé... Oliver ? tu es un pro du C++ maintenant ? :P )

il s'agit d'un if / else en notation "condensée" (on dit comme ça ?)

au moins pour cette info, ce fil n'aura pas été stérile :D

 

bonne bidouille à tous !

 

@+

Zav



#4 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 905 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 06 janvier 2018 - 09:41

 

il s'agit d'un if / else en notation "condensée" (on dit comme ça ?)

au moins pour cette info, ce fil n'aura pas été stérile :D

 

 

Oui c'est une autre notation du if else ;) Mais plus condensé que ça quand tu as beaucoup de if à la suite le mieux c'est d'utiliser un "switch case" =)


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !

 

Les réalisations de Mike118  

 

 

 


#5 zavatha

zavatha

    Membre occasionnel

  • Membres
  • Pip
  • 146 messages
  • Gender:Male

Posté 07 janvier 2018 - 01:54

 

Oui c'est une autre notation du if else ;) Mais plus condensé que ça quand tu as beaucoup de if à la suite le mieux c'est d'utiliser un "switch case" =)

oui je suis d'accord, j'aime bien cette notation condensée car ca tient sur une seule ligne... par contre si plusieurs cas sont à évaluer mieux vaut un switch case... c'est plus propre et plus clair...

après je ne suis pas un puriste non plus, objectif premier : faut que ça marche !

 

pour faire du propre on voit après :P

 

@+

zav



#6 zavatha

zavatha

    Membre occasionnel

  • Membres
  • Pip
  • 146 messages
  • Gender:Male

Posté 28 janvier 2018 - 10:41

Salut à tous, petit up rapide... mais pas encore de solution :

 

Suite  à pas mal de tests croisés ce vendredi j'ai réussi à déterminer qu'un ou plusireus des câbles utilisés avec un des deux modules était défectueux =>

 

nouveaux tests à venir le WE prochain donc (là j'ai des obligations familiales, frustration quand tu nous tiens...)

 

Si ça roule y aura une video sur YT et un tuto si ça paraît utile aux modos parce que j'ai vraiment galéré pour un truc qui aurait dû être simple !

 

sinon on fermera le sujet tant pis...

 

bonne bidouille à tous,

 

@+

 

Zav



#7 Melmet

Melmet

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 115 messages
  • Gender:Male
  • Location:Saint-Sozy (46200)

Posté 28 janvier 2018 - 12:48

Salut à tous, petit up rapide... mais pas encore de solution :

 

Suite  à pas mal de tests croisés ce vendredi j'ai réussi à déterminer qu'un ou plusireus des câbles utilisés avec un des deux modules était défectueux =>

 

nouveaux tests à venir le WE prochain donc (là j'ai des obligations familiales, frustration quand tu nous tiens...)

 

Si ça roule y aura une video sur YT et un tuto si ça paraît utile aux modos parce que j'ai vraiment galéré pour un truc qui aurait dû être simple !

 

sinon on fermera le sujet tant pis...

 

bonne bidouille à tous,

 

@+

 

Zav

Partage la video YT et le tuto aussi.
Ici ont partage tout pour aider tout le monde :) 


Ne demande jamais à un robot de faire ce que tu peux faire toi même. :nono: :laugh1:


#8 zavatha

zavatha

    Membre occasionnel

  • Membres
  • Pip
  • 146 messages
  • Gender:Male

Posté 29 janvier 2018 - 02:03

Salut melmet,
La chaine YT sert justement a partager.

Il y a peu de videos car ca prend beaucoup de temps donc je n en fait que si j ai l impression que ca peut interesser/aider du monde...

La pour le coup si je m en sors une video peut se justifier donc je posterais 😉.

A bientot !

Zav




0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users