Visualizzazione post con etichetta Fronti. Mostra tutti i post
Visualizzazione post con etichetta Fronti. Mostra tutti i post

sabato 10 gennaio 2015

Senso di rotazione.



     /* Due fotointerruttori a forcella affiancati.
        Il fascio di luce viene interrotto da un disco rotante.
        Il senso di rotazione viene stabilito in
        funzione di quale fotodiodo viene illuminato
        per primo.
     */     
      int canaleA=6;
      int canaleB=9;
      int contatore=0;
      boolean avanti;
      boolean indietro;
      boolean memoriaA;
      boolean memoriaB;
      boolean direzione;
       
      void setup()
          { Serial.begin(9600);
            pinMode(6,INPUT);
            pinMode(9,INPUT); }
      
      void loop() {
      
      canaleA=digitalRead(6);
      canaleB=digitalRead(9);
      Serial.print(contatore);
      Serial.print("  Avanti ");
      Serial.print(avanti);
      Serial.print("  indietro ");
      Serial.println(indietro);
                
      if ( canaleB==1 && canaleA==1)
         { direzione=1;
           memoriaA=0;
           memoriaB=0;             }
  
      if ( canaleA==0 && direzione==1)
         { indietro=1;
           avanti=0;
           direzione=0;              }
    
      if ( canaleB==0 && direzione==1)
         { avanti=1;
           indietro=0;
           direzione=0;              }
              
     if ( canaleB==0 && avanti==1 && memoriaA==0)
        { contatore=contatore+1;
          memoriaA=1;                           }
   
     if ( canaleA==0 && indietro==1 && memoriaB==0)
        { contatore=contatore-1;
          memoriaB=1;                             }
       
     
    }//---------FINE LOOP--------------
       

martedì 9 dicembre 2014

Fronte di discesa



      # define SWITCH1 2
      # define LED1    8
     
      int buttonPin  = 2;     
      int ledPin     = 8;   
      int buttonState      = 0;    
      int lastButtonState  = 0;    
      int ledState         = 0;     
      
      void setup() 
          { pinMode(buttonPin, INPUT);  
            pinMode(ledPin, OUTPUT); }
       
      void loop() {
   
      buttonState = digitalRead(SWITCH1);
         if ( buttonState != lastButtonState)
            { if ( buttonState == 0) 
                 { if( ledState==0 )
                       ledState=1;
                   else ledState=0;   }
             lastButtonState = buttonState;}
      digitalWrite(LED1, ledState);
        delay(20);
      }

Fronte di salita


      # define SWITCH1 2
      # define LED1    8
     
      int buttonPin  = 2;     
      int ledPin     = 8;   
      int buttonState      = 0;    
      int lastButtonState  = 0;    
      int ledState         = 0;     
      
      void setup() 
          { pinMode(buttonPin, INPUT);  
            pinMode(ledPin, OUTPUT); }
       
      void loop() {
   
      buttonState = digitalRead(SWITCH1);
         if ( buttonState != lastButtonState)
            { if ( buttonState == 1) 
                 { if( ledState==1 )
                       ledState=0;
                   else ledState=1;   }
             lastButtonState = buttonState;}
      digitalWrite(LED1, ledState);
        delay(20);
      }