Effectivement il semble y avoir un PB au niveau de la gestion des boutons pourtant j'avais essayé d'autres méthodes :
#include <avr/wdt.h>
#include <SomfyRTS.h>
SomfyRTS myRTS(3, TSR_RFM69); //Tx pin number, transmitter type
//pin number : pin connected to the transmitter DATA pin or to the DIO2 pin on RFM69
//transmitter type can be TSR_RFM69 or TSR_AM (for a generic AM 433.42MHZ transmitter)
void setup() {
Serial.begin(115200);
Serial.println("*****************************setup");Serial.flush();
//myRTS.configRTS(myEEPROM_address, myRTS_address); //uncomment and change values only if you don't want to use default configuration
myRTS.setHighPower(true); //have to call it after initialize for RFM69HW
pinMode(7, INPUT_PULLUP);//BP pour descendre le volet
pinMode(8, INPUT_PULLUP);//BP pour monter le volet
//wdt_enable(WDTO_250MS); //watchdog en service et initialisé à 250 milli
}
void loop() {
Serial.println("loop ");
if (digitalRead(7) == LOW) //si appui sur le BP "descente"
{Serial.println("descente ");
myRTS.sendSomfy(0, DOWN); // remote 0, downloop
delay(300);
//redemarre_arduino();
}
if (digitalRead(8) == LOW)//si appui sur le BP "montée"
{
Serial.println("montée ");
myRTS.sendSomfy(0, UP); // remote 0, up
delay(300);
//redemarre_arduino();
}
}
void redemarre_arduino(){
wdt_enable(WDTO_15MS);
while(1){
}
}
Avec ce code, on reste bloqué après avoir appuyé sur le BP 7, plus de loop ???
#include <avr/wdt.h>
#include <SomfyRTS.h>
SomfyRTS myRTS(3, TSR_RFM69); //Tx pin number, transmitter type
//pin number : pin connected to the transmitter DATA pin or to the DIO2 pin on RFM69
//transmitter type can be TSR_RFM69 or TSR_AM (for a generic AM 433.42MHZ transmitter)
void setup() {
Serial.begin(115200);
Serial.println("*****************************setup");Serial.flush();
//myRTS.configRTS(myEEPROM_address, myRTS_address); //uncomment and change values only if you don't want to use default configuration
myRTS.setHighPower(true); //have to call it after initialize for RFM69HW
pinMode(7, INPUT_PULLUP);//BP pour descendre le volet
pinMode(8, INPUT_PULLUP);//BP pour monter le volet
//wdt_enable(WDTO_250MS); //watchdog en service et initialisé à 250 milli
}
void loop() {
Serial.println("loop ");
if (digitalRead(7) == LOW) //si appui sur le BP "descente"
{Serial.println("descente ");
myRTS.sendSomfy(0, DOWN); // remote 0, downloop
delay(300);
while (digitalRead(7) == LOW){;} //si le BP à été appuyé
//redemarre_arduino();
}
if (digitalRead(8) == LOW)//si appui sur le BP "montée"
{
Serial.println("montée ");
myRTS.sendSomfy(0, UP); // remote 0, up
delay(300);
while (digitalRead(8) == LOW){;}
//redemarre_arduino();
}
}
void redemarre_arduino(){
wdt_enable(WDTO_15MS);
while(1){
}
}
Le RFM69HCW utilise des niveaux logiques de 3.3v, il faut donc utiliser un convertisseur de niveau 5V ==> 3.3v pour que la communication soit bonne entre l'arduino et le module ?
Dans ce cas la nano s'impose pour faire des essais.
Oui effectivement Artouste,
Mais quitte à ajouter un convertisseur de niveau logique, il vaut mieux faire un pas de plus vers le projet fini, donc la nano...
Vous qui avez participé aux débats et à l’élaboration du projet Somfy quel est votre avis sur mon PB ?
J'ai vu aussi que al1fch avait participé également.
Je n'ai pas en ce qui me concerne et c'est aussi il me semble cas de Al1fch participé au "reverse" de somfy, nous avions en revanche participé au "reverse" Blyss il y a maintenant presque 10 ans (déjà)