Go Down

Topic: LCD et ethernet arduino  (Read 49 times) previous topic - next topic

thepotatogirl

Bonjour,

Je suis en STI2D, SIN. Je rencontre un problème avec mon projet. Le but est d'envoyer les valeurs du capteur de température de température au LCD. Le programme pour faire cela marche bien mais quand j'ajoute la partie ethernet, le LCD m'affiche une ligne de la même valeur ( ffffffffffff ou 3333333333) et cela varie mais affiche jamais la température.




voici le code:

#include <SPI.h> // Libairie communication avec le Shield ethernet
#include <Ethernet.h> // Librairie communication Ethernet sur un réseau local
#include <LiquidCrystal.h> //Librairie LED

LiquidCrystal lcd(11,10,5,4,3,2);
int timer = 0;
byte MAC[] = { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25 };

IPAddress IP(192,168,1, 10);
EthernetServer server(80); // Le Shield devient un serveur sur le port 80 (port HTTP)

void setup(){
 
  pinMode(7,OUTPUT);
  pinMode(A0,INPUT);
  Serial.begin(9600);

  timer = millis() + 3000;

  //Lancement connexion Ethernet avec l'adresse MAC et l'adresse IP
  Ethernet.begin(MAC, IP);
  server.begin();

  Serial.print("Le serveur est lancé | ip: ");
  Serial.println(Ethernet.localIP());
}

void loop() {
   
   if(millis() == timer)
   {
     timer = millis() + 3000;
     temp();
   }

  ethernet();
}

void ethernet() {
 
    EthernetClient client = server.available();
   
    if (client) { 

      while (client.connected()) {
        if (client.available()) {

          char c = client.read();
          Serial.print(c);
         
          if (c == '\n') {
           
            client.println("<HTTP/1.1 200 OK>");
            client.println("<Connection-Type: text/html");
            client.println("<Connection: close>");
            client.println("");

            client.println("<!DOCTYPE html>");
            client.println("<html>");
           
            client.println("<head>");
            client.println("<title> Serveur Web </title>");
            client.println("</head>");
           
            client.println("<body>");
           
            client.println("<a href =\"/?btn_on\"\"> <button> ON </button>");
            client.println("<a href =\"/?btn_off\"\"> <button> OFF </button>");
           
            client.println("</body>");
            client.println("</html>");

            client.stop();
        }
      }
    }
  }
}
void temp() {
 
  int valeur_brute = analogRead(A0);
  float temperature_celcius = valeur_brute * (5.0 / 1024.0 * 100.0);
  Serial.println(temperature_celcius);
  lcd.begin(16, 2);
  lcd.write("Temperature: ");
  lcd.setCursor(1,1);
  lcd.print(temperature_celcius);
 
  float temp_demande = analogRead(A1);
  temp_demande = (temp_demande / 1024 * 100);
  Serial.println(temp_demande);
 
  if (temperature_celcius <= temp_demande)
  {
    digitalWrite(7,HIGH);
  }
  else
  {
    digitalWrite(7,LOW);
  }
}






Si vous pouvez m'aider cela serai géniale, Merci.

al1fch

#1
Mar 12, 2020, 02:55 pm Last Edit: Mar 12, 2020, 02:57 pm by al1fch
Bonjour et Bienvenue

Pour publier  du code , il faut sur ce forum utiliser les balises appropriées
Sans cela les messages sont moins lus....  et ont une probabilité non négligeable d'aller à la poubelle (non respect des Règles de fonctionnement)
Comment faire ? C'est expliqué dans plusieurs messages épinglés en tête de forum
par exemple içi : https://forum.arduino.cc/index.php?topic=394754.0
-> Pour la survie de ce fil de discussion il faut rééditer ton  message initial en adoptant la bonne mise en forme.

Pour ce qui est de la commande lcd.print()voir içi la syntaxe et la restriction sur le type de variable à afficher
https://www.arduino.cc/en/Reference/LiquidCrystalPrint



Go Up