Modifications

Sauter à la navigation Sauter à la recherche
1 351 octets ajoutés ,  22 avril 2012 à 17:29
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 ==
29 917

modifications

Menu de navigation