domenica 20 luglio 2014

Pulsantiera su un solo ingresso.


NOTA
Nel listato che segue le resistenze non hanno il valore di cui sopra. Esso si riferisce alla shield LCD della DFRobat con pulsanti.

/*
Una serie di 5 resistenze fanno capo al pin A0.
5 Pulsanti, ciascuno ad ogni pressione cortocircuita una o
più resistenze variando il valore di tensione su A0.

*/
    #include <LiquidCrystal.h>
    
    LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
    
    # define Pulsanti  A0  
    
    long Value=   0;
 
    
    void setup()  
    {  pinMode(Pulsanti, INPUT);    
       lcd.begin(16, 2);       
       Serial.begin(9600);      } 
       
    void loop() {
      
      Value = analogRead(Pulsanti);
       
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("VALUE");
        lcd.setCursor(12, 0);
        lcd.print(Value);
        Serial.print("VALUE  ");
        Serial.println(Value);
    
      if (Value >1020) 
           {lcd.setCursor(13, 0);
            lcd.setCursor(0, 1);
            lcd.print("TASTI OFF "); 
            Serial.print("TASTI OFF  ");  }
      
      if (Value >=0 && Value <=20) 
           {lcd.setCursor(13, 0);
            lcd.setCursor(0, 1);
            lcd.print("TASTI UNO"); 
            Serial.print("TASTI UNO");  }  
            
       if (Value >=90 && Value <=110) 
           {lcd.setCursor(13, 0);
            lcd.setCursor(0, 1);
            lcd.print("TASTO DUE"); 
            Serial.print("TASTO DUE");  }    
   
        if (Value >=240 && Value <=265) 
           {lcd.setCursor(13, 0);
            lcd.setCursor(0, 1);
            lcd.print("TASTO TRE"); 
            Serial.print("TASTO TRE");  }
            
        if (Value >=390 && Value <=415) 
           {lcd.setCursor(13, 0);
            lcd.setCursor(0, 1);
            lcd.print("TASTO QUATTRO"); 
            Serial.print("TASTO QUATTRO");  } 
            
        if (Value >=600 && Value <=700) 
           {lcd.setCursor(13, 0);
            lcd.setCursor(0, 1);
            lcd.print("TASTO CINQUE"); 
            Serial.print("TASTO CINQUE");  }             
            
    delay(300);
    
    }

Breve commento:La pressione di un pulsante varia il valore di una 
delle due resistenze del partitore, non rimane quindi che leggere
 il valore analogico e porre le condizioni "if" se il valore è 
compreso fra -10% e +10% (o altra tolleranza).

Nessun commento:

Posta un commento