[pas résolu] liaison RX TX xbee

OMG!!!

la honte :fearful: :fearful:

Merci beaucoup très cher @barbudor

Encore merci :slight_smile:

bonjours!

Après quelques mois, j'ai réalisé un circuit imprimé pour l'émetteur seulement.
Et il m'arrive un problème:
Donc j'implante les programmes... je vois qu'il y'a un transfert de données entre les deux xBee ( grâce a des LED posté sur Tx et Rx )
l'émetteur contient 2 joysticks donc 4pot. le récepteur contient 4 leds.

Et la rien, aucune Led allumé...

la seul différence entre aujourd'hui et la dernière fois c'est que je n'ai pas utilisé la libraire "SoftwareSerial"

quelqu'un aurait une idée d'un problème?
merci

rectifications, 3 led allumé 1 led éteinte, et enfin une led qui varie en fonction de deux pot --"

Bonjour,

Un schéma complet de la carte ?

Heu ... ça c'est un typon ... pas un schéma !
On ne va pas s'amuser à suivre chaque pistes pour avoir le schéma d'origine :wink:

Excuse moi ^^
Je sais même pas pourquoi j'ai fais ça :fearful:

Alors une petite idée du problème ?

merci.

J'ai regardé a tête reposé ton schéma.

J'ai un gros doute au niveau des interrupteurs, ton câblage est assez bizarre.
Si tu appui sur le bouton il ne se passe rien en fait ...

Le +VCC va directement au GND au travers de la résistance, le bouton n'est qu'au niveau de la broche numérique.
Normalement ça devrait plutôt être :

+VCC -> résistance -> + -> interrupteur -> GND
                      | --> broche

Ensuite je doit t'avouer que le coup de la capture d'écran c'est illisible ...
Un export en png avec eagle c'est beaucoup mieux :wink:

De plus tu semble utiliser des "net alias" pour VCC et GND (enfin pour toute tes labels) ?
Tu devrais plutôt mettre de "vrai" symboles de masse / alim / lignes (une espèce de T) (de base je sait plus si il sont intégré dans la base de composants).

La partie alimentation est un peu bourrin (graphiquement parlant) ... ya des intersections de partout, etc ...
Fait des lignes droites avec des composants aligné ça évite les erreurs de schéma et ces plus plaisant à regarder :wink:

Pour les led ... c'est impossible de lire les net alias ...
Je crois voir un "DIN", "DOUT", et deux led d'utilité inconnu (vérif de la présence d'alim ?).
Au passage: une erreur classique que tu semble avoir faite: mettre les led sur les lignes Rx/Tx sans ampli op en suiveur ou buffer TTL (porte logique oui).

Regarde les niveaux logique, tu doit te retrouver avec du ~1.2V quand Tx ou RX est à "1" :wink:
Du coup la tension étant inférieur à VCC/2 l'ATmega ne "voie" aucun signal sur le port série.

Déjà un merci pour ta réponse.

une image plus clair ici

Ensuite pour tes remarque:
Les interrupteurs, c'est vrai que j'ai commis une énorme erreur d'inattention...

Merci pour tes conseil pour le schémas, je l'ai appliquerais pour une meilleurs version :wink:

Pour les LED sur la ligne Rx/Tx que me conseil tu?
Pourtant j'ai réalisé le même montage qu'un shield sur Sparkfun...
http://www.sparkfun.com/datasheets/DevTools/Arduino/xbeeshield-v13.pdf
Sinon je peux tout simplement essayé d'enlever les LEDs?

incubateur:
Ensuite pour tes remarque:
Les interrupteurs, c'est vrai que j'ai commis une énorme erreur d'inattention...

Je me disait bien aussi qu'il y avait un truc pas nette :slight_smile:
Je serais toi je m'occuperai de ce probléme en priorité et je regarderai si ça ne change rien au reste du fonctionnement du montage :wink:

incubateur:
Pour les LED sur la ligne Rx/Tx que me conseil tu?
Pourtant j'ai réalisé le même montage qu'un shield sur Sparkfun...
http://www.sparkfun.com/datasheets/DevTools/Arduino/xbeeshield-v13.pdf
Sinon je peux tout simplement essayé d'enlever les LEDs?

Bizarre, on m'as toujours déconseillé de connecter des leds sur des lignes à faible courant ...
C'est pas que ça marche pas, mais ça peut endommager à long terme le CI sur lequel les led viennent pomper le courant ...
Ou dans le cas ou le CI ne sort que trés peu de courant ya carrément rien qui marche, avec un buffer ou un ampli-op pas de soucis.

Fait un test bête est méchant, dessoude une des pattes de tes led (ou résistances) sur Rx/Tx et regarde se qui ce passe.
Et dans le doute donne un petit coup d'oscilloscope pour voir comment ce comporte les niveaux logique (un beau 3v3 / 0v, ou un truc pas nette) :wink:

Merci

d'accord je vais essayer de faire ce que tu me conseil dans le Weekend :wink:

Mais je reste septique...
car j'ai 4 potar sur l'émetteur et 4 led sur le récepteur
elles sont toutes allumés.. normal car le potar est un joystick qui est a mi-course.
Mais le plus étrange c'est qu'une seul Led réagit... mais il faut deux potar pour faire varier ça luminosité...

peu être le code mais j'ai rien changé.... de plus il y'a écrit " arduino remote" sur le LCD

////////////////////PROGRAMME EMETTEUR 4bis /////////////////

int analogValue2, analogValue3, analogValue4, analogValue5;
int val2, val3, val4, val5;
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);

void setup(){

  Serial.begin(9600); 
  lcd.begin(16, 2);
  lcd.print("Arduino remote");
 
}

void loop()
{
  
    analogValue2 = analogRead(0);
    analogValue3 = analogRead(1); 
    analogValue4 = analogRead(2);
    analogValue5 = analogRead(3);
    
    val2 = map(analogValue2, 0, 1023, 253, 0);  
    val3 = map(analogValue3, 0, 1023, 253, 0);
    val4 = map(analogValue4, 0, 1023, 253, 0);
    val5 = map(analogValue5, 0, 1023, 253, 0);
    
    Serial.write(byte(251));
    Serial.write(byte(val2));
    
    Serial.write(byte(252));
    Serial.write(byte(val3));
    
    Serial.write(byte(253));
    Serial.write(byte(val4));
    
    Serial.write(byte(254));
    Serial.write(byte(val5));
    
    delay(150);
}
/////////////////// PROGRAMME RECEPTEUR 4 bis//////////////


byte incomingByte, sensor1, sensor2, sensor3, sensor4;

void setup()
{

  Serial.begin(9600);
  
  
  pinMode (10, OUTPUT);
  pinMode (5, OUTPUT);
  pinMode (6, OUTPUT);
  pinMode (9, OUTPUT);
  delay(5);
  
}
void loop() 
{ 
  
  if (Serial.available())
  {  
      incomingByte = Serial.read();
      switch (incomingByte)
        {
      case 251:
          sensor1 = Serial.read();
          Serial.println("  Sensor 1 = ");
          Serial.println(int(sensor1));
          analogWrite (10, sensor1);
          break;
          
      case 252:
          sensor2 = Serial.read();
          Serial.println("  Sensor 2 = ");
          Serial.println(int(sensor2));
          analogWrite (9, sensor2);
          break;
      
      case 253:
          sensor3 = Serial.read();
          Serial.println("  Sensor 3 = ");
          Serial.println(int(sensor3));
          analogWrite (6, sensor3);
          break;
          
      case 254:
          sensor4 = Serial.read();
          Serial.println("  Sensor 4 = ");
          Serial.println(int(sensor4));
          analogWrite (5, sensor4);
          break;
        }
  }
}

Ton schéma en haute résolution vient de me faire tilter :wink:

Tu as une diode 1N4004 (diode pour fort courant) à contre sens qui n'as rien à faire là :wink:
Le signal en Tx de l'atmega sort de la broche Tx et se retrouve directement bloqué par la diode.

Ps: ton Atmega est alimenté en +5v ou +3v3 ?

  • Si il est alimenté en +5v la diode est utile (mais toujours pas dans le bon sens), elle sert de convertisseur 5v -> 3v3 (enfin plus 3v8 mais bon).
    A ce moment là je te conseille de virer cette 1N4004 et de la remplacer par deux 1N4148 (diode rapide pour petit signaux) en série.
  • Si il est alimenté en +3v3 cette diode n'as rien à faire là.

PPs: typiquement pour éviter ce genre de question on place un petit commentaire à coté du CI :wink:

Pour la diode excuse moi c'est un manque de rigueur de ma part ^^ j'ai pas remplacé le nom de la diode, effectivement j'ai pris une diode plus petite, désolé :frowning:
Mon atéméga est alimenté en 5v donc effectivement il me faut une diode
Et je suis a prés a 99% sur que ma diode est dans le bon sens...
http://www.sparkfun.com/datasheets/DevTools/Arduino/xbeeshield-v13.pdf
encore une fois se shield sparkfun m'a conforté dans mon choix
( il y'a une résistance de pull up dans le xBee ce qui donc un 3,3v grâce a la diode dans ce sens)

Qu'es ce que tu en pense ?
je vais déjà corriger les problèmes des résistance des boutons et voir si les Leds influencent quelques chose...

merci pour le conseil coté CI ^^

incubateur:
Pour la diode excuse moi c'est un manque de rigueur de ma part ^^ j'ai pas remplacé le nom de la diode, effectivement j'ai pris une diode plus petite, désolé :frowning:

Ok, tout va bien alors :wink:

incubateur:
Mon atméga est alimenté en 5v donc effectivement il me faut une diode
Et je suis a prés a 99% sur que ma diode est dans le bon sens...
...
( il y'a une résistance de pull up dans le xBee ce qui donc un 3,3v grâce a la diode dans ce sens)

OK! Fallait le dire tout de suite qu'il y avait une pullup 3v3 dans le xbee (-> commentaire sur le schéma) :stuck_out_tongue:
Tout deviens limpide du coup !
Quand l'ATmega envoi un "1" logique (= 5v) la diode est bloquante, la pullup 3v3 envoi donc 3v3 dans le xbee.
Quand l'ATmega envoi un "0" logique (= 0v) la diode est passante, la pullup est donc "annulé" et le xbee "voie" 0v.

Du reste sparkfun a fait un tutoriel sur le sujet (je viens juste de tilter) :
http://www.sparkfun.com/tutorials/65

incubateur:
Qu'es ce que tu en pense ?
je vais déjà corriger les problèmes des résistance des boutons et voir si les Leds influencent quelques chose...

Ouaip bonne idée, commence par les problémes connu :wink:
Aprés regarde ce qui se passe et (re)analyse la situation en conséquence.

skywodd:
Ouaip bonne idée, commence par les problémes connu :wink:
Aprés regarde ce qui se passe et (re)analyse la situation en conséquence.

Donc j'ai résolu le problème des résistance et j'ai coupé les led

Mais il y'a un mais...
Toujours le même persiste...
Les 4 led sont de base allumé a fond c'est a dire 5v
Plus précisément si les pot des entrées AN0 OU AN1 sont à zéro alors j'ai la possibilité de faire varier ( de 0 à 5) une LED avec le pot en AN3

étrange étrange....
Je ne vois pas pourquoi ça ne fonctionne pas c'est hallucinant!

Quelqu'un aurait une idée? Je suis dans une impasse la plus totale :frowning:

incubateur:
Quelqu'un aurait une idée? Je suis dans une impasse la plus totale :frowning:

Je vois pas d'où peut venir le probléme :~
C'est à coup sûr un truc tout bête, tellement bête qu'il passe inaperçu ...

Edite ton 1er message est ajoute un tag du genre [Pas résolu] devant, ça fera peut être venir les autres "membres régulier" du forum :wink:

(avis d'un amateur "autoformé", donc hors des sentiers battus par les pros)

A ta place je repartirai sur un code de base : "envoi d'un seul octet et vérifier la bonne réception par l'allumage d'une led"
pour se concentrer sur la bonne marche des Xbee avec ta carte.
Si Ok un second code: un joystick commandant une seule led ....etc

Pour débugger j'aime bien isoler au maximum les fonctions (au niveau électronique et informatique)
et souvent la réponse est plus rapide que face à l'ensemble du projet.

Bon courage "Ne pas hésiter à reculer pour mieux sauter vers le succès"

J'ai simplifié au maximum mon programme en envoyant des données que sur une seul LED et je suis toujours dans le même tourment....

Si quelq'un pourrait m'aider et aurait une petite idée? De la petit connerie qui fait partir tout mon montage en vrille?

Merci...