J'ai fabriqué un ascenseur de plafond pour vidéo-projecteur piloté par arduino.
Sur la vidéo, il n'est pas encore équipé de la domotique.
https://www.youtube.com/watch?v=PXi_6dyqi04
Matériels utilisé :
Partie électro-mécanique :
1 trappe de plafond 50x50 cm, 4 m de cornière alu a angle vif 8x8 cm, 1 moteur de volet roulant, 50 cm de tube octo 40, 2 poulies pour sangles de 15 mm de large pour tube octo 40, 1 palier roulement KFL002, 4 galets de tendeur de chaines, 10 m de sangle de 15 mm de large, 4 tendeurs de sangle, 4 coulisses à billes sortie total de 30 cm, 1 bouton POUSSOIR Mosaic 2 pour volet roulant.
Partie électronique :
1 ARDUINO NANO, 1 diode d'émission+1 résistance de 500 ohms, 1 relais double Arduino.
Album photos :
vidéo-projecteur
Code pour Arduino :
/* pins
GND breadboard <--> GND Arduino (en cas d'usage d'une breadboard)
D0, D1 connexion Serial
D2
D3 LED infrarouge (exemple TSAL 6200, (câblage pin 3 <-> R 200 Ohms <-> LED Anode || Led Cathode <-> GND)
D4 bouton poussoir haut (câblage pin 4 <-> bouton <-> GND)
D5 bouton poussoir bas (câblage pin 5 <-> bouton <-> GND)
D6
D7
D8
D9 IN1 = relais de montée
D10 IN2 = relais de descente
D11
D12
D13
A0
A1
A2
A3
A4
A5
*/
/* **************** la partie IR **************** */
#include <IRremote.h> // https://github.com/z3t0/Arduino-IRremote
// LED IR connectée sur la pin PWM 3
/* obtention du code on/off de la télécommande sony à obtenir avec IRrecvDumpV2
hypothèse ---> Decoded SONY: 542A (15 bits)
*/
const unsigned long codeProjecteurOFF = 0x542A; // (votre 21546)
const int longeurCodeSony = 15;
IRsend irsend;
/* **************** les relais et boutons **************** */
const byte pinRelaisMonter = 9; // IN1 = relais de montée
const byte pinRelaisDescendre = 10; // IN2 = relais de descente
const byte ACTIF = LOW;
const byte PASSIF = HIGH;
const unsigned long dureeCourseAscenseur = 10000UL;
const unsigned long dureeRefroidissement = 120000UL;
const byte pinBoutonHaut = 4; // bouton poussoir haut
const byte pinBoutonBas = 6; // bouton poussoir bas
/* **************** gestion de l'état **************** */
enum : uint8_t {PROJECTEUR_OFF, PROJECTEUR_ON} etat;
/* **************** fonctions **************** */
void relais(const byte etatMonter, const byte etatDescendre)
{
digitalWrite(pinRelaisMonter, etatMonter);
digitalWrite(pinRelaisDescendre, etatDescendre);
}
void appuiPower() // le protocole Sony dit qu'il faut envoyer la commande 3 fois
{
for (byte i = 0; i < 3; i++) {
irsend.sendSony(codeProjecteurOFF, longeurCodeSony);
delay(40);
}
}
void allumage()
{
relais(PASSIF, ACTIF); // active le relais descend et desactive le relais monte
delay(dureeCourseAscenseur); // attente de la descente
relais(PASSIF, PASSIF); // désactive les 2 relais
appuiPower();
etat = PROJECTEUR_ON;
}
void extinction()
{
appuiPower(); // désactive le retroprojecteur
delay(2000UL); // on attend deux secondes
appuiPower(); // confirmation désactivation du retroprojecteur
delay(dureeRefroidissement); // deux minutes de refroidissement
relais(ACTIF, PASSIF); // active le relais monte et desactive le relais descend
delay(dureeCourseAscenseur); // attente de la fermeture
relais(PASSIF, PASSIF); // désactive les 2 relais
etat = PROJECTEUR_OFF;
}
void setup()
{
pinMode(pinRelaisMonter, OUTPUT); //relais montée
pinMode(pinRelaisDescendre, OUTPUT); // relais descente
relais(PASSIF, PASSIF); //extinction des relais
etat = PROJECTEUR_OFF; // hypothèse, on a aucun moyen de savoir...
pinMode (pinBoutonHaut, INPUT_PULLUP); // activation du PULLUP interne
pinMode (pinBoutonBas, INPUT_PULLUP); // activation du PULLUP interne
}
void loop()
{
switch (etat) {
case PROJECTEUR_OFF:
if (digitalRead(pinBoutonBas) == ACTIF) {
allumage(); // appel bloquant ~10 secondes
}
break;
case PROJECTEUR_ON:
if (digitalRead(pinBoutonHaut) == ACTIF) {
extinction(); // extinction manuelle, appel bloquant plus de 2 minutes !
}
break;
}
}
|
3 messages • Page 1 sur 1
|
Modérateurs: Modération Forum DIY, Modération Forum Installations, Le Bureau de l’Association HCFR • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

La configuration dans mon profil
Fil d’installation
B&W Accuphase
- gil2b
- Membre HCFR
- Messages: 21384
- Inscription Forum: 28 Déc 2003 19:52
- Localisation: 77
|
3 messages
• Page 1 sur 1
Retourner vers Accessoires DIY divers |