Show Posts
Pages: [1]
1  International / Français / Re: Pb de création et utilisation de "library" on: April 14, 2013, 02:18:33 pm
Merci,
Je corrige mon programme
2  International / Français / Pb de création et utilisation de "library" on: March 31, 2013, 03:02:50 pm
Bonjour,

J'ai  le message d'erreur suivant quand j'utilise ma library :

" error: request for member 'setLed' in 'command', which is of non-class type 'Command ()()' "

Utilisation :

Code:
#include <Command.h>
Command command();
...
response = command.setLed(val1, val2);
...


Mes fichiers :

Command.h
Code:
/*
  Command.h
*/
#ifndef Command_h
#define Command_h

#include "Arduino.h"

class Command
{
  public:
    Command();
    boolean setLed(char *pinLed, char *stat);

};

#endif

Command.cpp
Code:
/*
  Command.cpp
*/

#include "Arduino.h"
#include "Command.h"

Command::Command()
{
}

// Allumer ou éteindre une LED
boolean Command::setLed(char *pinLed, char *stat)
{
  // Convert property to int
  int pin = atoi(pinLed);
  // Convert period to int
  int val = atoi(stat);
 
  if(val>0){
    digitalWrite(pin, HIGH);
  }else{
    digitalWrite(pin, LOW);
  }

  return true;
}
3  International / Français / Re: Communication full duplex entre un PC et un Arduino avec une module XBee on: March 31, 2013, 01:14:50 pm
Merci encore !

J'ai fait une modification de mon script et ajouté 3 LED au lieu de 2.
Voir pièce jointe.

4  International / Français / Communication full duplex entre un PC et un Arduino avec une module XBee on: March 28, 2013, 05:35:13 pm
Bonjour,
J'ai pour objectif de faire communiquer une PC et un Arduino avec une liaison XBee afin d'obtenir une action et/ou une réponse de l'Arduino.
J'obtiens bien une réponse de l'Arduino vers le PC mais pas l'inverse.

Le Matériel :

XBee Adapter kit (AdaFruit)
2 Module XBee
1 Arduino UNO
1 4-channel I2C-safe Bi-directional Logic Level Converter - BSS138 (AdaFruit)


Le code source:

Code:
/*
Configuration :
 --------------------------------------------------------------------------
 speedCOM -> 9600 (vitesse de communication du port série)
 --------------------------------------------------------------------------
 XBee
        0 - 1200
        1 - 2400
        2 - 4800
        3 - 9600
        4 - 19200
        5 - 38400
        6 - 57600
        7 - 115200
 */
#define speedCOM 9600

const String nodeIdentifier="mon_node_1";
const boolean mode = false; // "false" Slave ou "true" COORDINATOR (Maitre)
const int panID=1111;
const int addressXBee=1;
const int destinationXBee=0;

const int pinLedA = 11;
const int pinLedB = 12;
String inputString = "";
boolean stringComplete = false;


void setup() {
  // Configuration des pins de sortie
  pinMode (pinLedA, OUTPUT);
  pinMode (pinLedB, OUTPUT);
  
  // Configuration de la communication série
  Serial.begin(speedCOM);  
  
  // Configuration du XBee
  setConfigXBee();    
  
  // Afficher  la configuration du XBee
  getConfigXBee();
}

void loop() {
if(stringComplete){
    if(inputString == "ACT 1")
      actionA();
    if(inputString == "ACT 2")
      actionB();
    if(inputString == "ACT 3")
      actionC();
    if(inputString == "ACT 4")
      actionD();  
  }
  stringComplete = false;
  sendData();
}

void actionA(){
  digitalWrite(pinLedA, HIGH);
  Serial.print("\nHIGH");
}

void actionB(){
      digitalWrite(pinLedA, LOW);
      Serial.print("\nLOW");
}  

void actionC(){
  digitalWrite(pinLedB, HIGH);
  Serial.print("\nHIGH");
}

void actionD(){
      digitalWrite(pinLedB, LOW);
      Serial.print("\nLOW");
}  

void sendData(){
    delay(500);
    Serial.print("\nSend...");
}

void serialEvent() {
 while (Serial.available()) {

   char in = Serial.read();

        //Debug, vérification des caractères reçus
       Serial.print("\nCharacter is : ");
        Serial.print(in + "\n");      

        //Nous utilisons le retour de chariot pour indiquer
        //la fin de la chaîne de caractères
        if( in == '\n' || in == '\r') {
            Serial.print("\nString is : ");
            Serial.print(inputString+"\n");
            inputString = "";
            stringComplete = true;
        } else {
            //Vu que Serial.read() retourne seulement un
            //caractère à la fois, nous avons besoin de les accumuler
            inputString.concat( in );
        }  

   }
}

// Xbee configuration
void setConfigXBee() {
  int speedXBee = convertRateXBee();
  Serial.print("+++"); // XBee en mode configuration
  
  char thisByte = 0;
  while (thisByte != '\r') {
    if (Serial.available() > 0) {
      thisByte = Serial.read();
    }
  }
  delay(25);
  Serial.print("ATRE\r");
  
  if(mode)
    Serial.print("ATCE 1\r"); // Module en mode COORDINATOR(Maitre)
  else
    Serial.print("ATCE 0\r");// "END DEVICE"  c'est-à-dire en "esclave", donc pour nous en récepteur essentiellement
  
  Serial.print("ATSP\r"); // Laisser cette valeur par défaut à 0 qui signifie que le module ne dort jamais ( to sleep = dormir )  mais travaille sans arrêt )
  //Serial.print("ATA1 6\r");
  //Serial.print("ATNI " + nodeIdentifier + "\r");
  Serial.print("ATID " + String(panID) + "\r"); // choix de l'ID du réseau
  Serial.print("ATMY " + String(addressXBee) + "\r"); // Adresse du XBee
  //Serial.print("ATMY\r");
  //Serial.print("ATSC 1FFE\r"); // Canal 20 à 12
  //Serial.print("ATMDH0");
  Serial.print("ATDL " + String(destinationXBee) + "\r"); // Destination du XBEE
  Serial.print("ATBD " + String(speedXBee) + "\r"); // Vitesse de communication
  Serial.print("ATWR\r"); // Enregistrement en mémoire
  Serial.print("ATCN\r"); // Sortie du mode configuration
  delay(11000);
}

void getConfigXBee(){
  Serial.print("\nXBee reciver module");
  Serial.print("\nWilly ROY-BELLEPLAINE");
  Serial.print("\nMode        : ");
    if (mode)
      Serial.print("COORDINATOR");
    else
      Serial.print("SLAVE");
  Serial.print("\nName        : ");
  Serial.print(nodeIdentifier);
  Serial.print("\nPAN ID      : ");
  Serial.print(String(panID));
  Serial.print("\nAddress     : ");
  Serial.print(String(addressXBee));
  Serial.print("\nDestination : ");
  Serial.print(String(destinationXBee));
  //Serial.print("\nConfiguration du XBee:\n");
}


// blinkLED
void blinkLED(byte targetPin, int numBlinks, int blinkRate) {
  for (int i=0; i < numBlinks; i++) {
    digitalWrite(targetPin, HIGH);   // sets the LED on
    delay(blinkRate);                     // waits for blinkRate milliseconds
    digitalWrite(targetPin, LOW);    // sets the LED off
    delay(blinkRate);
  }
}

// Convertion Rate XBee
int convertRateXBee(){
  int speedXBee;
  //String nodeIdentifier, int panID, int addressXBee, int destinationXBee, int speedCOM
  switch (speedCOM){
    case 1200:
      speedXBee = 0;
    break;
    case 2400:
      speedXBee = 1;
    break;
    case 4800:
      speedXBee = 2;
    break;
    case 9600:
      speedXBee = 3;
    break;
    case 19200:
      speedXBee = 4;
    break;
    case 38400:
      speedXBee = 5;
    break;
    case 57600:
      speedXBee = 6;
    break;
    case 115200:
      speedXBee = 7;
    break;
    default:
      speedXBee = 3;
    break;
  }
  return speedXBee;
}


5  International / Français / Triangulation à partir de 3 émetteurs RF on: December 01, 2012, 09:58:08 am
Bonjour,

Je débute avec Arduino, et j'aimerai savoir s'il est possible d'effectuer une triangulation avec 3 émetteurs RF pour connaitre la position au centimètre près d'un robot sur une carte ou alors est-t-il  possible d'obtenir une précision au centimètre avec un GPS.
Par exemple sur surface de 2500m².
6  International / Français / Re: Comment surveiller le niveau de batterie on: October 20, 2012, 04:24:29 pm
Grand merci, je regarde et je test très bientôt !!!
7  International / Français / Comment surveiller le niveau de batterie on: October 20, 2012, 02:33:32 pm
Bonjour,

Est-il possible de surveiller le niveau de batterie par exemple une batterie de de 12V au plomb ?
Si oui avez vous des schémas ou des informations à ce sujet ?

Je ne trouve que cela sur Google : http://www.electronics-lab.com/blog/?p=17475

Merci.
Pages: [1]