Olá a todos,
Estou tentando completar um projeto Arduino no Tinkercad onde preciso fazer esta atividade Arduino, que requer a construção de um circuito com os seguintes componentes:
5 ou 6 LEDs vermelhos
5 ou 6 resistores (150Ω ou similar)
1 potenciômetro
3 botões de pressão
3 resistores (10kΩ)
1 protoboard
1 Arduino UNO
Principais Tarefas:
Controle do potenciômetro:
Quando o potenciômetro estiver na posição inicial (extrema esquerda), todos os LEDs devem estar apagados.
Na posição final (extrema direita), todos os LEDs devem estar acesos.
Em posições intermediárias, apenas alguns LEDs devem acender (por exemplo, a metade acende os LEDs 1, 2 e 3).
Sequência de piscadas dos LEDs:
Os LEDs devem acender e apagar em sequência a cada 500 ms. Por exemplo:
O LED 1 acende, depois de 500 ms o LED 2 acende, depois de 500 ms o LED 3 acende.
Depois que todos estiverem acesos, eles se apagam após 500 ms, e o ciclo se repete indefinidamente.
Ajuste de brilho
Adicione 3 botões de pressão para controlar o brilho do LED:
Botão 1 (KEY1): Brilho mínimo.
Botão 2 (KEY2): Metade do brilho.
Botão 3 (KEY3): Brilho máximo (padrão se nenhum botão for pressionado).
Use as funções PWM do Arduino (analogWrite e map) para o controle do brilho.
Consegui fazer a parte do potenciômetro funcionar, mas o controle de brilho não está respondendo.
int LED1 = 3;
int LED2 = 5;
int LED3 = 6;
int LED4 = 9;
int LED5 = 10;
int LED6 = 11;
int Botao1 = 2;
int Botao2 = 7;
int Botao3 = 8;
int pwm = 255;
void setup() {
pinMode(A0, INPUT);
pinMode(Botao1, INPUT_PULLUP);
pinMode(Botao2, INPUT_PULLUP);
pinMode(Botao3, INPUT_PULLUP);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
}
void loop() {
if (digitalRead(Botao1) == LOW) {
pwm = 50;
}
if (digitalRead(Botao2) == LOW) {
pwm = 150;
}
if (digitalRead(Botao3) == LOW) {
pwm = 255;
}
pot = analogRead(A0);
if (pot >= 900) {
piscaLEDs(6);
} else if (pot >= 760) {
piscaLEDs(5);
} else if (pot >= 590) {
piscaLEDs(4);
} else if (pot >= 420) {
piscaLEDs(3);
} else if (pot >= 240) {
piscaLEDs(2);
} else if (pot >= 70) {
piscaLEDs(1);
} else {
apagaTodosLEDs();
}
}
void piscaLEDs(int quantidade) {
int leds[] = {LED1, LED2, LED3, LED4, LED5, LED6};
for (int i = 0; i < quantidade; i++) {
analogWrite(leds[i], pwm);
delay(500);
}
for (int i = quantidade - 1; i >= 0; i--) {
digitalWrite(leds[i], LOW);
}
delay(500);
}
void apagaTodosLEDs() {
int leds[] = {LED1, LED2, LED3, LED4, LED5, LED6};
for (int i = 0; i < 6; i++) {
digitalWrite(leds[i], LOW);
}
}
Este é o circuito que montei no tinkercad, não tenho certeza se todas as conexões estão corretas. Preciso de ajuda, sou muito novo nisso e não sei realmente o que estou fazendo, portanto, se alguém puder me ajudar e explicar o que está acontecendo de errado, isso me ajudaria muito.

