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

Ir para baixo
avatar
LucyAnna800
Mensagens : 98
Data de inscrição : 11/06/2022
Idade : 13
Escola : Colegio Lindaura Ribeiro Lucas

exercicio 2.06 qual é o erro? Empty exercicio 2.06 qual é o erro?

Qui Jun 15, 2023 11:10 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 audio com intermitência em cadencia diferente dos leds
* Hardware: Ligar os leds e o buzzer em pinos digital configurado 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 impedidndo 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 único valor pode fazer a declaração em única linha separando-as por virgula
*/

//DEFINICOES INICIAIS
#define ledcomputador 2
#define ledconsole 3
#define buzzercelular 4

//DECLARAcAO DE VARIAVEIS GLOBAIS
bool estadoLedcomputador, estadoledconsole, estadobuzzercelular = 0;
unsigned long tledcomputador, tledconsole, tbuzzercelular = 0;

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledcomputador, OUTPUT);
pinMode(ledconsole, OUTPUT);
pinMode(buzzercelular, OUTPUT);

}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
if(millis() > (tledcomputador + 300)){
tledcomputador = millis();
estadoLedcomputador = !estadoLedcomputador;
}
if(millis() > (tbuzzercelular + 300)){
tledconsole = millis();
estadoledconsole = !estadoledconsole;
digitalWrite(ledconsole, estadoledconsole);
}
if(millis() > (tbuzzercelular + 300)){
tbuzzercelular = millis();
estadobuzzercelular = !estadobuzzercelular;
if(estadobuzzercelular == 1){
tone(buzzercelular, 1500);
} else {
noTone(buzzercelular);
}
}
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5715
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

exercicio 2.06 qual é o erro? Empty Re: exercicio 2.06 qual é o erro?

Seg Jun 19, 2023 11:29 pm
Oi Lucy, o erro é que tem 3 variáveis de controle de tempo, e no segundo led usou a mesma do buzzer, daí quando roda o buzzer ele reinicia o valor da variável e a do segundo led acaba não sendo acionada.
avatar
LucyAnna800
Mensagens : 98
Data de inscrição : 11/06/2022
Idade : 13
Escola : Colegio Lindaura Ribeiro Lucas

exercicio 2.06 qual é o erro? Empty exercicio 2.06

Sáb Ago 19, 2023 10:55 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 audio com intermitência em cadencia diferente dos leds
* Hardware: Ligar os leds e o buzzer em pinos digital configurado 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 impedidndo 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 único valor pode fazer a declaração em única linha separando-as por virgula
*/

//DEFINICOES INICIAIS
#define ledcomputador 2
#define ledconsole 3
#define buzzercelular 4

//DECLARAcAO DE VARIAVEIS GLOBAIS
bool estadoLedcomputador, estadoledconsole, estadobuzzercelular = 0;
unsigned long tledcomputador, tledconsole, tbuzzercelular = 0;

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledcomputador, OUTPUT);
pinMode(ledconsole, OUTPUT);
pinMode(buzzercelular, OUTPUT);

}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
if(millis() > (tledcomputador + 300)){
tledcomputador = millis();
estadoLedcomputador = !estadoLedcomputador;
}
if(millis() > (tledconsole + 300)){
tledconsole = millis();
estadoledconsole = !estadoledconsole;
digitalWrite(ledconsole, estadoledconsole);
}
if(millis() > (tbuzzercelular + 300)){
tbuzzercelular = millis();
estadobuzzercelular = !estadobuzzercelular;
if(estadobuzzercelular == 1){
tone(buzzercelular, 1500);
} else {
noTone(buzzercelular);
}
}
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5715
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

exercicio 2.06 qual é o erro? Empty Re: exercicio 2.06 qual é o erro?

Dom Set 24, 2023 2:50 pm
Oi Lucy, tudo está no caminho mais falta os detalhes para funcionar,
Os tempos estão todos iguais em 300ms, logo todos vao acontecer ao mesmo tempo, dai não gera a intermitencia, um precisa ficar diferente do outro
Dai no tcomputador não colocou o comando para escrever no pino e o led não acendeu
No tconsole precisa inverter o estado do led para fazer o pisca, precisa do operador de negação igual ao tcomputador que está correto neste quesito
Daí testa para ver se tem mais erros, vi esses de imediato.
avatar
LucyAnna800
Mensagens : 98
Data de inscrição : 11/06/2022
Idade : 13
Escola : Colegio Lindaura Ribeiro Lucas

exercicio 2.06 qual é o erro? Empty exercicio 2.6

Qui Set 28, 2023 11:06 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 audio com intermitência em cadencia diferente dos leds
* Hardware: Ligar os leds e o buzzer em pinos digital configurado 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 impedidndo 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 único valor pode fazer a declaração em única linha separando-as por virgula
*/

//DEFINICOES INICIAIS
#define ledcomputador 2
#define ledconsole 3
#define buzzercelular 4

//DECLARAcAO DE VARIAVEIS GLOBAIS
bool estadoledcomputador, estadoledconsole, estadobuzzercelular = 0;
unsigned long tledcomputador, tledconsole, tbuzzercelular = 0;

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledcomputador, OUTPUT);
pinMode(ledconsole, OUTPUT);
pinMode(buzzercelular, OUTPUT);

}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
if(millis() > (tledcomputador + 300)){
tledcomputador = millis();
estadoledcomputador = !estadoledcomputador;
digitalWrite(ledcomputador, estadoledcomputador);
}
if(millis() > (tledconsole + 500)){
tledconsole = millis();
estadoledconsole = !estadoledconsole;
digitalWrite(ledconsole, estadoledconsole);
}
if(millis() > (tbuzzercelular + 700)){
tbuzzercelular = millis();
estadobuzzercelular = !estadobuzzercelular;
if(estadobuzzercelular == 1){
tone(buzzercelular, 1500);
} else {
noTone(buzzercelular);
}
}
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5715
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

exercicio 2.06 qual é o erro? Empty Re: exercicio 2.06 qual é o erro?

Ter Nov 07, 2023 10:32 pm
Oi Lucy, agora funcionou direitinho, nota 5.0 porque está sem os cometários.
avatar
LucyAnna800
Mensagens : 98
Data de inscrição : 11/06/2022
Idade : 13
Escola : Colegio Lindaura Ribeiro Lucas

exercicio 2.06 qual é o erro? Empty exe 2.06

Qui Nov 09, 2023 10:29 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 audio com intermitência em cadencia diferente dos leds
* Hardware: Ligar os leds e o buzzer em pinos digital configurado 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 impedidndo 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 único valor pode fazer a declaração em única linha separando-as por virgula
*/

//DEFINICOES INICIAIS
#define ledcomputador 2 //batizado pino 2 de ledcomputador
#define ledconsole 3 //batizado pino 3 de ledconsole
#define buzzercelular 4 //batizado pino 4 de buzzercelular

//DECLARAcAO DE VARIAVEIS GLOBAIS
bool estadoledcomputador, estadoledconsole, estadobuzzercelular = 0; //batizadas 3 variaveis bool de estadoledcomputador, estadoledconsole e estadobuzzercelular que sao iguais a zero
unsigned long tledcomputador, tledconsole, tbuzzercelular = 0; //batizadas 3 variaveis unsigned long de tledcomputador, tledconsole e tbuzzercelular

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledcomputador, OUTPUT); //configurado o ledcomputador como saida
pinMode(ledconsole, OUTPUT); //configurado o ledconsole como saida
pinMode(buzzercelular, OUTPUT); //configurado o buzzercelular

}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
if(millis() > (tledcomputador + 300)){ //se a condiçao for verdadeira se executara os comandos abaixo
tledcomputador = millis(); //tledcomputador tem o mesmo valor da variavel millis
estadoledcomputador = !estadoledcomputador; //inverte o estado da variavel estadoledcomputador
digitalWrite(ledcomputador, estadoledcomputador); //ledcompuutador tem o valor da variavel estadoledcomputador
}
if(millis() > (tledconsole + 500)){ //se a condiçao for verdadeira se executara os comandos abaixo
tledconsole = millis(); //tledconsole tem o mesmo valor da variavel millis
estadoledconsole = !estadoledconsole; //inverte o estado da variavel estadoledconsole
digitalWrite(ledconsole, estadoledconsole); //ledconsole tem o mesmo valor da veriavel estadoledconsole
}
if(millis() > (tbuzzercelular + 700)){ //se a condiçao for verdadeira se executara os comandos abaixo
tbuzzercelular = millis(); //tbuzzercelular tem o mesmo valor que a variavel millis
estadobuzzercelular = !estadobuzzercelular; //inverte o estado da veriavel estadobuzzercelular
if(estadobuzzercelular == 1){ //se a condiçao for verdadeira se executara os comando abaixo
tone(buzzercelular, 1500); //buzzer aceso na frequencia de 1500h
} else { //se a condiçao do if acima der falso se executara os seguintes comandos
noTone(buzzercelular); //buzzer nao faz som
}
}
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5715
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

exercicio 2.06 qual é o erro? Empty Re: exercicio 2.06 qual é o erro?

Qui Dez 07, 2023 10:12 pm
Oi Lucy, vou dar nota 10.0 e fazer uma orientação sobre os comentários.
Nesse capitulo pode comentar os blocos ou as funções principais. Comente sobre a estratégia. Evite descrever o obvio a interpretação literal do comando.
Veja o exemplo abaixo:

//Quando o tempo de exucão passar de 500ms, atualiza o contador do tempo e inverte o estado do led.

f(millis() > (tledconsole + 500)){ //se a condiçao for verdadeira se executara os comandos abaixo
tledconsole = millis(); //tledconsole tem o mesmo valor da variavel millis
estadoledconsole = !estadoledconsole; //inverte o estado da variavel estadoledconsole
digitalWrite(ledconsole, estadoledconsole); //ledconsole tem o mesmo valor da veriavel estadoledconsole
Conteúdo patrocinado

exercicio 2.06 qual é o erro? Empty Re: exercicio 2.06 qual é o erro?

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