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

exercicio 2.6 Empty exercicio 2.6

Qui Mar 16, 2023 10:49 am
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.6
* Tema: Função millis()
* Atividade: Intermitencias usando leds e buzzer
* Descrição: Utilizar dois leds piscando em tempos diferentes e um buzzer emitindo áudio com intermitência em cadência diferente dos leds
* Hardware: Ligar os leds e o buzzer em pinos digitais configurados como SAÍDA
* Comandos: pinMode, IF, millis(), digitalWrite
* Dica1: A função millis() é um contador de tempo de execução, quando acionada retorna o tempo de execução em milissegundos
* Dica2: Substituir o delay() por millis() porque o delay() pára o fluxo do programa impedindo o Arduino de rodar outros programas
* Dica3: Usar variáveis para controlar os temporizadores, usar do tipo unsigned long para essa aplicação
* Dica4: Com a função if() comparar se os tempos foram atingidos e, caso sim, tomar as ações
* Dica5: Usar o operador de inversão e uma variável para controlar o estado dos leds
* Dica6: Para declarar mais de uma variável do mesmo tipo e inicializar com um único valor, pode-se fazer a declaração em uma única linha separando-as por vírgula
*/

// DEFINIÇÕES INICIAIS
#define led1 3
#define led2 4
#define buzzer 5

// DECLARAÇÃO DE VARIAVEIS GLOBAIS
bool estadoLed1, estadoLed2, estadoBuzzer = 0;
unsigned long tLed1, tLed2, tBuzzer = 0;

// INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(buzzer, OUTPUT);
}

// FUNÇÕES COMPLEMENTARES

// PROGRAMA PRINCIPAL
void loop() {
if (millis() > (tLed1 + 1000)) {
tLed1 = millis();
estadoLed1 = !estadoLed1;
digitalWrite(led1, estadoLed1);
}

if (millis() > (tLed2 + 300)) {
tLed2 = millis(); // Corrigido de tLed1 para tLed2
estadoLed2 = !estadoLed2;
digitalWrite(led2, estadoLed2);
}

if (millis() > (tBuzzer + 500)) {
tBuzzer = millis();
estadoBuzzer = !estadoBuzzer;
if (estadoBuzzer == 1) {
tone(buzzer, 1500);
} else {
noTone(buzzer);
}
}
}


Última edição por Sr.Sucrilhos em Qui Nov 16, 2023 5:49 pm, editado 5 vez(es)
Sr.Sucrilhos
Sr.Sucrilhos
Mensagens : 103
Data de inscrição : 30/03/2022
Idade : 12
Escola : São Cristovão

exercicio 2.6 Empty Re: exercicio 2.6

Qui Mar 30, 2023 9:33 am
corrigido os comentarios pode corrigir professor Very Happy
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5039
Data de inscrição : 11/02/2019
Idade : 52
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

exercicio 2.6 Empty Re: exercicio 2.6

Dom Abr 02, 2023 10:17 pm
Oi Pablo, o buzzer não está funcionando, logo não atende ao enunciado. Comentários corretos.
Não tem erro de sintaxe, mas tem um de semantica. Nota 6.0
Sr.Sucrilhos
Sr.Sucrilhos
Mensagens : 103
Data de inscrição : 30/03/2022
Idade : 12
Escola : São Cristovão

exercicio 2.6 Empty Re: exercicio 2.6

Sáb Nov 25, 2023 10:58 am
corrigido
Sr.Sucrilhos
Sr.Sucrilhos
Mensagens : 103
Data de inscrição : 30/03/2022
Idade : 12
Escola : São Cristovão

exercicio 2.6 Empty Re: exercicio 2.6

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

exercicio 2.6 Empty Re: exercicio 2.6

Sáb Abr 20, 2024 10:31 am
O programa está funcionando corretamente porém não há comentários.
Nota 6.0
Conteúdo patrocinado

exercicio 2.6 Empty Re: exercicio 2.6

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