Pages: 1 2 [3]   Go Down
Author Topic: [Problème] Bouton simple..  (Read 2636 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 64
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est vrai..je vais donc bien lire les châpitres sur les pointeurs ^^
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

J'ai une petite question je souhaiterais envoyer des données sur un serveur grâce à l'appui de boutons poussoirs. L'envoie de données marche avec un bouton poussoir mais quand j'en rajoute un autre, il n'est pas pris en compte et vu que j'ai mis un délais après l'envoie de données, il envoie la première donnée puis la deuxième 10 sec plus tard ce qui corepond au délais. Si quelqu'un un exemple de code pour cela  smiley-lol
Mon code actuel:
Code:
#include <SPI.h>         
   #include <Ethernet.h>
   #include <EthernetUdp.h>         
   #include <Server.h>
   #include <VirtualWire.h>
   // Enter a MAC address and IP address for your controller below.
   // The IP address will be dependent on your local network:
   byte mac[] = { 
   0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
   IPAddress ip(192, 168, 1, 0);

   unsigned int localPort = 9999;      // local port to listen on

   // buffers for receiving and sending data
   char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,
   char  ReplyBuffer[] = "acknowledged";       // a string to send back

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


//---- tableau de l'adresse IP de la carte Arduino
byte ipLocal[] = { 192, 168, 1, 40 }; // le réseau local a numéro 192.168.1.x
//----- tableau de l'adresse de la passerelle ---
byte passerelle[] = { 192, 168, 1, 1 }; // l'adresse du PC de connexion à internet ou de la box
//----- tableau du masque de sous réseau
byte masque[] = { 255, 255, 255, 0 }; // idem masque sous-réseau du PC ou de la box : 255.255.255.0
//---- IP du serveur distant de connexion ----
//byte server[] = { 192,168,1,26 }; // pigebox : 192.168.1.26
byte ipServeurDistant[] = { 192,168,1,26 }; // serveur Arduino sur meme reseau local

   
    int inPin = 40;             // un bouton poussoir connecté à la broche 40
    int InPin2 = 41;             // un bouton poussoir connecté à la broche 41
    const int buttonPin = 40;   
    const int buttonPin2 = 41;
    EthernetClient client;

void setup() {
   //---- initialise la connexion Ethernet avec l'adresse MAC du module Ethernet, l'adresse IP Locale
   //---- l'adresse IP de la passerelle internet et le masque du réseau local
   Ethernet.begin(ipLocal, passerelle, masque);
   delay(1000); // donne le temps à la carte Ethernet de s'initialiser

   IPAddress (192, 168, 1, 40); // ip de l'arduino
 
    Udp.begin(8888);
    // initialize the pushbutton pin as an input:
    pinMode(buttonPin, INPUT);
    pinMode(buttonPin2, INPUT);
  }

void loop() {
   
 
    // read the state of the pushbutton value:
     buttonState = digitalRead(buttonPin);
     buttonState = digitalRead(buttonPin2);

     // check if the pushbutton is pressed.     
    if (buttonState == HIGH)(buttonPin); {
     
    IPAddress remoteIP(192, 168, 1, 26); // ip du serveur
    Udp.beginPacket(remoteIP, 9999);
    Udp.write("label: debut");
    Udp.endPacket(); 
    delay(10000);
    }
   
   
    if (buttonState == HIGH)(buttonPin2); {
   
    IPAddress remoteIP(192, 168, 1, 26); // ip du serveur
    Udp.beginPacket(remoteIP, 9999);
    Udp.write("label: fin");
    Udp.endPacket();
    delay(10000);
   
    if (buttonState == LOW)
    client.stop();
    }
  }

Cordialement
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Code:
// read the state of the pushbutton value:
     buttonState = digitalRead(buttonPin);
     buttonState = digitalRead(buttonPin2); // La valeur précédente a été écrasé ici

     // check if the pushbutton is pressed.     
    if (buttonState == HIGH)(buttonPin); { // Ce if n'as pas de sens
     
    IPAddress remoteIP(192, 168, 1, 26); // ip du serveur
    Udp.beginPacket(remoteIP, 9999);
    Udp.write("label: debut");
    Udp.endPacket(); 
    delay(10000);
    }
   
   
    if (buttonState == HIGH)(buttonPin2); {
   
    IPAddress remoteIP(192, 168, 1, 26); // ip du serveur
    Udp.beginPacket(remoteIP, 9999);
    Udp.write("label: fin");
    Udp.endPacket();
    delay(10000);
   
    if (buttonState == LOW)
    client.stop();
    }

Aucune chance que ça marche ! smiley-wink
(ça va compiler car au niveau purement syntaxique il n'y as pas d'erreur, mais pas marcher du tout car sémantiquement c'est totalement faux)

Code:
// read the state of the pushbutton value:
     byte buttonState1 = digitalRead(buttonPin);
     bytebuttonState2 = digitalRead(buttonPin2);

     // check if the pushbutton is pressed.     
if (buttonState1 == HIGH) {
     
    IPAddress remoteIP(192, 168, 1, 26); // ip du serveur
    Udp.beginPacket(remoteIP, 9999);
    Udp.write("label: debut");
    Udp.endPacket(); 
    delay(10000);
}
   
   
if (buttonState2 == HIGH) {
   
    IPAddress remoteIP(192, 168, 1, 26); // ip du serveur
    Udp.beginPacket(remoteIP, 9999);
    Udp.write("label: fin");
    Udp.endPacket();
    delay(10000);

}
   
if (buttonState1 == LOW || buttonState2 == LOW)
    client.stop();
}
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Problème résolue smiley-grin merci beaucoup à toi bonne journée et bonne continuation.

Cordialement Armando
Logged

Pages: 1 2 [3]   Go Up
Jump to: