Programme Arduino

Programme Arduino - Divers - Programmation

Marsh Posté le 06-02-2014 à 16:59:21    

Bonjour à tous,
Alors actuellement j'ai un problème assez conséquent, celui ci étant que je dois fournir pour un projet de fin d'année de Terminale STI 2D, une voiture pédagogique pour les pompiers ( je ne m'étale pas sur le sujet) Et je dois donc créer une communication sans fil avec du Xbee. Donc d'un coté j'ai une  
IHM - Platine USB Xbee - Module Xbee série 2   et de l'autre côté Xbee - Carte Arduino - Divers composants
Je dois donc programmer la carte Arduino pour que les données reçues de l'IHM en binaire se convertissent en décimal. J'emploi peut être et certainement des mauvais termes mais là je suis complètement perdu ! Si vous pouviez éclairer ma lanterne je vous en serais très reconnaissant !

Reply

Marsh Posté le 06-02-2014 à 16:59:21   

Reply

Marsh Posté le 06-02-2014 à 17:11:23    

Le nombre décimal est la somme des produits de la valeur du digit binaire élevé à la puissance (en décimal) du rang du même digit.

Reply

Marsh Posté le 11-02-2014 à 09:46:42    

Je me suis mal exprimé.  
Donc ce n'est pas un problème de codage binaire, je dois paramtétrer la carte arduino pour qu'elle comprenne le message qu'elle recevra de la carte Xbee

Reply

Marsh Posté le 11-02-2014 à 15:04:20    

Il n'y a pas de conversion à faire, car elle est déjà faite par la Xbee et par la Arduino.
 
C'est comme une liaison série ordinaire, donc il faut se servir de Serial.available() et de Serial.read().
 
Voici un exemple de programme à mettre sur la carte Arduino de réception :

char val;        // Variable qui va recevoir un octet du port série
int ledpin = 13; // LED pour montrer quelque chose
 
void setup()
{
  pinMode(ledpin, OUTPUT);  // Pour la led
  Serial.begin(9600);       // Communication à 9600bps par exemple
}
 
void loop()
{
  if (Serial.available()) {     // Regarde si un octet (un caractère) est arrivé
     val = Serial.read();       // Récupère l'octet
  }
  if (val == 'A') {             // Regarde si c'est la lettre A. On peut faire aussi if (val == '3'), etc.
     digitalWrite(ledpin, HIGH);// Allume la led
  } else {  
     digitalWrite(ledpin, LOW); // Eteint la led
  }
  delay(100);                   // Petit délai pour que la Arduino ait le temps de souffler un peu
}  


Message édité par olivthill le 11-02-2014 à 15:07:17
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed