Ligne 5 : |
Ligne 5 : |
| Il est possible de changer le code facilement de manière à optimiser le réveil à vos besoins. | | Il est possible de changer le code facilement de manière à optimiser le réveil à vos besoins. |
| | | |
− | Je vais vous expliquer comment modifier la mélodie et ajouter un autre hack (un GONG).
| + | L'alarme n° 1 est tout spécialement destiné au hacking (personnalisation) du réveil. |
| + | |
| + | Vous pourrez modifier la mélodie et ajouter un hack pour faire sonner un gong, une clochette, etc. |
| + | |
| + | Le code du réveil est disponible, vous pourrez donc le modifier à votre guise. |
| + | |
| + | Pour les Hack faisant intervenir du matériel complémentaire, nous avons prévu un connecteur complémentaire à l'arrière du réveil. |
| + | |
| + | Celui-ci est raccordé sur différentes entrées/sorties encore libre sur notre Arduino. |
| + | |
| + | [[Fichier:Mon-Reveil-83a.jpg|480px]] |
| + | |
| == Mélodies == | | == Mélodies == |
| | | |
Ligne 11 : |
Ligne 22 : |
| Il est possible de changer simplement de mélodie en changant le nom de celle-ci dant la variable '''MELODIE'''. | | Il est possible de changer simplement de mélodie en changant le nom de celle-ci dant la variable '''MELODIE'''. |
| | | |
− | L'ensemble des mélodies se trouvent dans le fichier '''melodie.h'''. | + | L'ensemble des mélodies sont définies dans le fichier '''melodie.h'''. |
| + | |
| + | Pour modifier la mélodie, il faut changer la ligne portant la mention {{fname|const int MELODIE[][2]}} |
| | | |
| <syntaxhighlight lang="c"> | | <syntaxhighlight lang="c"> |
Ligne 17 : |
Ligne 30 : |
| // Changer MARIO | | // Changer MARIO |
| const int MELODIE[][ 2 ] = MARIO; | | const int MELODIE[][ 2 ] = MARIO; |
| + | </syntaxhighlight> |
| + | |
| + | Ou encore: |
| + | |
| + | <syntaxhighlight lang="c"> |
| // Par AXEL_F | | // Par AXEL_F |
| const int MELODIE[][ 2 ] = AXEL_F; | | const int MELODIE[][ 2 ] = AXEL_F; |
Ligne 62 : |
Ligne 80 : |
| Malheureusement, nous avons pas trouvé un outil capable de convertir une musique (entière) en mélodie polyphonique. | | Malheureusement, nous avons pas trouvé un outil capable de convertir une musique (entière) en mélodie polyphonique. |
| | | |
− | == Les 3 phases des alarmes == | + | == Les 3 fonctions de contrôle d'alarmes == |
| | | |
− | Premièrement, il est nécessaire de comprendre les 3 fonctions principale. Chacune de ses fonctions sont appelées à chacune des phases des alarmes. | + | Premièrement, il est nécessaire de comprendre les 3 fonctions principales. Chacune de ces fonctions est appelée à chacune des phases des alarmes. |
| | | |
− | Chaque fois qu'une alarme change de phase, elle envoie comme argument la position de l'alarme (dans notre cas de 0 à 3). Il est donc facile de personnaliser chacunes des alarmes. | + | Chaque fois qu'une alarme change de phase, elle envoie comme argument l'index identifiant l'alarme (dans notre cas de 0 à 3, 0 étant la première alarme). |
| + | |
| + | Il est donc facile de personnaliser chacune des alarmes. L'alarme 1 (index = 0) étant libre à la personnalisation, les 3 autres alarmes jouent la mélodie sur le piezo buzzer. |
| | | |
| Voici les 3 fonctions: | | Voici les 3 fonctions: |
| <syntaxhighlight lang="c"> | | <syntaxhighlight lang="c"> |
| /* | | /* |
− | * Alarme qui commence à sonner | + | * Fonction appelée lorsque l'Alarme doit commencer à sonner. |
| */ | | */ |
| void alarmeStart( int alarmePos ){ | | void alarmeStart( int alarmePos ){ |
Ligne 78 : |
Ligne 98 : |
| | | |
| /* | | /* |
− | * Pendant que l'alarme sonne, répéter une étape | + | * Fonction appelée répétitivement pendant que l'alarme sonne. |
− | */ | + | * Cette fonction permet de réaliser des opérations à intervalle régulier. |
| + | */ |
| void alarmePulse( int alarmePos ){ | | void alarmePulse( int alarmePos ){ |
| jouerMelodie(); | | jouerMelodie(); |
Ligne 85 : |
Ligne 106 : |
| | | |
| /* | | /* |
− | * Alarme qui cesse de sonner | + | * Fonction appelée lorsque l'alarme doit cesser de fonctionner |
| */ | | */ |
| void alarmeStop( int alarmePos ){ | | void alarmeStop( int alarmePos ){ |
Ligne 92 : |
Ligne 113 : |
| </syntaxhighlight> | | </syntaxhighlight> |
| | | |
− | * '''alarmeStart''' est appelée quand une alarme se met en route. | + | En résumé: |
− | * '''alarmePulse''' est appelée durant le moment où l'alarme est active. | + | * '''alarmeStart''' est appelée quand l'alarme doit démarrer. |
− | * '''alarmeStop''' est appelée quand une alarme s'arrête. | + | * '''alarmePulse''' est appelée répétitivement pendant que l'alarme est active. |
| + | * '''alarmeStop''' est appelée quand une alarme doit s'arrête. |
| | | |
− | == Exemples de hacks ==
| |
| | | |
− | Je vais vous montrer comment ajouter facilement différentes fonctionnalités à vos alarmes.
| + | == Hack d'alimentations == |
− | | + | Parmi les hacks, nous utilisons un servo moteur (mais cela serait également vrai avec un solénoïde). |
− | === Hack d'alimentations ===
| + | |
| + | Un servo moteur consomme plus de courant que le régulateur de tension d'un Arduino peut délivrer (350mA). |
| | | |
− | Le servo moteur consomme plus de ressources que l'Arduino peut fournir, il est donc nécessaire d'utiliser une alimentation supplémentaire.
| + | Il est donc nécessaire: |
| + | * soit d'utiliser une alimentation supplémentaire pour le servo moteur. |
| + | * soit d'alimenter directement la carte Arduino en 5V. |
| | | |
− | Je vous propose plusieurs montages possibles, à vous de choisir celui qui vous convient le mieux.
| + | Nous vous proposons ici plusieurs montages possibles, à vous de choisir celui qui vous convient le mieux. |
| | | |
| Voici le schéma simplifié des connectiques des alimentations de l'Arduino : | | Voici le schéma simplifié des connectiques des alimentations de l'Arduino : |
Ligne 110 : |
Ligne 134 : |
| [[Fichier:Mon-Reveil-104.jpg|640px]]<small><br />''Cliquez pour agrandir''</small> | | [[Fichier:Mon-Reveil-104.jpg|640px]]<small><br />''Cliquez pour agrandir''</small> |
| | | |
− | ==== Pont entre 5V et Vin ====
| + | === Pont entre 5V et Vin === |
| + | Ce moyen permet de contourner le régulateur de tension au niveau de l'entrée Jack et donc de fournir directement le courant nécessaire au circuit 5V de votre Arduino. |
| | | |
− | Ce moyen permet de contourner le régulateur de tension au niveau de l'entrée Jack et donc de fournir directement le courant nécessaire au circuit 5v.
| + | [[Fichier:Mon-Reveil-106.jpg|640px]]<small><br />''Cliquez pour agrandir''</small> |
| | | |
− | [[Fichier:Mon-Reveil-106.jpg|640px]]<small><br />''Cliquez pour agrandir''</small>
| + | {{ambox|text=Truc et actuce: si vous avez monté le connecteur 6 broches à l'arrière de votre réveil, vous pourrez aussi réaliser le pontage Vin -> 5V directement sur ce connecteur :-) }} |
| | | |
| * '''Avantages''' | | * '''Avantages''' |
| ** Propre niveau du câblages. | | ** Propre niveau du câblages. |
| ** Un seul fil nécessaire. | | ** Un seul fil nécessaire. |
− | ** Une seule alimentation nécessaire. | + | ** Une seule alimentation 5V nécessaire (directement sur le connecteur Jack d'Arduino). |
| * '''Inconvénients''' | | * '''Inconvénients''' |
− | ** Nécessite uniquement une alimentation de 5V. | + | ** <font color="red">Risque d'endommager les composants de l'Arduino si vous appliquez une tension supérieur à 5V.</font> |
− | ** Risque d'endommager les composants de l'Arduino.
| + | ** <font color="red">Le circuit ne peut être alimenté que par une seule alimentation à la fois! Hors de question de brancher l'USB et l'alimentation 5V en même temps... au risque de détériorer votre Arduino.</font> |
− | ** On ne peut que alimenter l'ensemble du circuit avec une seule alimentation ! | |
| | | |
| {{ambox-stop | text = Connectez uniquement une alimentation de 5v !}} | | {{ambox-stop | text = Connectez uniquement une alimentation de 5v !}} |
| | | |
− | ==== Alimenter le moteur avec une autre alimentation. ====
| + | === Alimenter le moteur avec une seconde alimentation. === |
| | | |
| [[Fichier:Mon-Reveil-108.jpg|320px]]<small><br />''Cliquez pour agrandir''</small> | | [[Fichier:Mon-Reveil-108.jpg|320px]]<small><br />''Cliquez pour agrandir''</small> |
| | | |
| * '''Avantages''' | | * '''Avantages''' |
− | ** En cas de problèmes, l'Arduino n'est pas endommagé. | + | ** Ne risque pas d'endommager votre Arduino (si vous vous tromper de tension d'alimentation). |
| ** Les plages des tensions pour alimenter le moteur se trouvent entre 4.8v et 6v. | | ** Les plages des tensions pour alimenter le moteur se trouvent entre 4.8v et 6v. |
| * '''Inconvénients''' | | * '''Inconvénients''' |
| ** Nécessite une deuxième alimentation. | | ** Nécessite une deuxième alimentation. |
− | ** Nécessite de faire de nouvelles liaisons. | + | ** Nécessite de réaliser des connexions supplémentaires. |
| | | |
− | ==== Alimenter l'arduino en 5V directement ====
| + | === Alimenter l'arduino en 5V directement === |
| | | |
| [[Fichier:Mon-Reveil-109.jpg|300px]]<small><br />''Cliquez pour agrandir''</small> | | [[Fichier:Mon-Reveil-109.jpg|300px]]<small><br />''Cliquez pour agrandir''</small> |
Ligne 145 : |
Ligne 169 : |
| ** L'ensemble de l'Arduino possède une entrée 5v avec plus d'intensité | | ** L'ensemble de l'Arduino possède une entrée 5v avec plus d'intensité |
| * '''Inconvénients''' | | * '''Inconvénients''' |
− | ** Nécessite uniquement une alimentation de 5V. | + | ** <font color="red">Nécessite une alimentation de 5V. Toute tension supérieure détruira votre Arduino.</font> |
− | ** Risque d'endommager les composants de l'Arduino.
| + | ** <font color="red">Le circuit ne peut être alimenter que par une seule source d'alimentation ! Hors de question de brancher votre Arduino en USB en meêm temps que l'alimentation externe.</font> |
− | ** On ne peut que alimenter l'ensemble du circuit avec une seule alimentation ! | |
| | | |
| {{ambox-stop | text = Connectez uniquement une alimentation de 5v ! Toute tension supérieure injectera une surtension sur le circuit 5V du microcontrôleur et détruira votre Arduino.}} | | {{ambox-stop | text = Connectez uniquement une alimentation de 5v ! Toute tension supérieure injectera une surtension sur le circuit 5V du microcontrôleur et détruira votre Arduino.}} |
| | | |
− | === Faire sonner une clochette ===
| + | == Faire sonner une clochette == |
| | | |
| Pour faire sonner une clochette, il sera nécessaire d'utiliser un servo moteur, une clochette, une alimentation supplémentaire et un support/pied. | | Pour faire sonner une clochette, il sera nécessaire d'utiliser un servo moteur, une clochette, une alimentation supplémentaire et un support/pied. |
| + | |
| + | {{ambox|text=L'activation permanente du servo moteur à répétition créera des appels de courant important sur le régulateur de tension de votre Arduino. Les chutes de tension que cela va provoquer fera redémarrer votre Arduino. |
| + | |
| + | IL FAUT DONC OPTER POUR UNE SOURCE D'ALIMENTATION EXTERNE!}} |
| + | |
| + | Dans notre cas de figure, nous avons opté pour un pontage Vin -> 5V (décrit au point précédent) avec l'utilisation d'une {{pl|311|alimentation externe 5V}}. |
| + | |
| {{#Widget:Iframe | | {{#Widget:Iframe |
| |url=https://www.youtube.com/embed/N0VNmWjmfHs | | |url=https://www.youtube.com/embed/N0VNmWjmfHs |
Ligne 160 : |
Ligne 190 : |
| |border=0 | | |border=0 |
| }} | | }} |
− | ==== Choix du matériel ====
| + | === Choix du matériel === |
− | | |
| * Pour la clochette, nous avons choisi une clochette pour chats. | | * Pour la clochette, nous avons choisi une clochette pour chats. |
| * Pour le servo moteur, nous avons pris un {{pl|64|micro servo moteur}} | | * Pour le servo moteur, nous avons pris un {{pl|64|micro servo moteur}} |
| * Pour le support, nous avons utilisé des pièces du {{pl|328|kit MakerBeam}} | | * Pour le support, nous avons utilisé des pièces du {{pl|328|kit MakerBeam}} |
− | * Pour l'alimentation supplémentaire de 5V (avec le 5V injecté directement sur le 5V de l'Arduino). | + | * Une {{pl|311|alimentation 5V externe}} (avec le 5V injecté directement sur le 5V de l'Arduino). |
| | | |
− | ==== Code ====
| + | === Code === |
| + | |
| + | {{download-box|Code exemple de la clochette sur Github|https://github.com/mchobby/Mon-Reveil-1/blob/master/Exemples/clochette.ino}} |
| | | |
| Premièrement, il sera nécessaire d'ajouter dans l'entête : | | Premièrement, il sera nécessaire d'ajouter dans l'entête : |
Ligne 194 : |
Ligne 225 : |
| monServo.attach( SERVO_MOTEUR ); | | monServo.attach( SERVO_MOTEUR ); |
| | | |
− | // Position du servo de base | + | // Position de base du servo de base |
| monServo.write( 1 ); | | monServo.write( 1 ); |
| + | // laisser au servo le temps de se positionner |
| delay( 500 ); | | delay( 500 ); |
| | | |
− | // Désactiver le servo | + | // Désactiver l'asservissement du servo |
| + | // pour qu'il ne fasse plus de bruit. |
| monServo.detach(); | | monServo.detach(); |
| } | | } |
| </syntaxhighlight> | | </syntaxhighlight> |
| | | |
− | Dans les différentes phases, on va définir que uniquement l'alarme 1 possède le réveil sonnette et les autres possèdent la mélodie. | + | Dans les différentes phases, seul l'alarme 1 (alarmPos=0) active la sonnette et les autres alarmes activent la mélodie. |
| | | |
| <syntaxhighlight lang="c"> | | <syntaxhighlight lang="c"> |
Ligne 219 : |
Ligne 252 : |
| | | |
| /* | | /* |
− | * Pendant que l'alarme sonne, répéter une étape | + | * Pendant que l'alarme sonne: |
| + | * balancer la clochette -OU- jouer un morceau de la mélodie |
| */ | | */ |
| void alarmePulse( int alarmePos ){ | | void alarmePulse( int alarmePos ){ |
Ligne 225 : |
Ligne 259 : |
| if( alarmePos == 0) | | if( alarmePos == 0) |
| jouerMoteur(); | | jouerMoteur(); |
− | // Sonnerie | + | |
| else | | else |
| + | // Sonnerie |
| jouerMelodie(); | | jouerMelodie(); |
| } | | } |
Ligne 243 : |
Ligne 278 : |
| </syntaxhighlight> | | </syntaxhighlight> |
| | | |
− | * '''activerMoteur();''' dans cette fonction, il faudrait remettre le servo à l'angle zéro, au cas ou il n'est pas encore définit à cette position. | + | * '''activerMoteur();''' dans cette fonction, il remettre le servo à l'angle zéro, au cas ou il n'est pas encore à cette position. |
− | * '''jouerMoteur();''' dans cette fonction, il faudrait changer la position du servo moteur de façon à faire sonner le gong. | + | * '''jouerMoteur();''' dans cette fonction, il faut changer la position du servo moteur régulièrement de façon à faire sonner la clochette (ou un gong). |
− | * '''stopMoteur();''' dans cette fonction, il faudrait remettre le servo à l'angle zéro. | + | * '''stopMoteur();''' dans cette fonction, remettre le servo à l'angle zéro. |
| | | |
| <syntaxhighlight lang="c"> | | <syntaxhighlight lang="c"> |
Ligne 265 : |
Ligne 300 : |
| moteurTempsAvant = estIlTemps; | | moteurTempsAvant = estIlTemps; |
| | | |
− | // Inverser le sens | + | // Inverser le sens de rotation du servo |
| sens *= -1; | | sens *= -1; |
− | // Bouger le servo de 1° à 46° | + | // Bouger le servo entre 1° à 61° |
| monServo.write( 31 + (sens*30) ); | | monServo.write( 31 + (sens*30) ); |
| } | | } |
| } | | } |
| + | |
| void stopMoteur(){ | | void stopMoteur(){ |
| monServo.write( 1 ); | | monServo.write( 1 ); |
Ligne 304 : |
Ligne 340 : |
| </syntaxhighlight> | | </syntaxhighlight> |
| | | |
− | === Activer une peluche qui danse et chante ===
| + | == Activer une peluche qui danse et chante == |
| | | |
| Pour interagir avec la peluche, il sera nécessaire de posséder une peluche et deux relais (dans notre cas). | | Pour interagir avec la peluche, il sera nécessaire de posséder une peluche et deux relais (dans notre cas). |
Ligne 352 : |
Ligne 388 : |
| | | |
| ==== Code ==== | | ==== Code ==== |
| + | |
| + | {{download-box|Code exemple de la peluche sur Github|https://github.com/mchobby/Mon-Reveil-1/blob/master/Exemples/renard.ino}} |
| + | |
| Premièrement, il sera nécessaire d'ajouter dans l'entête : | | Premièrement, il sera nécessaire d'ajouter dans l'entête : |
| <syntaxhighlight lang="c"> | | <syntaxhighlight lang="c"> |
Ligne 434 : |
Ligne 473 : |
| </syntaxhighlight> | | </syntaxhighlight> |
| | | |
− | === Activer un relais ===
| + | == Activer un relais == |
| | | |
| Pour activer un matériel électronique, il sera nécessaire d'utiliser un relais. | | Pour activer un matériel électronique, il sera nécessaire d'utiliser un relais. |
Ligne 446 : |
Ligne 485 : |
| }} | | }} |
| | | |
− | ==== Choix du matériel ====
| + | === Choix du matériel === |
| | | |
| * Pour le relais, nous avons choisis le {{pl|1289|Power Switch Tail}}, qui est un relais protégé par un boîtier. Ce relais est alimenté directement par le secteur. Ensuite, le circuit base tension est isolé du circuit haute tension. | | * Pour le relais, nous avons choisis le {{pl|1289|Power Switch Tail}}, qui est un relais protégé par un boîtier. Ce relais est alimenté directement par le secteur. Ensuite, le circuit base tension est isolé du circuit haute tension. |
Ligne 452 : |
Ligne 491 : |
| [[Fichier:Mon-Reveil-Hack-10a.png|480px]] | | [[Fichier:Mon-Reveil-Hack-10a.png|480px]] |
| | | |
− | ==== Code ==== | + | {| class="wikitable" border="1" |
| + | |- |
| + | | align="center" | PowerSwitchTail |
| + | | align="center" | Arduino |
| + | |- style="font-size: 90%" |
| + | | align="left" | 1: +IN |
| + | | align="left" | 12 |
| + | |- style="font-size: 90%" |
| + | | align="left" | 2: -IN |
| + | | align="left" | GND (masse) |
| + | |} |
| + | |
| + | === Code === |
| + | |
| + | {{download-box|Code exemple du relais sur Github|https://github.com/mchobby/Mon-Reveil-1/blob/master/Exemples/relai.ino}} |
| | | |
| Premièrement, il sera nécessaire d'ajouter la broche utilisé (la N° 12) pour commander le PowerSwitchTail. | | Premièrement, il sera nécessaire d'ajouter la broche utilisé (la N° 12) pour commander le PowerSwitchTail. |
Ligne 531 : |
Ligne 584 : |
| </syntaxhighlight> | | </syntaxhighlight> |
| | | |
− | === Jouer la mélodie d'une boîte à musique === | + | == La boîte à musique == |
| | | |
− | Pour jouer la mélodie de la boîte à musique, il sera nécessaire d'utiliser un servo moteur. | + | Pour jouer la mélodie de la boîte à musique, il sera nécessaire d'utiliser un servo moteur, un régulateur pwm et d'utiliser deux entrées de l'arduino, dont une en PWM. |
| | | |
− | ''' VIDEO '''
| + | Voir la [https://youtu.be/-50OEOMNhro vidéo sur YouTube]. |
| | | |
− | ==== Choix du matériel ==== | + | {{#Widget:Iframe |
| + | |url=https://www.youtube.com/embed/-50OEOMNhro |
| + | |width=420 |
| + | |height=315 |
| + | |border=0 |
| + | }} |
| + | |
| + | === Choix du matériel === |
| + | * Nous avons trouvé la boîte à musique dans le commerce (site [http://fridolin.de/ officiel]). |
| + | * {{pl|155|Pont-H L293D}} permettant de commander un moteur à partir d'un Arduino. L'utilisation d'un signal PWM sur une broche Arduino permettra de contrôler plus finement la vitesse du moteur. Voir aussi le [[Pont-H L293D|tutoriel sur le pont-H L293]] |
| + | * {{pl|438|Un mini moteur avec boîte de réduction}} disponible chez MC Hobby. |
| + | |
| + | === Branchement === |
| + | |
| + | Pour brancher le moteur avec le régulateur : |
| + | |
| + | Petit erratum: La broche Enable est branchée sur Arduino #12 (et non pas #2 comme libellé sur le breadboard). |
| + | |
| + | [[Fichier:Mon-Reveil-Hack-10b.jpg|480px]] |
| + | |
| + | Pour plus d'informations, visitez [[Pont-H L293D|tutoriel L293D sur notre wiki]]. |
| + | |
| + | === Code === |
| | | |
− | * Nous avons trouvé la boîte à musique dans le commerce.
| + | {{download-box|Code exemple de la boîte à musique sur Github|https://github.com/mchobby/Mon-Reveil-1/blob/master/Exemples/boite-a-musique.ino}} |
− | * (disponible sur le [ shop])
| |
− | ==== Code ====
| |
| | | |
| Premièrement, il sera nécessaire d'ajouter dans l'entête : | | Premièrement, il sera nécessaire d'ajouter dans l'entête : |
Ligne 550 : |
Ligne 623 : |
| | | |
| // -- Boite à musique -- | | // -- Boite à musique -- |
− | | + | #define BOITE_ENABLE 11 |
| + | #define BOITE_INPUT 6 |
| | | |
| ... | | ... |
Ligne 561 : |
Ligne 635 : |
| | | |
| // ### ZONE HACK ### | | // ### ZONE HACK ### |
− | | + | pinMode( BOITE_ENABLE, OUTPUT ); |
| + | pinMode( BOITE_INPUT, OUTPUT ); |
| + | digitalWrite( BOITE_ENABLE , LOW ); |
| | | |
| } | | } |
Ligne 606 : |
Ligne 682 : |
| </syntaxhighlight> | | </syntaxhighlight> |
| | | |
− | * '''activerBoite();''' dans cette fonction, il faudrait simplement activer le relais. | + | * '''activerBoite();''' dans cette fonction, il faudrait simplement activer l'entrée enable 2. |
− | * '''jouerBoite''' | + | * '''jouerBoite();''' dans cette fonction, on définira la vitesse (en pwm) du moteur. |
− | * '''stopBoite();''' dans cette fonction, il faudrait simplement stopper le relais. | + | * '''stopBoite();''' dans cette fonction, il faudrait simplement désactiver l'entrée enable 2. |
− | | |
| <syntaxhighlight lang="c"> | | <syntaxhighlight lang="c"> |
| void activerBoite(){ | | void activerBoite(){ |
− |
| + | digitalWrite( BOITE_ENABLE , HIGH ); |
| } | | } |
| void jouerBoite(){ | | void jouerBoite(){ |
− | | + | // La vitesse en pwm, dans notre cas 220, peut varier de 0 à 255 |
| + | analogWrite( BOITE_INPUT , 220); |
| } | | } |
| void stopBoite(){ | | void stopBoite(){ |
− | | + | digitalWrite( BOITE_ENABLE , LOW ); |
| } | | } |
| </syntaxhighlight> | | </syntaxhighlight> |