- lucca senn dallagassa
- Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas
exercicio 1.15
Seg Jun 01, 2020 9:49 am
/*
* CURSO DE ROBOTICA 2019
*
* Exercicio: 1.15
* Tema: Pinos Analógicos
* Atividade: Controlar a velocidade do sequencial conforme a posição do trimpot
* Descrição: Usar uma entrada analógica para medir a iposição do trimpot e usar esse valor para ajustar a velocidade
* Requisito1: A cada troca de estado deve ser atualizado o tempo confoeme posição do trimpot
* Requisito2: A variação de tempo deve ser inversamente proporcional ao valor do trimpot, ou seja, quanto maior o valor do trimpot menos rápido o sequencial
* Hardware: Ligar os leds nos pino digitais configurado como SAÍDA DIGITAL e o TRIMPOT em uma entrada analógica
* Comandos: pinMode(), analogRead(), digitalWrite(),delay(), map()
* Dica1:A o conversor analógico possui 10 bits ou seja de 0 até 1024
* Dica2: Usar a função debug() para checar as variações de valor do trimpot no pino analógico
* Dica3:Pode usar a função map() para converter a variação dos valores lidos no trimpot para as variações de tempo desejadas
* Dica4: Pode usar uma função para fazer a leitura do trimpot e temporização do sequencial
*/
//DEFINICOES INICIAIS
#define buzzer 13
//DECLARAcAO DE VARIAVEIS GLOBAIS
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(buzzer, OUTPUT);
}
//FUNÇÕES COMPLEMENTARES
//PROGRAMA PRINCIPAL
void loop() {
tone(buzzer, 1000); //Frequencia é a quantidade de ciclos por segundo em Hz
delay(1000);
tone(buzzer, 2000);
delay(500);
noTone(buzzer);
delay(1000);
tone(buzzer, 3000, 500); //Frequencia Hz, duração ms
delay(2000);
}
* CURSO DE ROBOTICA 2019
*
* Exercicio: 1.15
* Tema: Pinos Analógicos
* Atividade: Controlar a velocidade do sequencial conforme a posição do trimpot
* Descrição: Usar uma entrada analógica para medir a iposição do trimpot e usar esse valor para ajustar a velocidade
* Requisito1: A cada troca de estado deve ser atualizado o tempo confoeme posição do trimpot
* Requisito2: A variação de tempo deve ser inversamente proporcional ao valor do trimpot, ou seja, quanto maior o valor do trimpot menos rápido o sequencial
* Hardware: Ligar os leds nos pino digitais configurado como SAÍDA DIGITAL e o TRIMPOT em uma entrada analógica
* Comandos: pinMode(), analogRead(), digitalWrite(),delay(), map()
* Dica1:A o conversor analógico possui 10 bits ou seja de 0 até 1024
* Dica2: Usar a função debug() para checar as variações de valor do trimpot no pino analógico
* Dica3:Pode usar a função map() para converter a variação dos valores lidos no trimpot para as variações de tempo desejadas
* Dica4: Pode usar uma função para fazer a leitura do trimpot e temporização do sequencial
*/
//DEFINICOES INICIAIS
#define buzzer 13
//DECLARAcAO DE VARIAVEIS GLOBAIS
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(buzzer, OUTPUT);
}
//FUNÇÕES COMPLEMENTARES
//PROGRAMA PRINCIPAL
void loop() {
tone(buzzer, 1000); //Frequencia é a quantidade de ciclos por segundo em Hz
delay(1000);
tone(buzzer, 2000);
delay(500);
noTone(buzzer);
delay(1000);
tone(buzzer, 3000, 500); //Frequencia Hz, duração ms
delay(2000);
}
Re: exercicio 1.15
Qua Jun 03, 2020 10:58 pm
Oi Lucca,
Não devia ter um sequencial entre esses acionamentos e buzzer?
sobre esse comentário,
tone(buzzer, 1000); //Frequencia é a quantidade de ciclos por segundo em Hz
O que escreveu é verdade, definição de frequência, mas não do comando usado.
Nota 3.0
Não devia ter um sequencial entre esses acionamentos e buzzer?
sobre esse comentário,
tone(buzzer, 1000); //Frequencia é a quantidade de ciclos por segundo em Hz
O que escreveu é verdade, definição de frequência, mas não do comando usado.
Nota 3.0
- lucca senn dallagassa
- Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas
Re: exercicio 1.15
Sáb Jul 25, 2020 9:27 am
/*
* CURSO DE ROBOTICA 2019
*
* Exercicio: 1.15
* Tema: Pinos Analógicos
* Atividade: Controlar a velocidade do sequencial conforme a posição do trimpot
* Descrição: Usar uma entrada analógica para medir a iposição do trimpot e usar esse valor para ajustar a velocidade
* Requisito1: A cada troca de estado deve ser atualizado o tempo confoeme posição do trimpot
* Requisito2: A variação de tempo deve ser inversamente proporcional ao valor do trimpot, ou seja, quanto maior o valor do trimpot menos rápido o sequencial
* Hardware: Ligar os leds nos pino digitais configurado como SAÍDA DIGITAL e o TRIMPOT em uma entrada analógica
* Comandos: pinMode(), analogRead(), digitalWrite(),delay(), map()
* Dica1:A o conversor analógico possui 10 bits ou seja de 0 até 1024
* Dica2: Usar a função debug() para checar as variações de valor do trimpot no pino analógico
* Dica3:Pode usar a função map() para converter a variação dos valores lidos no trimpot para as variações de tempo desejadas
* Dica4: Pode usar uma função para fazer a leitura do trimpot e temporização do sequencial
*/
//DEFINICOES INICIAIS
#define led1 3//Definido que o pino 3 vai se chamar led1
#define led2 4//Definido que o pino 4 vai se chamar led2
#define led3 5//Definido que o pino 5 vai se chamar led3
#define led4 6//Definido que o pino 6 vai se chamar led4
#define led5 7//Definido que o pino 6 vai se chamar led5
#define led6 8//Definido que o pino 7 vai se chamar led6
#define trimpot A0//Definido que o pino A0 vai se chamar trimpot
//DECLARAcAO DE VARIAVEIS GLOBAIS
//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT);//Programado o led1 como SAIDA
pinMode(led2, OUTPUT);//Programado o led2 como SAIDA
pinMode(led3, OUTPUT);//Programado o led3 como SAIDA
pinMode(led4, OUTPUT);//Programado o led4 como SAIDA
pinMode(led5, OUTPUT);//Programado o led5 como SAIDA
pinMode(led6, OUTPUT);//Programado o led6 como SAIDA
}
void tempo(){
map(analogRead(trimpot),2,930, 400, 50);//map(entrada, entrMin, entrMax, saidMin, saidMax//funçao para descobrir os valores de saida e entrada
debug();
}
//FUNÇÕES COMPLEMENTARES
void debug (){
Serial.print("luminosidade = ");
Serial.print(analogRead(trimpot));
Serial.print("tempo =");
Serial.println();
}
//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(led1, HIGH);//Define que o led1 acendera
tempo();//Temporizar com a funçao timer
digitalWrite(led1, LOW);//Define que o led1 apagara
digitalWrite(led2, HIGH);//Define que o led2 acendera
tempo();//Temporizar com a funçao timer
digitalWrite(led2, LOW);//Define que o led2 apagara
digitalWrite(led3, HIGH);//Define que o led3 acendera
tempo();//Temporizar com a funçao timer
digitalWrite(led3, LOW);//Define que o led3 apagara
digitalWrite(led4, HIGH);//Define que o led4 acendera
tempo();//Temporizar com a funçao timer
digitalWrite(led4, LOW);//Define que o led4 apagara
digitalWrite(led5, HIGH);//Define que o led5 acendera
tempo();//Temporizar com a funçao timer
digitalWrite(led5, LOW);//Define que o led5 apagara
digitalWrite(led6, HIGH);//Define que o led6 acendera
tempo();//Temporizar com a funçao timer
digitalWrite(led6, LOW);//Define que o led6 apagara
}
* CURSO DE ROBOTICA 2019
*
* Exercicio: 1.15
* Tema: Pinos Analógicos
* Atividade: Controlar a velocidade do sequencial conforme a posição do trimpot
* Descrição: Usar uma entrada analógica para medir a iposição do trimpot e usar esse valor para ajustar a velocidade
* Requisito1: A cada troca de estado deve ser atualizado o tempo confoeme posição do trimpot
* Requisito2: A variação de tempo deve ser inversamente proporcional ao valor do trimpot, ou seja, quanto maior o valor do trimpot menos rápido o sequencial
* Hardware: Ligar os leds nos pino digitais configurado como SAÍDA DIGITAL e o TRIMPOT em uma entrada analógica
* Comandos: pinMode(), analogRead(), digitalWrite(),delay(), map()
* Dica1:A o conversor analógico possui 10 bits ou seja de 0 até 1024
* Dica2: Usar a função debug() para checar as variações de valor do trimpot no pino analógico
* Dica3:Pode usar a função map() para converter a variação dos valores lidos no trimpot para as variações de tempo desejadas
* Dica4: Pode usar uma função para fazer a leitura do trimpot e temporização do sequencial
*/
//DEFINICOES INICIAIS
#define led1 3//Definido que o pino 3 vai se chamar led1
#define led2 4//Definido que o pino 4 vai se chamar led2
#define led3 5//Definido que o pino 5 vai se chamar led3
#define led4 6//Definido que o pino 6 vai se chamar led4
#define led5 7//Definido que o pino 6 vai se chamar led5
#define led6 8//Definido que o pino 7 vai se chamar led6
#define trimpot A0//Definido que o pino A0 vai se chamar trimpot
//DECLARAcAO DE VARIAVEIS GLOBAIS
//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT);//Programado o led1 como SAIDA
pinMode(led2, OUTPUT);//Programado o led2 como SAIDA
pinMode(led3, OUTPUT);//Programado o led3 como SAIDA
pinMode(led4, OUTPUT);//Programado o led4 como SAIDA
pinMode(led5, OUTPUT);//Programado o led5 como SAIDA
pinMode(led6, OUTPUT);//Programado o led6 como SAIDA
}
void tempo(){
map(analogRead(trimpot),2,930, 400, 50);//map(entrada, entrMin, entrMax, saidMin, saidMax//funçao para descobrir os valores de saida e entrada
debug();
}
//FUNÇÕES COMPLEMENTARES
void debug (){
Serial.print("luminosidade = ");
Serial.print(analogRead(trimpot));
Serial.print("tempo =");
Serial.println();
}
//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(led1, HIGH);//Define que o led1 acendera
tempo();//Temporizar com a funçao timer
digitalWrite(led1, LOW);//Define que o led1 apagara
digitalWrite(led2, HIGH);//Define que o led2 acendera
tempo();//Temporizar com a funçao timer
digitalWrite(led2, LOW);//Define que o led2 apagara
digitalWrite(led3, HIGH);//Define que o led3 acendera
tempo();//Temporizar com a funçao timer
digitalWrite(led3, LOW);//Define que o led3 apagara
digitalWrite(led4, HIGH);//Define que o led4 acendera
tempo();//Temporizar com a funçao timer
digitalWrite(led4, LOW);//Define que o led4 apagara
digitalWrite(led5, HIGH);//Define que o led5 acendera
tempo();//Temporizar com a funçao timer
digitalWrite(led5, LOW);//Define que o led5 apagara
digitalWrite(led6, HIGH);//Define que o led6 acendera
tempo();//Temporizar com a funçao timer
digitalWrite(led6, LOW);//Define que o led6 apagara
}
Re: exercicio 1.15
Sex Jul 31, 2020 10:08 pm
Lucca, o programa está quase perfeito.
Se voce testou, e quero acreditar que testou, deve ter percebido que quando muda a posição do trimpot a velocidade não muda.
Para entender o motivo vou te explicar a função map(), sabe que ela retorna um número cuja entrada é o valor do analoRead, e proporcional aos valores de entrada e saída da função.
Então esse número deve ser usado para controlar o temporizador, ou delay().
na função tempo() precisa carregar o valor da função map() numa variável e aplicar na função delay, assim quando alterar a posição do trimpot vai alterar a velocidade do sequencial.
Nota 6.0
Se voce testou, e quero acreditar que testou, deve ter percebido que quando muda a posição do trimpot a velocidade não muda.
Para entender o motivo vou te explicar a função map(), sabe que ela retorna um número cuja entrada é o valor do analoRead, e proporcional aos valores de entrada e saída da função.
Então esse número deve ser usado para controlar o temporizador, ou delay().
na função tempo() precisa carregar o valor da função map() numa variável e aplicar na função delay, assim quando alterar a posição do trimpot vai alterar a velocidade do sequencial.
Nota 6.0
- lucca senn dallagassa
- Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas
Re: exercicio 1.15
Ter Ago 18, 2020 8:58 am
/*
* CURSO DE ROBOTICA 2019
*
* Exercicio: 1.15
* Tema: Pinos Analógicos
* Atividade: Controlar a velocidade do sequencial conforme a posição do trimpot
* Descrição: Usar uma entrada analógica para medir a iposição do trimpot e usar esse valor para ajustar a velocidade
* Requisito1: A cada troca de estado deve ser atualizado o tempo confoeme posição do trimpot
* Requisito2: A variação de tempo deve ser inversamente proporcional ao valor do trimpot, ou seja, quanto maior o valor do trimpot menos rápido o sequencial
* Hardware: Ligar os leds nos pino digitais configurado como SAÍDA DIGITAL e o TRIMPOT em uma entrada analógica
* Comandos: pinMode(), analogRead(), digitalWrite(),delay(), map()
* Dica1:A o conversor analógico possui 10 bits ou seja de 0 até 1024
* Dica2: Usar a função debug() para checar as variações de valor do trimpot no pino analógico
* Dica3:Pode usar a função map() para converter a variação dos valores lidos no trimpot para as variações de tempo desejadas
* Dica4: Pode usar uma função para fazer a leitura do trimpot e temporização do sequencial
*/
//DEFINICOES INICIAIS
#define led1 3//Definido que o pino 3 vai se chmar led1
#define led2 4//Definido que o pino 4 vai se chmar led2
#define led3 5//Definido que o pino 5 vai se chmar led3
#define led4 6//Definido que o pino 6 vai se chmar led4
#define led5 7//Definido que o pino 7 vai se chmar led5
#define led6 8//Definido que o pino 8 vai se chmar led6
#define trimpot A0//Definido que o pino A0 vai se chmar trimpot
//DECLARAcAO DE VARIAVEIS GLOBAIS
int tempo; // Variavel tipo int nomeada tempo
//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT);//Programado o led1 como SAIDA
pinMode(led2, OUTPUT);//Programado o led2 como SAIDA
pinMode(led3, OUTPUT);//Programado o led3 como SAIDA
pinMode(led4, OUTPUT);//Programado o led4 como SAIDA
pinMode(led5, OUTPUT);//Programado o led5 como SAIDA
pinMode(led6, OUTPUT);//Programado o led6 como SAIDA
pinMode(trimpot, INPUT_PULLUP);//Programado o trimpot como ENTRADA
}
//FUNÇÕES COMPLEMENTARES
void debug (){
Serial.print("luminosidade =");//Definido que a luminosidade esta em destaque
Serial.println(analogRead(trimpot));//Depois do comando (analogRead(ldr)) ele vai pular 1 linha
}
void timer (){
tempo = map(analogRead(trimpot),2,930, 50, 400);//map(entrada, entrMin, entrMax, saidMin, saidMax)
delay(tempo);//Temporiza pelo valor do tempo
Serial.print("tempo =");
Serial.println();
}
//PROGRAMA PRINCIPAL
void loop() {
debug ();
digitalWrite(led1, HIGH);//Definido que o led1 vai acender
timer();
digitalWrite(led1, LOW);//Definido que o led1 vai apagar
digitalWrite(led2, HIGH);//Definido que o led2 vai acender
timer();
digitalWrite(led2, LOW);//Definido que o led2 vai apagar
digitalWrite(led3, HIGH);//Definido que o led3 vai acender
timer();
digitalWrite(led3, LOW);//Definido que o led3 vai apagar
digitalWrite(led4, HIGH);//Definido que o led4 vai acender
timer();
digitalWrite(led4, LOW);//Definido que o led4 vai apagar
digitalWrite(led5, HIGH);//Definido que o led5 vai acender
timer();
digitalWrite(led5, LOW);//Definido que o led5 vai apagar
digitalWrite(led6, HIGH);//Definido que o led6 vai acender
timer();
digitalWrite(led6, LOW);//Definido que o led6 vai apagar
}
Permissões neste sub-fórum
Não podes responder a tópicos
|
|