Paso 4: Codificador rotatorio + Arduino
Conecte los cables como se muestra en fotos y prueba de circuito de arduino. Use cualquier salida PWM.
Aquí está el código:
//
int brillo;
currentTime largo sin firmar;
loopTime largo sin firmar;
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;
Boolean lastButton = alto;
Boolean currentButton = alto;
void setup() {}
pinMode (ledPin, salida);
pinMode (pin_A, INPUT_PULLUP);
pinMode (pin_B, INPUT_PULLUP);
pinMode (buttonPin, INPUT_PULLUP);
currentTime = millis();
loopTime = currentTime;
}
debounce(boolean last) Boolean
{
booleano actual = digitalRead(buttonPin); Si (último! = corriente) {delay(5); actual = digitalRead(buttonPin);} vuelta actual; }
void loop() {}
currentButton = debounce(lastButton);
Si (lastButton == alto & & currentButton == LOW)
{
brillo brillo = 255;
}
lastButton = currentButton;
Si brillo (brillo > 255) = 0;
currentTime = millis();
Si (currentTime > = (loopTime + 5))
{
encoder_A = digitalRead(pin_A);
encoder_B = digitalRead(pin_B);
if((!encoder_A) & & (encoder_A_prev))
{
if(encoder_B)
{
Si (brillo + 5 < = 255) brillo += 5;
}
otra cosa
{
Si (brillo - 5 > = 0) brillo-= 5;
}
}
encoder_A_prev = encoder_A;
analogWrite (ledPin, brillo);
loopTime = currentTime;
}
}
//