Etape 7: Valeur de contrôle modification de la vitesse basée sur la pression d’un bouton poussoir
Si le bouton est pressé une fois, la valeur passera par un.
Mais si la touche est enfoncée en permanence, augmentera la valeur d’un en permanence à la
début. Et plus tard, on la valeur augmentera de 10 en permanence. Et continuer 100 cas
en appuyant sur le bouton.
Button_07
Contrôle de changement de vitesse basé sur la pression d’un bouton poussoir
//
créé par uvvvvw
2015-04-05
//
#include
#include
LiquidCrystal_I2C lcd(0x27,16,2) ; mettre l’adresse de LCD sur 0 x 27 pour un 16 caractères et affichage de la ligne 2
//
const int bouton = 12 ; Définir la broche bouton
int Button_still_pressed = faible ; État du bouton
Button_count long = 0 ; Enregistrer le temps de pressage
Valeur long = 0 ; Valeur qui passera alors que la touche
//
//
void setup()
{
pinMode (entrée, bouton) ;
digitalWrite (bouton, élevé) ; Utilisation interne tirer vers le haut de résistance pour le bouton. Elle a sauvé une résistance pour le bouton.
//
LCD.init() ;
Delay(400) ;
LCD.init() ;
LCD.Clear() ;
LCD.Cursor() ;
LCD.Blink() ;
LCD.backlight() ;
//
lcd.setCursor(0,0) ;
LCD.Print(value) ;
}
//
//
void loop()
{
{}
Si (digitalRead(Button) == faible) //if touche
{
Button_still_pressed = élevé ;
Button_count ++ ;
//
Si (Button_count < 20)
{
Valeur ++ ;
lcd.setCursor(0,0) ;
LCD.Print(value) ;
LCD.Print("") ;
}
d’autre
{
Si (Button_count < 100)
{
Valeur = valeur + 10 ;
lcd.setCursor(0,0) ;
LCD.Print(value) ;
LCD.Print("") ;
}
d’autre
{
Button_count = 100 ;
Valeur = valeur + 100 ;
lcd.setCursor(0,0) ;
LCD.Print(value) ;
LCD.Print("") ;
}
}
}
d’autre
{
Button_still_pressed = bas ;
Button_count = 0 ;
}
Delay(300) ; Un moyen très simple de gérer le bouton rebondir, mais la nécessité d’ajuster le temps de retard afin d’optimiser le résultat.
} tout en (Button_still_pressed) ;
//
}