Go Down

Topic: mon arduino affiche l heure puis la temperature hors je veut l et deux a la fois (Read 802 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<br />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<br />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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy