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--------------
       

Nessun commento:

Posta un commento