Étape 4: Molette + Arduino
Connecter les fils comme indiqué dans les images et le circuit d’essai sur arduino. Utilisez n’importe quelle sortie PWM.
Voici le code :
//
int luminosité ;
unsigned long currentTime ;
unsigned long loopTime ;
const int pin_A = 2 ;
const int pin_B = 3 ;
int buttonPin = 4 ;
const int ledPin = 9 ;
unsigned char encoder_A ;
unsigned char encoder_B ;
unsigned char encoder_A_prev = 0 ;
lastButton booléen = élevé ;
currentButton booléen = élevé ;
void setup() {}
pinMode (ledPin, sortie) ;
pinMode (pin_A, INPUT_PULLUP) ;
pinMode (pin_B, INPUT_PULLUP) ;
pinMode (buttonPin, INPUT_PULLUP) ;
currentTime = millis() ;
loopTime = currentTime ;
}
debounce(boolean last) booléenne
{
courant booléen = digitalRead(buttonPin) ; Si (dernier! = courant) {delay(5) ; courant = digitalRead(buttonPin);} retour actuel ; }
void loop() {}
currentButton = debounce(lastButton) ;
Si (lastButton == HIGH & & currentButton == faible)
{
luminosité = luminosité + 255 ;
}
lastButton = currentButton ;
Si éclat (luminosité > 255) = 0 ;
currentTime = millis() ;
Si (heureactuelle > = (loopTime + 5))
{
encoder_A = digitalRead(pin_A) ;
encoder_B = digitalRead(pin_B) ;
if((!encoder_A) & & (encoder_A_prev))
{
if(encoder_B)
{
Si (luminosité + 5 < = 255) luminosité += 5 ;
}
d’autre
{
Si (luminosité - 5 > = 0) luminosité-= 5 ;
}
}
encoder_A_prev = encoder_A ;
analogWrite (ledPin, luminosité) ;
loopTime = currentTime ;
}
}
//