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

Ir para baixo
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.8 - Pisca 2LEDs com Tempo Controlado  Empty Exercício 1.8 - Pisca 2LEDs com Tempo Controlado

Sáb maio 09, 2020 12:15 pm
/*
* Exercicio: 1.8
* Tema: Pinos Digitais
* Atividade: Fazer um pisca-pisca com 2 leds alternando entre um aceso e outro apagado com a velocidade controlada pelas teclas UP(aumenta a velocidade) e DOWN (diminui a velocidade)
* Descrição: Usar a leitura das teclas e multiplicar por uma constante para fazer o incremento e decremento da velocidade
* Hardware: Ligar os leds em dois pinos digital configurado como SAÍDA e as teclas em outros pinos digitais
* Comandos: pinMode, digitalWrite, delay, PULLUP
* Dica1: Usar os operadores matemáticos para aumentar e diminuir o tempo do pisca
* Dica2: A tecla quando não está pressionada fica em HIGH (1) e quando pressiona o pino é aterrado e vem para nível lógico LOW (0)
* Dica3: Todo numero multiplicado por zero 0 é igual a zero, e todo numero somado com zero é igual a ele mesmo
* Dica4: Para incrementar o tempo quando a tecla UP for pressionada, o valor fica 1, deve ser multiplicado por um numero e somado ao valor do tempo
* Dica5: Usar uma variável tipo Byte para o tempo, essa quando chega em 255 e incrementada volta a zero.
* Dica6: Multiplicar 255 por um valor para chegar ao tempo desejado,
*/

//DEFINICOES INICIAIS
#define led1 3 //Definido que o pino 3 vai se chamar "led1"
#define led4 4 //Definido que o pino 4 vai se chamar "led4"
#define teclaup 2 //Definido que o pino 2 vai chamar-se "teclaup"
#define tecladown 13 //Definido que o pino 13 vai chamar-se "tecladown"

//DECLARAcAO DE VARIAVEIS
byte tempo=25;//A variação de tempo irá ser controlada por uma variável do tipo byte , com o valor de 0,025 segundos

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1,OUTPUT);//Configurado o pino 3 como saída
pinMode(led4,OUTPUT);//Configurado o pino 4 como saída
pinMode(teclaup,INPUT_PULLUP);//Configurado o pino 2 como entrada utilizando-se um resistor de pullup
pinMode(tecladown,INPUT_PULLUP);//Configurado o pino 13 como entrada utilizando-se um resistor de pullup
}

//FUNÇÕES COMPLEMENTARES

//PROGRAMA PRINCIPAL
void loop() {
tempo-=tempo-!digitalRead(teclaup)*25;//Quando a teclaup for pressionada irá diminuir 0,025 segundos do tempo atual
tempo+=tempo-!digitalRead(tecladown)*25;//Quando a tecladown for pressionada irá aumentar 0,025 segundos do tempo atual
digitalWrite(led1,HIGH);//Quando o programa iniciar o led1 irá acender
digitalWrite(led4,LOW);//Quando o programa iniciar o led4 irá se manter apagado
delay(tempo);//O intervalo de tempo será controlado por uma variável de valor 0,025 segundos
digitalWrite(led4,HIGH);//Quando o intervalo de tempo acabar o led4 irá acender
digitalWrite(led1,LOW);//Quando o led4 acender o led1 irá apagar
delay(tempo);//O intervalo de tempo será controlado por uma variável de valor 0,025 segundos
}
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

Exercício 1.8 - Pisca 2LEDs com Tempo Controlado  Empty Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado

Qui maio 14, 2020 11:33 pm
Oi Thiago, esse programa tive que testar para ver o resultado, pois usou as duas formas de calculo no mesmo comando, e na verdade deveria usar um ou outro.
Veja essa linha
tempo-=tempo-!digitalRead(teclaup)*25 //o tempo foi subtraido do tempo-(0 ou 1) vezes 25, seria assim tempo = tempo - (tempo - (0 ou 1) * 25 ;
Deu errado porque quando a tecla não estava pressionada a soma deveria dar 0 e não alterar o tempo, mas da forma que implantou alterava a cada volta independente da tecla estar pressionada ou não.

Como não atingiu o objetivo da funcionalidade a nota será 6.0, mas pode arrumar o programa que reviso a nota.

Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.8 - Pisca 2LEDs com Tempo Controlado  Empty Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado

Qua Jun 03, 2020 9:41 am
/*
 * Exercicio: 1.8
 * Tema: Pinos Digitais
 * Atividade: Fazer um pisca-pisca com 2 leds alternando entre um aceso e outro apagado com a velocidade controlada pelas teclas UP(aumenta a velocidade) e DOWN (diminui a velocidade)
 * Descrição: Usar a leitura das teclas e multiplicar por uma constante para fazer o incremento e decremento da velocidade
 * Hardware: Ligar os leds em dois pinos digital configurado como SAÍDA e as teclas em outros pinos digitais
 * Comandos: pinMode, digitalWrite, delay, PULLUP
 * Dica1: Usar os operadores matemáticos para aumentar e diminuir o tempo do pisca
 * Dica2: A tecla quando não está pressionada fica em HIGH (1) e quando pressiona o pino é aterrado e vem para nível lógico LOW (0)
 * Dica3: Todo numero multiplicado por zero 0 é igual a zero, e todo numero somado com zero é igual a ele mesmo
 * Dica4: Para incrementar o tempo quando a tecla UP for pressionada, o valor fica 1, deve ser multiplicado por um numero e somado ao valor do tempo
 * Dica5: Usar uma variável tipo Byte para o tempo, essa  quando chega em 255 e incrementada volta a zero.
 * Dica6: Multiplicar 255 por um valor para chegar ao tempo desejado,
 */

 //DEFINICOES INICIAIS
#define led1 3   //Definido que o pino 3 vai se chamar "led1"
#define led4 4   //Definido que o pino 4 vai se chamar "led4"
#define teclaup 2 //Definido que o pino 2 vai chamar-se "teclaup"
#define tecladown 13 //Definido que o pino 13 vai chamar-se "tecladown"

//DECLARAcAO DE VARIAVEIS
byte tempo=25;//A variação de tempo irá ser controlada por uma variável do tipo byte , com o valor de 0,025 segundos

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1,OUTPUT);//Configurado o pino 3 como saída
pinMode(led4,OUTPUT);//Configurado o pino 4 como saída
pinMode(teclaup,INPUT_PULLUP);//Configurado o pino 2 como entrada utilizando-se um resistor de pullup
pinMode(tecladown,INPUT_PULLUP);//Configurado o pino 13 como entrada utilizando-se um resistor de pullup
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
tempo=tempo-(tempo-(1)*25;//Quando a teclaup for pressionada irá diminuir 0,025 segundos do tempo atual
tempo=tempo+(tempo+(1)*25;//Quando a tecladown for pressionada irá aumentar 0,025 segundos do tempo atual
digitalWrite(led1,HIGH);//Quando o programa iniciar o led1 irá acender
digitalWrite(led4,LOW);//Quando o programa iniciar o led4 irá se manter apagado
delay(tempo);//O intervalo de tempo será controlado por uma variável de valor 0,025 segundos
digitalWrite(led4,HIGH);//Quando o intervalo de tempo acabar o led4 irá acender
digitalWrite(led1,LOW);//Quando o led4 acender o led1 irá apagar
delay(tempo);//O intervalo de tempo será controlado por uma variável de valor 0,025 segundos
}


Paulo Augusto Batista gosta desta mensagem

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

Exercício 1.8 - Pisca 2LEDs com Tempo Controlado  Empty Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado

Qua Jun 03, 2020 11:43 pm
Então na conta que estávamos falando o (1) que usou deve ser substituido pela leitura da tecla, se ligou?
Vai somar somente quando a tecla for pressionada, por isso altera o tempo do delay() e assim controla a velocidade.
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.8 - Pisca 2LEDs com Tempo Controlado  Empty Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado

Ter Jun 09, 2020 4:21 pm
Ahhhh ! Ok
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

Exercício 1.8 - Pisca 2LEDs com Tempo Controlado  Empty Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado

Ter Jun 09, 2020 8:21 pm
E
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.8 - Pisca 2LEDs com Tempo Controlado  Empty Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado

Qui Jun 11, 2020 2:01 pm
/*
 * Exercicio: 1.8
 * Tema: Pinos Digitais
 * Atividade: Fazer um pisca-pisca com 2 leds alternando entre um aceso e outro apagado com a velocidade controlada pelas teclas UP(aumenta a velocidade) e DOWN (diminui a velocidade)
 * Descrição: Usar a leitura das teclas e multiplicar por uma constante para fazer o incremento e decremento da velocidade
 * Hardware: Ligar os leds em dois pinos digital configurado como SAÍDA e as teclas em outros pinos digitais
 * Comandos: pinMode, digitalWrite, delay, PULLUP
 * Dica1: Usar os operadores matemáticos para aumentar e diminuir o tempo do pisca
 * Dica2: A tecla quando não está pressionada fica em HIGH (1) e quando pressiona o pino é aterrado e vem para nível lógico LOW (0)
 * Dica3: Todo numero multiplicado por zero 0 é igual a zero, e todo numero somado com zero é igual a ele mesmo
 * Dica4: Para incrementar o tempo quando a tecla UP for pressionada, o valor fica 1, deve ser multiplicado por um numero e somado ao valor do tempo
 * Dica5: Usar uma variável tipo Byte para o tempo, essa  quando chega em 255 e incrementada volta a zero.
 * Dica6: Multiplicar 255 por um valor para chegar ao tempo desejado,
 */

 //DEFINICOES INICIAIS
#define led1 3   //Definido que o pino 3 vai se chamar "led1"
#define led4 4   //Definido que o pino 4 vai se chamar "led4"
#define teclaup 2 //Definido que o pino 2 vai chamar-se "teclaup"
#define tecladown 13 //Definido que o pino 13 vai chamar-se "tecladown"

//DECLARAcAO DE VARIAVEIS
byte tempo=25;//A variação de tempo irá ser controlada por uma variável do tipo byte , com o valor de 0,025 segundos

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1,OUTPUT);//Configurado o pino 3 como saída
pinMode(led4,OUTPUT);//Configurado o pino 4 como saída
pinMode(teclaup,INPUT_PULLUP);//Configurado o pino 2 como entrada utilizando-se um resistor de pullup
pinMode(tecladown,INPUT_PULLUP);//Configurado o pino 13 como entrada utilizando-se um resistor de pullup
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
tempo=tempo-(tempo-!digitalRead(teclaup)*25;//Quando a teclaup for pressionada irá diminuir 0,025 segundos do tempo atual
tempo=tempo+(tempo+!digitalRead(tecladown)*25;//Quando a tecladown for pressionada irá aumentar 0,025 segundos do tempo atual
digitalWrite(led1,HIGH);//Quando o programa iniciar o led1 irá acender
digitalWrite(led4,LOW);//Quando o programa iniciar o led4 irá se manter apagado
delay(tempo);//O intervalo de tempo será controlado por uma variável de valor 0,025 segundos
digitalWrite(led4,HIGH);//Quando o intervalo de tempo acabar o led4 irá acender
digitalWrite(led1,LOW);//Quando o led4 acender o led1 irá apagar
delay(tempo);//O intervalo de tempo será controlado por uma variável de valor 0,025 segundos
}
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.8 - Pisca 2LEDs com Tempo Controlado  Empty Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado

Qui Jun 11, 2020 2:01 pm
👍✌
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

Exercício 1.8 - Pisca 2LEDs com Tempo Controlado  Empty Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado

Qui Jun 11, 2020 10:23 pm
Thiago, vai dar errado essa conta,
deveria ser :
tempo = tempo - tecla * multiplicador;
e fez :
tempo = tempo - tempo - tecla * multiplicadot;
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.8 - Pisca 2LEDs com Tempo Controlado  Empty Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado

Qui Jun 18, 2020 2:29 pm
InícioInício CalendárioCalendário FAQFAQ BuscarBuscar MembrosMembros GruposGrupos PerfilPerfil Mensagens privadasMensagens privadas Sair [ Thiago Mello verdadeiro ]Sair [ Thiago Mello verdadeiro ]
Robótica Livre
Forum para interação entre os alunos e publicação de material



Exercício 1.8 - Pisca 2LEDs com Tempo Controlado
Robótica Livre :: Área dos Alunos - Turma 2020 :: Grupo 09
Novo TópicoResponder ao tópico
CompartilheMais!
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Thiago Mello verdadeiro
Mensagens : 22
Data de inscrição : 03/03/2020
Ver perfil do usuárioEnviar uma mensagem privada
Exercício 1.8 - Pisca 2LEDs com Tempo Controlado
em Sab Maio 09, 2020 12:15 pm
/*
* Exercicio: 1.8
* Tema: Pinos Digitais
* Atividade: Fazer um pisca-pisca com 2 leds alternando entre um aceso e outro apagado com a velocidade controlada pelas teclas UP(aumenta a velocidade) e DOWN (diminui a velocidade)
* Descrição: Usar a leitura das teclas e multiplicar por uma constante para fazer o incremento e decremento da velocidade
* Hardware: Ligar os leds em dois pinos digital configurado como SAÍDA e as teclas em outros pinos digitais
* Comandos: pinMode, digitalWrite, delay, PULLUP
* Dica1: Usar os operadores matemáticos para aumentar e diminuir o tempo do pisca
* Dica2: A tecla quando não está pressionada fica em HIGH (1) e quando pressiona o pino é aterrado e vem para nível lógico LOW (0)
* Dica3: Todo numero multiplicado por zero 0 é igual a zero, e todo numero somado com zero é igual a ele mesmo
* Dica4: Para incrementar o tempo quando a tecla UP for pressionada, o valor fica 1, deve ser multiplicado por um numero e somado ao valor do tempo
* Dica5: Usar uma variável tipo Byte para o tempo, essa quando chega em 255 e incrementada volta a zero.
* Dica6: Multiplicar 255 por um valor para chegar ao tempo desejado,
*/

//DEFINICOES INICIAIS
#define led1 3 //Definido que o pino 3 vai se chamar "led1"
#define led4 4 //Definido que o pino 4 vai se chamar "led4"
#define teclaup 2 //Definido que o pino 2 vai chamar-se "teclaup"
#define tecladown 13 //Definido que o pino 13 vai chamar-se "tecladown"

//DECLARAcAO DE VARIAVEIS
byte tempo=25;//A variação de tempo irá ser controlada por uma variável do tipo byte , com o valor de 0,025 segundos

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1,OUTPUT);//Configurado o pino 3 como saída
pinMode(led4,OUTPUT);//Configurado o pino 4 como saída
pinMode(teclaup,INPUT_PULLUP);//Configurado o pino 2 como entrada utilizando-se um resistor de pullup
pinMode(tecladown,INPUT_PULLUP);//Configurado o pino 13 como entrada utilizando-se um resistor de pullup
}

//FUNÇÕES COMPLEMENTARES

//PROGRAMA PRINCIPAL
void loop() {
tempo-=tempo-!digitalRead(teclaup)*25;//Quando a teclaup for pressionada irá diminuir 0,025 segundos do tempo atual
tempo+=tempo-!digitalRead(tecladown)*25;//Quando a tecladown for pressionada irá aumentar 0,025 segundos do tempo atual
digitalWrite(led1,HIGH);//Quando o programa iniciar o led1 irá acender
digitalWrite(led4,LOW);//Quando o programa iniciar o led4 irá se manter apagado
delay(tempo);//O intervalo de tempo será controlado por uma variável de valor 0,025 segundos
digitalWrite(led4,HIGH);//Quando o intervalo de tempo acabar o led4 irá acender
digitalWrite(led1,LOW);//Quando o led4 acender o led1 irá apagar
delay(tempo);//O intervalo de tempo será controlado por uma variável de valor 0,025 segundos
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 2797
Data de inscrição : 11/02/2019
Idade : 48
Escola : Colegio Lindaura
Ver perfil do usuárioEnviar uma mensagem privadaEnviar um emailhttps://roboticalivre.forumeiros.com
Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado
em Qui Maio 14, 2020 11:33 pm
Oi Thiago, esse programa tive que testar para ver o resultado, pois usou as duas formas de calculo no mesmo comando, e na verdade deveria usar um ou outro.
Veja essa linha
tempo-=tempo-!digitalRead(teclaup)*25 //o tempo foi subtraido do tempo-(0 ou 1) vezes 25, seria assim tempo = tempo - (tempo - (0 ou 1) * 25 ;
Deu errado porque quando a tecla não estava pressionada a soma deveria dar 0 e não alterar o tempo, mas da forma que implantou alterava a cada volta independente da tecla estar pressionada ou não.

Como não atingiu o objetivo da funcionalidade a nota será 6.0, mas pode arrumar o programa que reviso a nota.

avatar
Thiago Mello verdadeiro
Mensagens : 22
Data de inscrição : 03/03/2020
Ver perfil do usuárioEnviar uma mensagem privada
Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado
em Qua Jun 03, 2020 9:41 am
/*
* Exercicio: 1.8
* Tema: Pinos Digitais
* Atividade: Fazer um pisca-pisca com 2 leds alternando entre um aceso e outro apagado com a velocidade controlada pelas teclas UP(aumenta a velocidade) e DOWN (diminui a velocidade)
* Descrição: Usar a leitura das teclas e multiplicar por uma constante para fazer o incremento e decremento da velocidade
* Hardware: Ligar os leds em dois pinos digital configurado como SAÍDA e as teclas em outros pinos digitais
* Comandos: pinMode, digitalWrite, delay, PULLUP
* Dica1: Usar os operadores matemáticos para aumentar e diminuir o tempo do pisca
* Dica2: A tecla quando não está pressionada fica em HIGH (1) e quando pressiona o pino é aterrado e vem para nível lógico LOW (0)
* Dica3: Todo numero multiplicado por zero 0 é igual a zero, e todo numero somado com zero é igual a ele mesmo
* Dica4: Para incrementar o tempo quando a tecla UP for pressionada, o valor fica 1, deve ser multiplicado por um numero e somado ao valor do tempo
* Dica5: Usar uma variável tipo Byte para o tempo, essa quando chega em 255 e incrementada volta a zero.
* Dica6: Multiplicar 255 por um valor para chegar ao tempo desejado,
*/

//DEFINICOES INICIAIS
#define led1 3 //Definido que o pino 3 vai se chamar "led1"
#define led4 4 //Definido que o pino 4 vai se chamar "led4"
#define teclaup 2 //Definido que o pino 2 vai chamar-se "teclaup"
#define tecladown 13 //Definido que o pino 13 vai chamar-se "tecladown"

//DECLARAcAO DE VARIAVEIS
byte tempo=25;//A variação de tempo irá ser controlada por uma variável do tipo byte , com o valor de 0,025 segundos

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1,OUTPUT);//Configurado o pino 3 como saída
pinMode(led4,OUTPUT);//Configurado o pino 4 como saída
pinMode(teclaup,INPUT_PULLUP);//Configurado o pino 2 como entrada utilizando-se um resistor de pullup
pinMode(tecladown,INPUT_PULLUP);//Configurado o pino 13 como entrada utilizando-se um resistor de pullup
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
tempo=tempo-(tempo-(1)*25;//Quando a teclaup for pressionada irá diminuir 0,025 segundos do tempo atual
tempo=tempo+(tempo+(1)*25;//Quando a tecladown for pressionada irá aumentar 0,025 segundos do tempo atual
digitalWrite(led1,HIGH);//Quando o programa iniciar o led1 irá acender
digitalWrite(led4,LOW);//Quando o programa iniciar o led4 irá se manter apagado
delay(tempo);//O intervalo de tempo será controlado por uma variável de valor 0,025 segundos
digitalWrite(led4,HIGH);//Quando o intervalo de tempo acabar o led4 irá acender
digitalWrite(led1,LOW);//Quando o led4 acender o led1 irá apagar
delay(tempo);//O intervalo de tempo será controlado por uma variável de valor 0,025 segundos
}


Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 2797
Data de inscrição : 11/02/2019
Idade : 48
Escola : Colegio Lindaura
Ver perfil do usuárioEnviar uma mensagem privadaEnviar um emailhttps://roboticalivre.forumeiros.com
Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado
em Qua Jun 03, 2020 11:43 pm
Então na conta que estávamos falando o (1) que usou deve ser substituido pela leitura da tecla, se ligou?
Vai somar somente quando a tecla for pressionada, por isso altera o tempo do delay() e assim controla a velocidade.
avatar
Thiago Mello verdadeiro
Mensagens : 22
Data de inscrição : 03/03/2020
Ver perfil do usuárioEnviar uma mensagem privada
Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado
em Ter Jun 09, 2020 4:21 pm
Ahhhh ! Ok
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 2797
Data de inscrição : 11/02/2019
Idade : 48
Escola : Colegio Lindaura
Ver perfil do usuárioEnviar uma mensagem privadaEnviar um emailhttps://roboticalivre.forumeiros.com
Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado
em Ter Jun 09, 2020 8:21 pm
E
avatar
Thiago Mello verdadeiro
Mensagens : 22
Data de inscrição : 03/03/2020
Ver perfil do usuárioEnviar uma mensagem privada
Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado
em Qui Jun 11, 2020 2:01 pm
/*
* Exercicio: 1.8
* Tema: Pinos Digitais
* Atividade: Fazer um pisca-pisca com 2 leds alternando entre um aceso e outro apagado com a velocidade controlada pelas teclas UP(aumenta a velocidade) e DOWN (diminui a velocidade)
* Descrição: Usar a leitura das teclas e multiplicar por uma constante para fazer o incremento e decremento da velocidade
* Hardware: Ligar os leds em dois pinos digital configurado como SAÍDA e as teclas em outros pinos digitais
* Comandos: pinMode, digitalWrite, delay, PULLUP
* Dica1: Usar os operadores matemáticos para aumentar e diminuir o tempo do pisca
* Dica2: A tecla quando não está pressionada fica em HIGH (1) e quando pressiona o pino é aterrado e vem para nível lógico LOW (0)
* Dica3: Todo numero multiplicado por zero 0 é igual a zero, e todo numero somado com zero é igual a ele mesmo
* Dica4: Para incrementar o tempo quando a tecla UP for pressionada, o valor fica 1, deve ser multiplicado por um numero e somado ao valor do tempo
* Dica5: Usar uma variável tipo Byte para o tempo, essa quando chega em 255 e incrementada volta a zero.
* Dica6: Multiplicar 255 por um valor para chegar ao tempo desejado,
*/

//DEFINICOES INICIAIS
#define led1 3 //Definido que o pino 3 vai se chamar "led1"
#define led4 4 //Definido que o pino 4 vai se chamar "led4"
#define teclaup 2 //Definido que o pino 2 vai chamar-se "teclaup"
#define tecladown 13 //Definido que o pino 13 vai chamar-se "tecladown"

//DECLARAcAO DE VARIAVEIS
byte tempo=25;//A variação de tempo irá ser controlada por uma variável do tipo byte , com o valor de 0,025 segundos

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1,OUTPUT);//Configurado o pino 3 como saída
pinMode(led4,OUTPUT);//Configurado o pino 4 como saída
pinMode(teclaup,INPUT_PULLUP);//Configurado o pino 2 como entrada utilizando-se um resistor de pullup
pinMode(tecladown,INPUT_PULLUP);//Configurado o pino 13 como entrada utilizando-se um resistor de pullup
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
tempo=tempo-!digitalRead(teclaup)*25;//Quando a teclaup for pressionada irá diminuir 0,025 segundos do tempo atual
tempo=tempo+!digitalRead(tecladown)*25;//Quando a tecladown for pressionada irá aumentar 0,025 segundos do tempo atual
digitalWrite(led1,HIGH);//Quando o programa iniciar o led1 irá acender
digitalWrite(led4,LOW);//Quando o programa iniciar o led4 irá se manter apagado
delay(tempo);//O intervalo de tempo será controlado por uma variável de valor 0,025 segundos
digitalWrite(led4,HIGH);//Quando o intervalo de tempo acabar o led4 irá acender
digitalWrite(led1,LOW);//Quando o led4 acender o led1 irá apagar
delay(tempo);//O intervalo de tempo será controlado por uma variável de valor 0,025 segundos
}

Paulo Augusto Batista não gosta desta mensagem

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

Exercício 1.8 - Pisca 2LEDs com Tempo Controlado  Empty Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado

Qua Jun 24, 2020 9:05 pm
Thiago, Na videoaula eu explico como funciona, e voce precisa entender e não decorar, daí sugiro que assista novamente com atenção.

Vou dar uma dica
x += y é o mesmo que x = x + y
não rola fazer x += x +y entendeu, é assim que está escrevendo e por isso estou dizendo que está errado.

Pára , pensa , reveja na apostila, assista a videoaula , compara com o que está fazendo , corrige o exercício, testa no arduino e comprova o funcionamento, publica no fórum, e ganha a nota máxima.

Se não seguir essas etapas que passei acima não vai rolar. Se ficar na tentativa e erro só vai fazer eu ficar correndo e quem deve correr é voce.

Bom estudo.
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.8 - Pisca 2LEDs com Tempo Controlado  Empty Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado

Qua Jul 01, 2020 2:24 pm
/*
* Exercicio: 1.8
* Tema: Pinos Digitais
* Atividade: Fazer um pisca-pisca com 2 leds alternando entre um aceso e outro apagado com a velocidade controlada pelas teclas UP(aumenta a velocidade) e DOWN (diminui a velocidade)
* Descrição: Usar a leitura das teclas e multiplicar por uma constante para fazer o incremento e decremento da velocidade
* Hardware: Ligar os leds em dois pinos digital configurado como SAÍDA e as teclas em outros pinos digitais
* Comandos: pinMode, digitalWrite, delay, PULLUP
* Dica1: Usar os operadores matemáticos para aumentar e diminuir o tempo do pisca
* Dica2: A tecla quando não está pressionada fica em HIGH (1) e quando pressiona o pino é aterrado e vem para nível lógico LOW (0)
* Dica3: Todo numero multiplicado por zero 0 é igual a zero, e todo numero somado com zero é igual a ele mesmo
* Dica4: Para incrementar o tempo quando a tecla UP for pressionada, o valor fica 1, deve ser multiplicado por um numero e somado ao valor do tempo
* Dica5: Usar uma variável tipo Byte para o tempo, essa quando chega em 255 e incrementada volta a zero.
* Dica6: Multiplicar 255 por um valor para chegar ao tempo desejado,
*/

//DEFINICOES INICIAIS
#define led1 3 //Definido que o pino 3 vai se chamar "led1"
#define led4 4 //Definido que o pino 4 vai se chamar "led4"
#define teclaup 2 //Definido que o pino 2 vai chamar-se "teclaup"
#define tecladown 13 //Definido que o pino 13 vai chamar-se "tecladown"

//DECLARAcAO DE VARIAVEIS
byte tempo=25;//A variação de tempo irá ser controlada por uma variável do tipo byte , com o valor de 0,025 segundos

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1,OUTPUT);//Configurado o pino 3 como saída
pinMode(led4,OUTPUT);//Configurado o pino 4 como saída
pinMode(teclaup,INPUT_PULLUP);//Configurado o pino 2 como entrada utilizando-se um resistor de pullup
pinMode(tecladown,INPUT_PULLUP);//Configurado o pino 13 como entrada utilizando-se um resistor de pullup
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
tempo=(tempo-!digitalRead(teclaup))*25;//Quando a teclaup for pressionada irá diminuir 0,025 segundos do tempo atual
tempo=(tempo+!digitalRead(tecladown))*25;//Quando a tecladown for pressionada irá aumentar 0,025 segundos do tempo atual
digitalWrite(led1,HIGH);//Quando o programa iniciar o led1 irá acender
digitalWrite(led4,LOW);//Quando o programa iniciar o led4 irá se manter apagado
delay(tempo);//O intervalo de tempo será controlado por uma variável de valor 0,025 segundos
digitalWrite(led4,HIGH);//Quando o intervalo de tempo acabar o led4 irá acender
digitalWrite(led1,LOW);//Quando o led4 acender o led1 irá apagar
delay(tempo);//O intervalo de tempo será controlado por uma variável de valor 0,025 segundos
}
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

Exercício 1.8 - Pisca 2LEDs com Tempo Controlado  Empty Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado

Sex Jul 03, 2020 11:57 pm
Thiago, está quase, testei o programa e ainda não deu certo, ja desconfiava porque ainda não acertou a parte aritmética desse exercício.
Abaixo as considerações, se liga.
1 - Sabia que os parenteses () em uma expressão aritmérica prioriza as operações, exemplo (1+3)*2 vai reolver a soma antes da multiplicação, certo?
2 - quando usa !digitalRead(tecla) retorna 0 se a tecla não for pressionada e 1 se a tecla for pressionada, concorda?
3 - todo número multiplicado por 0 é igual a zero e todo número multiplicado por 1 é igual a ele mesmo. Essa é interessante né.

Esse programa precisa fazer com que controle a velocidade do pisca com as teclas, então se não pressionar nenhuma tecla a velocidade deve ficar conatsnte.
Veja a expressão abaixo:
valor = valor + (0 * 25); concorda que aqui o valor não sofre alteração? isso porque primeiro realizou a multiplicação depois a soma
valor = (valor + 0) * 25; veja como muda o resultado da expressão, nesse caso o valor é somado a zero, ficando igual e depois multiplicado por 25, que vai afetar em muito o valor.

Voce deve escrever a expressão como no primeiro exemplo e não como no segundo. Tá ligado?
Nota 7.0 até ajeitar o código.
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.8 - Pisca 2LEDs com Tempo Controlado  Empty Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado

Seg Jul 06, 2020 7:23 pm

/*
* Exercicio: 1.8
* Tema: Pinos Digitais
* Atividade: Fazer um pisca-pisca com 2 leds alternando entre um aceso e outro apagado com a velocidade controlada pelas teclas UP(aumenta a velocidade) e DOWN (diminui a velocidade)
* Descrição: Usar a leitura das teclas e multiplicar por uma constante para fazer o incremento e decremento da velocidade
* Hardware: Ligar os leds em dois pinos digital configurado como SAÍDA e as teclas em outros pinos digitais
* Comandos: pinMode, digitalWrite, delay, PULLUP
* Dica1: Usar os operadores matemáticos para aumentar e diminuir o tempo do pisca
* Dica2: A tecla quando não está pressionada fica em HIGH (1) e quando pressiona o pino é aterrado e vem para nível lógico LOW (0)
* Dica3: Todo numero multiplicado por zero 0 é igual a zero, e todo numero somado com zero é igual a ele mesmo
* Dica4: Para incrementar o tempo quando a tecla UP for pressionada, o valor fica 1, deve ser multiplicado por um numero e somado ao valor do tempo
* Dica5: Usar uma variável tipo Byte para o tempo, essa quando chega em 255 e incrementada volta a zero.
* Dica6: Multiplicar 255 por um valor para chegar ao tempo desejado,
*/

//DEFINICOES INICIAIS
#define led1 3 //Definido que o pino 3 vai se chamar "led1"
#define led4 4 //Definido que o pino 4 vai se chamar "led4"
#define teclaup 2 //Definido que o pino 2 vai chamar-se "teclaup"
#define tecladown 13 //Definido que o pino 13 vai chamar-se "tecladown"

//DECLARAcAO DE VARIAVEIS
byte tempo=25;//A variação de tempo irá ser controlada por uma variável do tipo byte , com o valor de 0,025 segundos

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1,OUTPUT);//Configurado o pino 3 como saída
pinMode(led4,OUTPUT);//Configurado o pino 4 como saída
pinMode(teclaup,INPUT_PULLUP);//Configurado o pino 2 como entrada utilizando-se um resistor de pullup
pinMode(tecladown,INPUT_PULLUP);//Configurado o pino 13 como entrada utilizando-se um resistor de pullup
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
tempo=tempo-(!digitalRead(teclaup)*25);//Quando a teclaup for pressionada irá diminuir 0,025 segundos do tempo atual
tempo=tempo+(!digitalRead(tecladown)*25);//Quando a tecladown for pressionada irá aumentar 0,025 segundos do tempo atual
digitalWrite(led1,HIGH);//Quando o programa iniciar o led1 irá acender
digitalWrite(led4,LOW);//Quando o programa iniciar o led4 irá se manter apagado
delay(tempo);//O intervalo de tempo será controlado por uma variável de valor 0,025 segundos
digitalWrite(led4,HIGH);//Quando o intervalo de tempo acabar o led4 irá acender
digitalWrite(led1,LOW);//Quando o led4 acender o led1 irá apagar
delay(tempo);//O intervalo de tempo será controlado por uma variável de valor 0,025 segundos
}
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

Exercício 1.8 - Pisca 2LEDs com Tempo Controlado  Empty Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado

Seg Jul 06, 2020 11:49 pm
Funcionou, aí sim. Esse era cheio de detalhes de programação. Nota 10.0
Conteúdo patrocinado

Exercício 1.8 - Pisca 2LEDs com Tempo Controlado  Empty Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado

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