ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
ATELIERS Python + Qt | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | RaspberryPi |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |
Commander un relais à l'aide d'un BP avec une carte ArduinoARDUINO - INITIATION - BP - PUISSANCE ON OFF PrésentationCe programme commande à l'aide d'un bouton poussoir un relais à partir d'une broche de la carte Arduino via un circuit intégré ULN 2803 (octuple amplificateur inverseur 500mA). Voir également : Matériel NécessaireL'espace de développement Arduino
![]() Le matériel suivant pour réaliser le montage associé
![]()
![]()
![]()
![]() Instructions de montage
Le schéma théorique du montageLa diode représentée n'est pas obligatoire, mais a pour but de prévenir les problèmes de reset intempestif de la carte Arduino. Cela fonctionne bien quand même sans la diode. ![]() ATTENTION : L'utilisation du 220V est dangereuse et nécessite impérativement de respecter des règles de sécurité précises. Les mineurs ne doivent en aucun cas utiliser du 220V sans la présence d'un adulte. Le circuit du montageExplication du programmeStructure globale du programmeCe programme simple comprend :
Déroulement du programmeLe programme se déroule de la façon suivante :
![]() Le déroulement du programme Au niveau de la partie déclarative :Déclaration de constantes utiles
const int APPUI=0; // constante état du BP - appui sur niveau bas const int PAS_APPUI=1; // constante état du BP - relâché sur niveau haut Déclaration des constantes de broches
const int BP=2; //declaration constante de broche const int RELAIS=3; //declaration constante de broche Déclaration des variables globales
boolean etatRelais=0; // variable bit reflet état du relais Au niveau de la fonction d'initialisation setup( ) :Initialisation des fonctionnalités utilisées :
configuration des broches utilisées :
pinMode(RELAIS, OUTPUT); //met la broche en sortie
pinMode(BP, INPUT); //met la broche en entree
digitalWrite(BP, HIGH) ; // activation du pullup de la broche en entrée Au niveau de la boucle principale, la fonction loop ( ) :
if (digitalRead(BP)==APPUI) { // si appui sur BP etatRelais=!etatRelais; // inverse l'état du relais digitalWrite(RELAIS,etatRelais); // met la broche de commande dans l'état voulu delay (500); // pause anti-rebond - évite double prise en compte appui BP } // fin if
Se reporter aux commentaires présents dans le programme pour plus de détails. Mise en oeuvre du programmePréparation du montage et programmation de la carte Arduino :
Fonctionnement
Le programme complet en langage Arduino :A copier/coller directement dans l'éditeur Arduino // --- Programme Arduino --- // par X. HINAULT - Le 03/03/2010 // www.mon-club-elec.fr // --- Que fait ce programme ? --- /* commande à l'aide d'un bouton poussoir un relais à partir d'une broche de la carte Arduino via un ULN 2803 (octuple amplificateur inverseur 500mA)*/ // --- Fonctionnalités utilisées --- // --- Circuit à réaliser --- // Connecter sur la broche 2 (configurée en entrée) un bouton poussoir connecté à la masse (0V) // Connecter sur la broche 3 (configurée en sortie) une broche de commande du CI ULN2803 //**************** Entête déclarative ******* // A ce niveau sont déclarées les librairies, les constantes, les variables... // --- Inclusion des librairies utilisées --- // --- Déclaration des constantes --- const int APPUI=0; // constante état du BP - appui sur niveau bas const int PAS_APPUI=1; // constante état du BP - relâché sur niveau haut // --- constantes des broches --- const int BP=2; //declaration constante de broche const int RELAIS=3; //declaration constante de broche // --- Déclaration des variables globales --- boolean etatRelais=0; // variable bit reflet état du relais // --- Déclaration des objets utiles pour les fonctionnalités utilisées --- //**************** FONCTION SETUP = Code d'initialisation ***** // La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme void setup() { // debut de la fonction setup() // --- ici instructions à exécuter au démarrage --- // ------- Broches en sortie ------- pinMode(RELAIS, OUTPUT); //met la broche en sortie // ------- Broches en entrée ------- pinMode(BP, INPUT); //met la broche en entree // ------- Activation du rappel au + interne des broches en entrée si nécessaire ------- digitalWrite(BP, HIGH) ; // activation du pullup de la broche en entrée } // fin de la fonction setup() // ******************************************************************************** //*************** FONCTION LOOP = Boucle sans fin = coeur du programme ************* // la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension void loop(){ // debut de la fonction loop() // --- ici instructions à exécuter par le programme principal --- if (digitalRead(BP)==APPUI) { // si appui sur BP etatRelais=!etatRelais; // inverse l'état du relais digitalWrite(RELAIS,etatRelais); // met la broche de commande dans l'état voulu delay (500); // pause anti-rebond - évite double prise en compte appui BP } // fin if } // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin // ******************************************************************************** //*************** Autres Fonctions du programme ************* // --- Fin programme --- |