Robótica Livre
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Ir para baixo
Sr.Sucrilhos
Sr.Sucrilhos
Mensagens : 103
Data de inscrição : 30/03/2022
Idade : 12
Escola : São Cristovão

...F exercicio 2.13 Empty ...F exercicio 2.13

Qui Mar 30, 2023 10:21 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.13
* Tema: Função FOR()e comando continue
* Atividade: Sequencial de 6 LEDS com acendimento gradual
* Descrição: fazer os 3 leds mais o led RGB piscarem de forma sequencial aumentando e reduzindo o brilho gradualmente
* Hardware: Ligar os 6 leds em seis pinos digital configurados como SAÍDA
* Comandos: pinMode, analogWrite, delay,for(), continue, break
* Dica1: Usar uma variavel para armazenar o tempo de espera entre as trocas de estado
* Dica2: Configurar os leds nos pinos em ordem sequencial, usar os pinos PWM 3,5,6,9,10,11 e o contador do for rodando esses pinos
* Dica3: As funções for() serão montadas uma dentro da outra
* Dica4: Uma função for() conta os pinos dos leds e dentro do bloco outra função for() conta o incremento e decremento do brilho
* Dica5: Para pular os pinos que não são PWM use o comando continue
* Dica6: Parar o sequencial caso uma tecla seja pressionada, usar interrupção para essa aplicação
*/

// DEFINICOES INICIAIS
#define led1 3 // Definido que o pino 3 vai se chamar "led1"
#define led2 5 // Definido que o pino 4 vai se chamar "led2"
#define led3 6 // Definido que o pino 5 vai se chamar "led3"
#define led4 9 // Definido que o pino 6 vai se chamar "led4"
#define led5 10 // Definido que o pino 7 vai se chamar "led5"
#define led6 11 // Definido que o pino 8 vai se chamar "led6"
#define tecla 2 // tecla de interrupção

// DECLARAÇÃO DE VARIAVEIS
volatile bool parada = false;

// INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1, OUTPUT); // programado o led1 como saida
pinMode(led2, OUTPUT); // programado o led2 como saida
pinMode(led3, OUTPUT); // programado o led3 como saida
pinMode(led4, OUTPUT); // programado o led4 como saida
pinMode(led5, OUTPUT); // programado o led5 como saida
pinMode(led6, OUTPUT); // programado o led6 como saida
pinMode(tecla, INPUT_PULLUP);

attachInterrupt(digitalPinToInterrupt(tecla), parou, FALLING);
}

// FUNÇÕES COMPLEMENTARES
void parou() {
parada = !parada;
}

// PROGRAMA PRINCIPAL
void loop() {
for (byte pino = 3; pino <= 11; pino++) { // Loop para percorrer os pinos dos LEDs
if (parada == true) break;
if (pino == 4 || pino == 7 || pino == Cool continue;
byte x = 1; // Inicializa a variável x como 1
for (byte brilho = 255; brilho > 0; brilho = brilho + x * 2) { // Loop para aumentar e diminuir o brilho
analogWrite(pino, brilho); // Define o brilho do LED no pino atual
delay(10); // Delay de 10ms
if (brilho == 253) x = -1; // Inverte a variável x quando o brilho chega a 253
if (parada == true) break;
}
}
}


Última edição por Sr.Sucrilhos em Qui Nov 16, 2023 6:31 pm, editado 1 vez(es)
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5115
Data de inscrição : 11/02/2019
Idade : 52
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

...F exercicio 2.13 Empty Re: ...F exercicio 2.13

Qui Abr 06, 2023 12:31 am
Oi Pablo, também não funcionou no simulador.
Sr.Sucrilhos
Sr.Sucrilhos
Mensagens : 103
Data de inscrição : 30/03/2022
Idade : 12
Escola : São Cristovão

...F exercicio 2.13 Empty Re: ...F exercicio 2.13

Sáb Dez 09, 2023 11:03 am
corrigi
Thiaguin
Thiaguin
Mensagens : 177
Data de inscrição : 03/03/2020

...F exercicio 2.13 Empty Re: ...F exercicio 2.13

Sáb maio 04, 2024 11:15 am
Há erro na lógica da graduação da intensidade do led. Favor corrigir
Conteúdo patrocinado

...F exercicio 2.13 Empty Re: ...F exercicio 2.13

Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos