Tu es trop fort toi
Ceci dit j'ai eu un moment une pensée pour le titre du post, elle est vite partie...
Du coup je me suis les deux, quand j'ai réussi pour un, j'ai réussi pour l'autre.
Si tu veux faire tes essais plus vite
Modifie le 75 par ex 3*8 = 24 sec
Code : Tout sélectionner
// Sleep for 8 s 8 x 75 = 600 s = 10m
for (int i=0; i<75; i++){
system_sleep();
Pour tester si tu n'as pas fait ton montage, tu peut mettre une valeur bidon ici
Remplace par
Dis moi si tu rencontre le même problème que moi , tout est multiplié par 100 dans mes compteurs, post ici
https://easydomoticz.com/forum/viewtopi ... 011#p27529
Code : Tout sélectionner
// including x10rf library
#include "x10rf.h" // you have to add it to your Arduino library folder
// including low power consuption libraries // by default in Arduino library
#include <avr/sleep.h>
#include <avr/wdt.h>
// consuption libraries function define
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
// define I/O PINS
#define capteurHumidite 2
#define alimCaptHum 3
#define RF_OUT 4 // OUTPUT RF
#define rfxSensorID 3 // PARAMETRAGE ID 3 => 0003 dans DOMOTICZ
//int humidite_val = 12 ; // Initial value, why not 12 ?
volatile boolean f_wdt = 1;
x10rf myx10 = x10rf(RF_OUT,0,5);
void setup() {
CLKPR = (1<<CLKPCE);
CLKPR = B00000000; // set the fuses to 8mhz clock-speed.
ADCSRA &= ~(1<<ADEN);// disable ADC (before power-off)
pinMode(capteurHumidite, INPUT);
pinMode(alimCaptHum, OUTPUT);
pinMode(RF_OUT, OUTPUT);
// MYX10 INITIALIZATION
myx10.begin();
setup_watchdog(9); // approximately 8 seconds sleep
}
void loop() {
//Switch on sensor alim
digitalWrite(alimCaptHum, HIGH);
delay(1000);
int humidite_val = analogRead(capteurHumidite);
myx10.RFXmeter(rfxSensorID,0,humidite_val);
//myx10.RFXmeter(3,0,108);
// INTERNAL PULL-UP DESABLING TO AVOID ELECTROLYSE
digitalWrite(alimCaptHum, LOW);
delay(100);
// Sleep for 8 s 8 x 75 = 600 s = 10m
for (int i=0; i<3; i++){
system_sleep();
}
delay(100);
}
// set system into the sleep state
// system wakes up when wtchdog is timed out
void system_sleep() {
cbi(ADCSRA,ADEN); // switch Analog to Digitalconverter OFF
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here
sleep_enable();
sleep_mode(); // System sleeps here
sleep_disable(); // System continues execution here when watchdog timed out
// sbi(ADCSRA,ADEN); // switch Analog to Digitalconverter ON
}
// 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms
// 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec
void setup_watchdog(int ii) {
byte bb;
int ww;
if (ii > 9 ) ii=9;
bb=ii & 7;
if (ii > 7) bb|= (1<<5);
bb|= (1<<WDCE);
ww=bb;
MCUSR &= ~(1<<WDRF);
// start timed sequence
WDTCR |= (1<<WDCE) | (1<<WDE);
// set new watchdog timeout value
WDTCR = bb;
WDTCR |= _BV(WDIE);
}
// Watchdog Interrupt Service / is executed when watchdog timed out
ISR(WDT_vect) {
f_wdt=1; // set global flag
}