Problème programme arduino
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Problème programme arduino



  1. #1
    roquesp

    Problème programme arduino


    ------

    Bonjour,
    je suis un débutant en en arduino, et j'ai réussi à modifier un programme trouvé sur le net pour mesurer des température avec une sonde ds18b20. Je souhaite faire s'afficher le temps de chaque acquisition (3s entre chaque mesure) devant la température. Est ce que vous pourriez me dire comment modifier ce programme pour que s'affiche "le temps - la température"

    Merci d'avance à tous.

    Patrice

    [I]int i = 0;
    #include <OneWire.h>
    int DS18S20_Pin = 15;

    OneWire ds(DS18S20_Pin); // Connecter la sonde sur l'entrée analogique A1

    void setup(void) {
    Serial.begin(9600);

    Serial.println("CLEARSHEET"); // Initialisation de la feuille de calculs

    //Création des 2 colonnes "Timer" and "temperature"
    Serial.println("duree,Temperat ure1");


    }



    void loop(void) {

    float temperature = getTemp();
    //Serial.println(temperature);
    Serial.println( (String) "duree" + temperature );

    delay(3000); //Délais entre deux mesures en millisecondes
    }


    float getTemp(){
    //Cette fonction sert à retourner la valeur mesurée par le capteur DS18S20 en degré Celsius

    byte data[12];
    byte addr[8];

    if ( !ds.search(addr)) {
    ds.reset_search();
    return -1000;
    }

    if ( OneWire::crc8( addr, 7) != addr[7]) {
    Serial.println("CRC is not valid!");
    return -1000;
    }

    if ( addr[0] != 0x10 && addr[0] != 0x28) {
    Serial.print("Device is not recognized");
    return -1000;
    }

    ds.reset();
    ds.select(addr);
    ds.write(0x44,1);

    byte present = ds.reset();
    ds.select(addr);
    ds.write(0xBE);


    for (int i = 0; i < 9; i++) {
    data = ds.read();
    }

    ds.reset_search();

    byte MSB = data[1];
    byte LSB = data[0];

    float tempRead = ((MSB << 8) | LSB);
    float TemperatureSum = tempRead / 16;

    return TemperatureSum;

    }



    /*
    * lire un unique capteur DS18B20 sur un bus 1-Wire.
    */

    -----

  2. #2
    umfred

    Re : Problème programme arduino

    quel type de temps tu veux afficher ? (heure de la mesure (11:28:53), différence de temps par rapport à la mesure initiale (00:00:00 puis 00:00:03, etc)
    et sous quelle forme ?
    dans le cas, d'une heure, il faut une horloge temps réel (soit un composant, soit une logiciel, donc du code)
    dans le cas d'une différence de temps, regarder la fonction millis() par exemple => https://www.arduino.cc/reference/en/...s/time/millis/

  3. #3
    roquesp

    Re : Problème programme arduino

    Merci beaucoup, je vais regarder ton lien avec la fonction millis(), c'est ce que je recherche.
    Merci encore

  4. #4
    umfred

    Re : Problème programme arduino

    tu verras que tu as une limite de 50 jours environ avant que la valeur renvoyée par la fonction ne revienne à 0.

  5. A voir en vidéo sur Futura
  6. #5
    roquesp

    Re : Problème programme arduino

    C'est bon j'ai réussi, le temps s'affiche en seconde puis la température:

    void loop(void) {
    float temperature = getTemp();
    float time = millis();
    Serial.print(time/1000);
    Serial.println(temperature);
    delay(3000);

    }


    Par contre la fonction serial.printf ne marche pas et je n'arrive pas à mettre un espace entre le temps et la température, il s'affiche par exemple 3,00028,5.
    Comment puis je faire pour integrer un espace entre les deux valeurs?
    Merci encore.

  7. #6
    umfred

    Re : Problème programme arduino

    il faut l'envoyer aussi entre les 2 valeurs: Serial.print(" ");
    mais il doit être possible de faire Serial.println( String(time/1000) + " " + String(temperature));
    tu peux remplacer " " par "\t" pour mettre une tablulation entre les deux ou par ";" ou n'importe quel autre séparateur de ton choix

Discussions similaires

  1. [Programmation] arduino programme (projet SI) arduino+shield et relais grove branchement
    Par azebi dans le forum Électronique
    Réponses: 11
    Dernier message: 09/03/2020, 20h29
  2. (Arduino) problème de téléversement de programme Arduino
    Par invite3e4197b0 dans le forum Électronique
    Réponses: 1
    Dernier message: 17/05/2016, 09h28
  3. Problème programme Arduino !
    Par invitef9305cb0 dans le forum Électronique
    Réponses: 11
    Dernier message: 24/05/2015, 17h11
  4. Arduino Problème Programme
    Par invite995929e1 dans le forum Électronique
    Réponses: 62
    Dernier message: 04/04/2015, 15h25