Show Posts
Pages: 1 ... 6 7 [8]
106  International / Français / Re: Conversion depuis le type String vers un autre type on: December 20, 2011, 04:52:12 pm
Bonjour, utilise la fonction "atoi" (cherche sur google) smiley-wink
exemple =
Code:
Serial.println(ao_1_val);
   char ao_1[5];//pour convertir le string en int je passe par = string > char > int
   ao_1_val.toCharArray(ao_1, 5);
   analogWrite(3,atoi(ao_1));
107  Using Arduino / Programming Questions / Re: Scope of variables !? on: December 17, 2011, 12:49:32 pm
thank you for trying to help me!
I speak of "serial" console ! sorry.
the problem is resolved, is the variable "recu" it is defined two times! one time befor setup and the second in the loop.
thank you!!
108  International / Français / Re: Portée des variables ?! on: December 17, 2011, 12:39:30 pm
Merci beaucoup pour ton aide smiley-wink
Problème résolut.
109  Using Arduino / Programming Questions / Scope of variables !? on: December 17, 2011, 08:29:23 am
Hello all, I do not understand why this scketch  works !
when I send for UDP string "fichier=test.txt" the console displays well the different variables (fich and fich_2)
Code:
#include <SPI.h>         // needed for Arduino versions later than 0018
#include <Ethernet.h>
#include <EthernetUdp.h>  
#include <SD.h>

byte mac[] = {  
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 30);
//IPAddress ip(169,254,11,30);
unsigned int localPort = 8080;    

char packetRecu[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,
char  packetEnvoi;  //  string a envoyer
int lon;
String recu;
File root;
File file;
String fich;
File myFile;
char fich_2;//pour le nom du fichier a traiter
int lu ;//variable pour stoker les char lu dans le fichier

EthernetUDP Udp;// An EthernetUDP instance to let us send and receive packets over UDP

//------------------------------------------------------------------
//------------------------------------------------------------------
void setup() {
  
  Ethernet.begin(mac,ip);
  Udp.begin(localPort);
  Serial.begin(9600);
    
  if (!SD.begin(4))
  {
//Serial.println("initialization failed!");
    return;
  }
//Serial.println("initialization done.");
  root = SD.open("/");
//Serial.println("done!");
  }
  
//------------------------------------------------------------------
//------------------------------------------------------------------

void loop() {
  // if there's data available, read a packet
  int packetSize = Udp.parsePacket();
  if(packetSize)
  {
    memset(packetRecu, 0, UDP_TX_PACKET_MAX_SIZE);//vide le buffer
    
    Serial.print("Received packet of size ");
    Serial.println(packetSize);
    Serial.print("From ");
    IPAddress remote = Udp.remoteIP();
    for (int i =0; i < 4; i++)
    {
      Serial.print(remote[i], DEC);
      if (i < 3)
      {
        Serial.print(".");
      }
    }
    Serial.print(", port ");
    Serial.println(Udp.remotePort());
    
    // read the packet into packetBufffer
    Udp.read(packetRecu,UDP_TX_PACKET_MAX_SIZE);
    Serial.print("packetRecu = ");
    Serial.println(packetRecu);
    
    String recu =  packetRecu;
//------------------------------------------------------------------
//------------------------------------------------------------------


if (recu == "connexion")
  {
    printDirectory(root);
  }
  
  //------------------------------------------------------------------
  //--------------------------ouvre_fichier---------------------------
  //------------------------------------------------------------------
  
  if (recu.startsWith("fichier="))//si la chaine recu commence par :
  {
   fich = recu.substring(8); //extrai de la chaine recu le nom du fichier a traiter (recu-fichier=)
   Serial.print("nom du fichier = ");
   Serial.println(fich);
   int lon = fich.length();
   char fich_2[lon-1]; //pour dimensionner le tableau au bonnes dimensions!!important!
   fich.toCharArray(fich_2,lon-1);//pour convertir le string en char (le type reconnu pour l'instruction SD)
   Serial.print("nom du fichier en type char = ");
   Serial.println(fich_2);  
    //ouvre_fichier();
    }
  
  


//------------------------------------------------------------------
//------------------------------------------------------------------
  } //fin if(packetSize)
  //delay(10);
}//fin loop

//------------------------------------------------------------------
//-----------------fonction_liste des fichiers----------------------
//------------------------------------------------------------------

void printDirectory(File dir)
{
   while(true) {
    
     File entry =  dir.openNextFile();
     if (! entry) {
       // no more files
       // return to the first file in the directory
       dir.rewindDirectory();
      break;
     }
    Serial.print(entry.name());
    
    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
    Udp.write(entry.name());
    Udp.endPacket();
    
   }
  
}
but I want to do a function to dedicate
the console dont displays  my variables and function does not work!
Why? the scope of variables? or lack of arguments in function call?
Code:
#include <SPI.h>         // needed for Arduino versions later than 0018
#include <Ethernet.h>
#include <EthernetUdp.h>  
#include <SD.h>

byte mac[] = {  
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 30);
//IPAddress ip(169,254,11,30);
unsigned int localPort = 8080;    

char packetRecu[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,
char  packetEnvoi;  //  string a envoyer
int lon;
String recu;
File root;
File file;
String fich;
File myFile;
char fich_2;//pour le nom du fichier a traiter
int lu ;//variable pour stoker les char lu dans le fichier

EthernetUDP Udp;// An EthernetUDP instance to let us send and receive packets over UDP

//------------------------------------------------------------------
//------------------------------------------------------------------
void setup() {
  
  Ethernet.begin(mac,ip);
  Udp.begin(localPort);
  Serial.begin(9600);
    
  if (!SD.begin(4))
  {
//Serial.println("initialization failed!");
    return;
  }
//Serial.println("initialization done.");
  root = SD.open("/");
//Serial.println("done!");
  }
  
//------------------------------------------------------------------
//------------------------------------------------------------------

void loop() {
  // if there's data available, read a packet
  int packetSize = Udp.parsePacket();
  if(packetSize)
  {
    memset(packetRecu, 0, UDP_TX_PACKET_MAX_SIZE);//vide le buffer
    
    Serial.print("Received packet of size ");
    Serial.println(packetSize);
    Serial.print("From ");
    IPAddress remote = Udp.remoteIP();
    for (int i =0; i < 4; i++)
    {
      Serial.print(remote[i], DEC);
      if (i < 3)
      {
        Serial.print(".");
      }
    }
    Serial.print(", port ");
    Serial.println(Udp.remotePort());
    
    // read the packet into packetBufffer
    Udp.read(packetRecu,UDP_TX_PACKET_MAX_SIZE);
    Serial.print("packetRecu = ");
    Serial.println(packetRecu);
    
    String recu =  packetRecu;
//------------------------------------------------------------------
//------------------------------------------------------------------


if (recu == "connexion")
  {
    printDirectory(root);
  }
  
  //------------------------------------------------------------------
  //--------------------------ouvre_fichier---------------------------
  //------------------------------------------------------------------
  
  if (recu.startsWith("fichier="))//si la chaine recu commence par :
  {
     ouvre_fichier();
   }
  
  


//------------------------------------------------------------------
//------------------------------------------------------------------
  } //fin if(packetSize)
  //delay(10);
}//fin loop

//------------------------------------------------------------------
//-----------------fonction_liste des fichiers----------------------
//------------------------------------------------------------------

void printDirectory(File dir)
{
   while(true) {
    
     File entry =  dir.openNextFile();
     if (! entry) {
       // no more files
       // return to the first file in the directory
       dir.rewindDirectory();
      break;
     }
    Serial.print(entry.name());
    
    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
    Udp.write(entry.name());
    Udp.endPacket();
    
   }
  
}
//------------------------------------------------------------------
//---------------------fonction_li_fichier--------------------------
//------------------------------------------------------------------

void ouvre_fichier()
{
  
   fich = recu.substring(8); //extrai de la chaine recu le nom du fichier a traiter (recu-fichier=)
   Serial.print("nom du fichier = ");
   Serial.println(fich);
   int lon = fich.length();
   char fich_2[lon-1]; //pour dimensionner le tableau au bonnes dimensions!!important!
   fich.toCharArray(fich_2,lon-1);//pour convertir le string en char (le type reconnu pour l'instruction SD)
   Serial.print("nom du fichier en type char = ");
   Serial.println(fich_2);
    
}
110  International / Français / Portée des variables ?! on: December 17, 2011, 08:18:58 am
Bonjour atous, je ne comprend pas pourquoi ce scketch fonctionne !!
lorsque j'envoi par udp le string "fichier=test.txt"  la console m'affiche bien les differentes variables (fich et fich_2)

Code:
#include <SPI.h>         // needed for Arduino versions later than 0018
#include <Ethernet.h>
#include <EthernetUdp.h> 
#include <SD.h>

byte mac[] = { 
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 30);
//IPAddress ip(169,254,11,30);
unsigned int localPort = 8080;   

char packetRecu[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,
char  packetEnvoi;  //  string a envoyer
int lon;
String recu;
File root;
File file;
String fich;
File myFile;
char fich_2;//pour le nom du fichier a traiter
int lu ;//variable pour stoker les char lu dans le fichier

EthernetUDP Udp;// An EthernetUDP instance to let us send and receive packets over UDP

//------------------------------------------------------------------
//------------------------------------------------------------------
void setup() {
 
  Ethernet.begin(mac,ip);
  Udp.begin(localPort);
  Serial.begin(9600);
   
  if (!SD.begin(4))
  {
//Serial.println("initialization failed!");
    return;
  }
//Serial.println("initialization done.");
  root = SD.open("/");
//Serial.println("done!");
  }
 
//------------------------------------------------------------------
//------------------------------------------------------------------

void loop() {
  // if there's data available, read a packet
  int packetSize = Udp.parsePacket();
  if(packetSize)
  {
    memset(packetRecu, 0, UDP_TX_PACKET_MAX_SIZE);//vide le buffer
   
    Serial.print("Received packet of size ");
    Serial.println(packetSize);
    Serial.print("From ");
    IPAddress remote = Udp.remoteIP();
    for (int i =0; i < 4; i++)
    {
      Serial.print(remote[i], DEC);
      if (i < 3)
      {
        Serial.print(".");
      }
    }
    Serial.print(", port ");
    Serial.println(Udp.remotePort());
   
    // read the packet into packetBufffer
    Udp.read(packetRecu,UDP_TX_PACKET_MAX_SIZE);
    Serial.print("packetRecu = ");
    Serial.println(packetRecu);
   
    String recu =  packetRecu;
//------------------------------------------------------------------
//------------------------------------------------------------------


if (recu == "connexion")
  {
    printDirectory(root);
  }
 
  //------------------------------------------------------------------
  //--------------------------ouvre_fichier---------------------------
  //------------------------------------------------------------------
 
  if (recu.startsWith("fichier="))//si la chaine recu commence par :
  {
   fich = recu.substring(8); //extrai de la chaine recu le nom du fichier a traiter (recu-fichier=)
   Serial.print("nom du fichier = ");
   Serial.println(fich);
   int lon = fich.length();
   char fich_2[lon-1]; //pour dimensionner le tableau au bonnes dimensions!!important!
   fich.toCharArray(fich_2,lon-1);//pour convertir le string en char (le type reconnu pour l'instruction SD)
   Serial.print("nom du fichier en type char = ");
   Serial.println(fich_2);   
    //ouvre_fichier();
    }
 
 


//------------------------------------------------------------------
//------------------------------------------------------------------
  } //fin if(packetSize)
  //delay(10);
}//fin loop

//------------------------------------------------------------------
//-----------------fonction_liste des fichiers----------------------
//------------------------------------------------------------------

void printDirectory(File dir)
{
   while(true) {
     
     File entry =  dir.openNextFile();
     if (! entry) {
       // no more files
       // return to the first file in the directory
       dir.rewindDirectory();
      break;
     }
    Serial.print(entry.name());
     
    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
    Udp.write(entry.name());
    Udp.endPacket();
   
   }
   
}

mais lorque je veux faire une fonction dedier la console ne m'affiche pas mes variables et la fonction ne donne rien!!
Pourquoi? la portée des variables ? ou le manque d'argument a l'appel de la fonction ?
Code:
#include <SPI.h>         // needed for Arduino versions later than 0018
#include <Ethernet.h>
#include <EthernetUdp.h> 
#include <SD.h>

byte mac[] = { 
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 30);
//IPAddress ip(169,254,11,30);
unsigned int localPort = 8080;   

char packetRecu[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,
char  packetEnvoi;  //  string a envoyer
int lon;
String recu;
File root;
File file;
String fich;
File myFile;
char fich_2;//pour le nom du fichier a traiter
int lu ;//variable pour stoker les char lu dans le fichier

EthernetUDP Udp;// An EthernetUDP instance to let us send and receive packets over UDP

//------------------------------------------------------------------
//------------------------------------------------------------------
void setup() {
 
  Ethernet.begin(mac,ip);
  Udp.begin(localPort);
  Serial.begin(9600);
   
  if (!SD.begin(4))
  {
//Serial.println("initialization failed!");
    return;
  }
//Serial.println("initialization done.");
  root = SD.open("/");
//Serial.println("done!");
  }
 
//------------------------------------------------------------------
//------------------------------------------------------------------

void loop() {
  // if there's data available, read a packet
  int packetSize = Udp.parsePacket();
  if(packetSize)
  {
    memset(packetRecu, 0, UDP_TX_PACKET_MAX_SIZE);//vide le buffer
   
    Serial.print("Received packet of size ");
    Serial.println(packetSize);
    Serial.print("From ");
    IPAddress remote = Udp.remoteIP();
    for (int i =0; i < 4; i++)
    {
      Serial.print(remote[i], DEC);
      if (i < 3)
      {
        Serial.print(".");
      }
    }
    Serial.print(", port ");
    Serial.println(Udp.remotePort());
   
    // read the packet into packetBufffer
    Udp.read(packetRecu,UDP_TX_PACKET_MAX_SIZE);
    Serial.print("packetRecu = ");
    Serial.println(packetRecu);
   
    String recu =  packetRecu;
//------------------------------------------------------------------
//------------------------------------------------------------------


if (recu == "connexion")
  {
    printDirectory(root);
  }
 
  //------------------------------------------------------------------
  //--------------------------ouvre_fichier---------------------------
  //------------------------------------------------------------------
 
  if (recu.startsWith("fichier="))//si la chaine recu commence par :
  {
     ouvre_fichier();
   }
 
 


//------------------------------------------------------------------
//------------------------------------------------------------------
  } //fin if(packetSize)
  //delay(10);
}//fin loop

//------------------------------------------------------------------
//-----------------fonction_liste des fichiers----------------------
//------------------------------------------------------------------

void printDirectory(File dir)
{
   while(true) {
     
     File entry =  dir.openNextFile();
     if (! entry) {
       // no more files
       // return to the first file in the directory
       dir.rewindDirectory();
      break;
     }
    Serial.print(entry.name());
     
    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
    Udp.write(entry.name());
    Udp.endPacket();
   
   }
   
}
//------------------------------------------------------------------
//---------------------fonction_li_fichier--------------------------
//------------------------------------------------------------------

void ouvre_fichier()
{
   
   fich = recu.substring(8); //extrai de la chaine recu le nom du fichier a traiter (recu-fichier=)
   Serial.print("nom du fichier = ");
   Serial.println(fich);
   int lon = fich.length();
   char fich_2[lon-1]; //pour dimensionner le tableau au bonnes dimensions!!important!
   fich.toCharArray(fich_2,lon-1);//pour convertir le string en char (le type reconnu pour l'instruction SD)
   Serial.print("nom du fichier en type char = ");
   Serial.println(fich_2);
   
}
111  Using Arduino / Storage / Bug with <SD.h> librarie in IDE version 1.0 on: December 09, 2011, 05:10:09 pm
Hello, here is my problem I have migrated to IDE 1.0 and I noticed a bug: when I inject the sample sketch "Datalogger" from the IDE 023 Hopefully the values ​​of analog inputs are displayed and march well in the console.
If I inject the same example from the sketch form the ide 1.0 , the values ​​displayed 1 or 2 times and nothing!?
I use an  card uno +  ethernet shield
You see the same thing?
112  Using Arduino / Installation & Troubleshooting / Trouble with <SD.h> librarie in IDE version 1.0 on: December 08, 2011, 05:31:44 pm
Hello, here is my problem I have migrated to IDE 1.0 and I noticed a bug: when I inject the sample sketch "Datalogger" from the IDE 023 Hopefully the values ​​of analog inputs are displayed and march well in the console.
If I inject the same example from the sketch form the ide 1.0 , the values ​​displayed 1 or 2 times and nothing!?
I use an  card uno +  ethernet shield
You see the same thing?
113  International / Français / Bug lib <SD.h> dans l'ide 1.0 ? on: December 06, 2011, 05:58:11 pm
Bonjour a tous, voilas mon problème j'ai migré vers l'ide 1.0 et je constate un bug : lorsque j'injecte le sketch d’exemple "Datalogger" depuis l'ide 023 tout va bien les valeurs des entrées ana s'affichent et défilent bien dans la console.
Par contre si j'injecte ce même sketch exemple depuis l'ide 1.0 la sa bloque, les valeurs s'affichent 1 ou 2 fois puis plus rien!!?
Comme ils ont fais une grosse mise a jour des fonctions de  <SD.h> dans le 1.0 , j'en conclu qu'il y ont laisser un petit bug?
J'en constate un autre avec la fonction "openNextFile()" qui malgré un "rewindDirectory()" ne veut bien m'afficher les fichiers pressent sur la carte que 5 ou 6 fois puis plus rien!!?

Comme je débute avec ses cartes, peut être j'ai loupé quelque chose, je sais pas?
Ou bug
Qu'en pensez vous?
114  Using Arduino / Networking, Protocols, and Devices / Re: Udp.sendPacket whit analog_input on: November 26, 2011, 03:28:40 am
thank you very much I will test !
115  International / Français / Re: Udp.sendPacket et variable int on: November 25, 2011, 02:59:42 pm
OK!! je te remercie beaucoup pour ton aide, tu m'a débloqué, je peux continuer mon projet. smiley-wink
116  Using Arduino / Networking, Protocols, and Devices / Udp.sendPacket whit analog_input on: November 25, 2011, 08:33:19 am
Hello everyone and congratulations to the forum!
I started with the Arduino.
I will wish to use the "Udp.sendPacket" and "Udp.readPacket" to write and read the value of an analog input.
But I'm stuck! I was not able to convert my variable of type int to char  smiley-cry
How?
Code:
Udp.sendPacket( analogRead(9), remoteIp, remotePort);
Thank you in advance if anyone can help me!
117  International / Français / Udp.sendPacket et variable int on: November 24, 2011, 06:28:07 pm
Bonjour a tous et félicitation pour le forum!
Je débute avec les cartes arduino.
Je souhaiterai utiliser la fonction "Udp.sendPacket" pour poster la valeur d'une analog input.
Mais la je bloque!! je ne parvient pas a convertir mes variables  smiley-cry
Comment faire?
Code:
   Udp.sendPacket( analogRead(9), remoteIp, remotePort);
Merci d'avance si quelqu'un peut m'aider!
Pages: 1 ... 6 7 [8]