Ligne 47 : |
Ligne 47 : |
| === Montage en image === | | === Montage en image === |
| [[Fichier:ReedSwitch-montage.jpg|450px]] | | [[Fichier:ReedSwitch-montage.jpg|450px]] |
| + | |
| + | === Programme === |
| + | |
| + | <nowiki>/* |
| + | * Utilisation d'un contact magnétique (reed switch) |
| + | * avec déparasitage logiciel. |
| + | * |
| + | * La LED s'allume quand le contact est ouvert |
| + | * (équivalent de la porte ouverte) |
| + | */ |
| + | |
| + | int switchPin = 2; // Bouton connecté à la pin 2 (pull-down) |
| + | // HIGH=contact fermé=porte fermée (aimant proche) |
| + | // LOW =contact ouvert=porte ouverte (aimant éloigné) |
| + | int ledPin = 8; // LED qui indique quand la porte est ouverte |
| + | |
| + | int switchState; // état du switch magnétique |
| + | |
| + | void setup(){ |
| + | pinMode( switchPin, INPUT ); |
| + | pinMode( ledPin, OUTPUT ); |
| + | |
| + | // Lecture etat Switch |
| + | switchState = digitalRead( switchPin ); |
| + | // éteindre/allumer la LED si porte fermée/ouverte |
| + | digitalWrite( ledPin, !(switchState) ); |
| + | } |
| + | |
| + | void loop(){ |
| + | |
| + | // Lecture de l'état du switch avec déparasitage logiciel |
| + | int val = digitalRead( switchPin ); |
| + | delay( 10 ); |
| + | int val2 = digitalRead( switchPin ); |
| + | |
| + | // Changement d'état ? |
| + | if( (val == val2) && (val != switchState ) ) { |
| + | if( val == LOW ) { |
| + | // PORTE OUVERTE -> Allumer LED |
| + | digitalWrite( ledPin, HIGH ); |
| + | } |
| + | else { |
| + | // PORTE FERMEE - éteindre LED |
| + | digitalWrite( ledPin, LOW ); |
| + | } |
| + | switchState = val; |
| + | } |
| + | } |
| + | </nowiki> |
| | | |
| == Ou achetez == | | == Ou achetez == |