- Thiaguin
- Mensagens : 176
Data de inscrição : 03/03/2020
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
}
* 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
}
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.
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
- Mensagens : 176
Data de inscrição : 03/03/2020
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
}
* 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
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.
Vai somar somente quando a tecla for pressionada, por isso altera o tempo do delay() e assim controla a velocidade.
- Thiaguin
- Mensagens : 176
Data de inscrição : 03/03/2020
Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado
Ter Jun 09, 2020 4:21 pm
Ahhhh ! Ok
- Thiaguin
- Mensagens : 176
Data de inscrição : 03/03/2020
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
}
* 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
- Mensagens : 176
Data de inscrição : 03/03/2020
Re: Exercício 1.8 - Pisca 2LEDs com Tempo Controlado
Qui Jun 11, 2020 2:01 pm
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;
deveria ser :
tempo = tempo - tecla * multiplicador;
e fez :
tempo = tempo - tempo - tecla * multiplicadot;
- Thiaguin
- Mensagens : 176
Data de inscrição : 03/03/2020
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
}
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
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.
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
- Mensagens : 176
Data de inscrição : 03/03/2020
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
}
* 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
}
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.
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
- Mensagens : 176
Data de inscrição : 03/03/2020
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
}
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
Permissões neste sub-fórum
Não podes responder a tópicos
|
|