Pour connecter une télécommande Telis RTS Somfy :
Souder pour chaque bouton la patte haut droite de chaque, en connectant celle patte à la masse, le bouton est activé.
La masse est en noir sur le schéma, le +3,3v en orange.
La connexion à la carte Arduino se fait via optocoupleur selon le schéma suivant :
Un exemple de code :
/////////////////////////////////////////////
/// SOMFY
// Saisie via le moniteur série des ordres :
// Haut - Milieu - Bas
///////////////////////////////////////////
#define Haut 2
#define Milieu 5
#define Bas 6
String s_cmd = "";
void setup() {
// initialize the digital pin as an output.
pinMode(Haut, OUTPUT);
pinMode(Milieu, OUTPUT);
pinMode(Bas, OUTPUT);
//-- initialize serial communications and wait for port to open:
Serial.begin(9600);
}
void loop() {
keyhandle();
}
//////////
//-- SOMFY Bouton
void SomfyOn(int Pin)
{ digitalWrite(Pin, HIGH);
delay(500);
digitalWrite(Pin, LOW);
}
//////////////----------------------------------------
// Acquisition de commande via la console ou le port série
//----------------------------------------
void keyhandle()
{ int i_key;
i_key = Serial.read();
if (i_key == 8 or i_key == 127)
{
int i_cl = s_cmd.length() - 1;
s_cmd = s_cmd.substring(0, i_cl);
Serial.write(8); Serial.write(32); Serial.write(8); i_key = 0;
}
if (i_key > 64 and i_key < 90) {
i_key += 32;
}
if (i_key >= 32) {
s_cmd = s_cmd + char(i_key);
Serial.write(i_key);
}
if (i_key == 13) {
CLI_exec();
}
}
//----------------------------------------
// Traitement des commandes retourne OK ou ERROR
//----------------------------------------
int CLI_exec()
{
int i_ret = -1;
s_cmd.toUpperCase();
if (s_cmd == "BAS")
{
//-- Switch On
Serial.println(" : On baisse le volet");
SomfyOn(Bas);
i_ret = 0;
}
if (s_cmd == "HAUT")
{
//-- Switch On
Serial.println(" : On ouvre le volet");
SomfyOn(Haut);
i_ret = 0;
}
if (s_cmd == "MILIEU")
{
//-- Switch On
Serial.println(" : Touche milieu");
SomfyOn(Milieu);
i_ret = 0;
}
if (i_ret == -1)
Serial.println(" : ERROR");
else
Serial.println("OK");
s_cmd = "";
}
Intéressant, merci. Mais quel type d’optocoupleur avez-vous utilisé? Pourquoi ne pas utiliser le 3.3V de l’Arduino pour se passer de la pile de la télécommande?
Pour l’Optocoupleur j’ai utilisé un TLP505A cf. https://andrologiciels.wordpress.com/arduino/electronique/optocoupleur/
Et oui, j’ai raccordé la télécommande au 3.3v de l’Arduino