Go Down

Topic: mon arduino affiche l heure puis la temperature hors je veut l et deux a la fois (Read 629 times) previous topic - next topic

moijerem

bonjour voila je souhaite afficher l heure ainsi que la temperature mon code fonctionne sauf qu il affiche la temperature puis l heure puis la temperature puis l heure puis la temperature puis l heure

comment faire pour que l et deux soit afficher en meme temps ?

Code: [Select]
#include <Wire.h>
#include <RTClib.h>
#include <Time.h>
#include <LiquidCrystal.h>
#include <WProgram.h>
#include <Wire.h>
#include <DS1307.h>
#include <RCSwitch.h>
#include <RTClib.h>
RCSwitch mySwitch = RCSwitch();
RTC_DS1307 RTC;

/*
Arduino Masterbalby Controller

Analog Pin 0 = Température Sensor

Digital Pin 6 = // la pin de connexion de mon emmeteur 433 mhz

Digital Pin 11 = LCD
Digital Pin 12 = LCD
Digital Pin 5 = LCD
Digital Pin 3 = LCD
Digital Pin 2 = LCD
Digital Pin 3 = // la pin de connexion de mon émetteur

Branchement du module RTC DS1307
- DS1307 -> Arduino
- SDA -> Pin A4
- SCL -> Pin A5
- GND -> GND
- VCC+ -> +5V
*/

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int sensorPin = 0;
void setup() {
   {
    /* RTC.stop();
    RTC.set(DS1307_SEC,00); //réglage secondes
    RTC.set(DS1307_MIN,59); //réglage minutes
    RTC.set(DS1307_HR,15); //réglage heures
    RTC.set(DS1307_DOW,6); //réglage jour de la semaine
    RTC.set(DS1307_DATE,11); //réglage date
    RTC.set(DS1307_MTH,12); //réglage mois
    RTC.set(DS1307_YR,10); //réglage année
    RTC.start();
    */
    }
   
    Serial.begin(9600);
    mySwitch.enableTransmit(6);  // la pin de connexion de mon émetteur
    mySwitch.setProtocol(1); // le protocol (cf screenshot ci dessus, que je mets donc à 1)
    mySwitch.setRepeatTransmit(2); // nombre de répétitions du signal histoire d'être sur que la prise recevra le signal
   
    lcd.begin(16, 2);
    lcd.print("MasterBalby 2.1");
    lcd.setCursor(0, 1) ;
    lcd.print("Gestion Aqua");
    delay(1700);
    lcd.clear();
    lcd.print(" initialisation");
    delay(1700);
    lcd.clear();
    Wire.begin();
    RTC.begin();

//Récupérer l heure du DS1307 ********************************************************************
  if (! RTC.isrunning())
    {
        Serial.println("RTC is NOT running!");
        // following line sets the RTC to the date & time this sketch was compiled
        //RTC.adjust(DateTime(__DATE__, __TIME__));
    }
}
   
void displayTime(DateTime dateTime)
{
    lcd.begin(16, 2);
    lcd.setCursor(0, 1);
    lcd.print(dateTime.hour(), DEC);
    lcd.print(':');
    lcd.print(dateTime.minute(), DEC);
    lcd.print(':');
    lcd.print(dateTime.second(), DEC);
    lcd.print(' ');
    delay(1000);
}

//Affichage température***************************************************************************

void displayTemperature(int temp)
{
    lcd.begin(16, 2);
    lcd.setCursor(8, 0);
    lcd.print("Temp:");
    lcd.print(temp);
    lcd.println("C");
    lcd.print(' ');
    delay(1000);
}




void loop() {
   
    //Récupérer la température du LM35 ***********************************************************

    int reading = analogRead(sensorPin);
    float voltage = reading * 5.0 / 1024;
    int temp = voltage * 100 ;

    //Affichage temps*****************************************************************************
    displayTime(RTC.now());
   
    //Affichage température***********************************************************************
    displayTemperature(temp);
   
   
}



Grand merci a vous d avance

Jean-François

Enlève les delay() dans tes affichages, si vraiment tu veux en avoir un tu le mets après l'appel de tes fonction dans loop().
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

fdufnews

Pourquoi fais-tu un lcd.begin au début de chaque fonction d'affichage?
Cela réinitialise l'afficheur.

moijerem

si je ne mets pas le lcd begin mets deux ligne sont ecrit sur ma meme ligne / :smiley-roll-sweat: 
Si vous pouvait m aider a modifier le code proprement cela fait quelque jour que je me torture l esprit et rien ne change

Jean-François

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

moijerem

Résolue merci
en suprimant lcd.begin =) grand merci a vous

Code: [Select]
// telecommande aquarium  ( 5592323 )
// telecommande lumiere meuble tv ( on/off 1601921 )  gradateur (+ 1601924) (- 1601922 ) 
// telecommande lumiere lit ( on/off 12612369 )  gradateur (+ 12612372) (- 12612370 )
// telecommande desodirisant couloir ( on/off 1864065 )  gradateur (+ 1864068) (- 1864066 )

/*
Arduino Masterbalby Controller
Analog Pin 0 = Température Sensor

Digital Pin 11 = LCD
Digital Pin 11 = NULL
Digital Pin 12 = LCD
Digital Pin 7 = LCD
Digital Pin 8 = LCD
Digital Pin 9 = LCD
Digital Pin 10 = LCD
8 = chauffage
10 = moon_light
Digital Pin 11 = PWM day_light
Digital Pin 16 = Bouton poussoir 1 day light
Digital Pin 15 = Bouton poussoir 2 chauffage
*/
#include <Wire.h>
#include <RTClib.h>
#include <Time.h>
#include <LiquidCrystal.h>
#include <WProgram.h>
#include <Wire.h>
#include <DS1307.h>
#include <RCSwitch.h>
#include <RTClib.h>
RCSwitch mySwitch = RCSwitch();
RTC_DS1307 RTC;

/*
Arduino Masterbalby Controller

Analog Pin 0 = Température Sensor

Digital Pin 6 = // la pin de connexion de mon emmeteur 433 mhz

Digital Pin 11 = LCD
Digital Pin 12 = LCD
Digital Pin 5 = LCD
Digital Pin 3 = LCD
Digital Pin 2 = LCD
Digital Pin 3 = // la pin de connexion de mon émetteur

Branchement du module RTC DS1307
- DS1307 -> Arduino
- SDA -> Pin A4
- SCL -> Pin A5
- GND -> GND
- VCC+ -> +5V
*/

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int sensorPin = 0;
void setup() {
   {
    /* RTC.stop();
    RTC.set(DS1307_SEC,00); //réglage secondes
    RTC.set(DS1307_MIN,59); //réglage minutes
    RTC.set(DS1307_HR,15); //réglage heures
    RTC.set(DS1307_DOW,6); //réglage jour de la semaine
    RTC.set(DS1307_DATE,11); //réglage date
    RTC.set(DS1307_MTH,12); //réglage mois
    RTC.set(DS1307_YR,10); //réglage année
    RTC.start();
    */
    }
   
    Serial.begin(9600);
    mySwitch.enableTransmit(6);  // la pin de connexion de mon émetteur
    mySwitch.setProtocol(1); // le protocol (cf screenshot ci dessus, que je mets donc à 1)
    mySwitch.setRepeatTransmit(2); // nombre de répétitions du signal histoire d'être sur que la prise recevra le signal
   
    lcd.begin(16, 2);
    lcd.print("MasterBalby 2.1");
    lcd.setCursor(0, 1) ;
    lcd.print("Gestion Aqua");
    delay(1700);
    lcd.clear();
    lcd.print(" initialisation");
    delay(1700);
    lcd.clear();
    Wire.begin();
    RTC.begin();

//Récupérer l heure du DS1307 ********************************************************************
  if (! RTC.isrunning())
    {
        Serial.println("RTC is NOT running!");
        // following line sets the RTC to the date & time this sketch was compiled
        //RTC.adjust(DateTime(__DATE__, __TIME__));
    }
}
   
void displayTime(DateTime dateTime)
{
    lcd.setCursor(0, 1);
    lcd.print(dateTime.hour(), DEC);
    lcd.print(':');
    lcd.print(dateTime.minute(), DEC);
    lcd.print(':');
    lcd.print(dateTime.second(), DEC);
    lcd.print(' ');
    delay(1000);
}

//Affichage température***************************************************************************

void displayTemperature(int temp)
{
    lcd.setCursor(8, 0);
    lcd.print("Temp:");
    lcd.print(temp);
    lcd.println("C");
    lcd.print(' ');
    delay(1000);
}




void loop() {
   
    //Récupérer la température du LM35 ***********************************************************

    int reading = analogRead(sensorPin);
    float voltage = reading * 5.0 / 1024;
    int temp = voltage * 100 ;

    //Affichage temps*****************************************************************************
    displayTime(RTC.now());
   
    //Affichage température***********************************************************************
    displayTemperature(temp);
   
   
}

Go Up