- Bryan daniel
- Mensagens : 114
Data de inscrição : 29/06/2019
Idade : 15
Escola : parque da fonte
exercício 1.14
Seg Jun 08, 2020 10:03 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercício: 1.14
* Tema: Pinos Analógicos
* Atividade: Controlar a velocidade do sequencial conforme a quantidade de luz no LDR
* Descrição: Usar uma entrada analógica para medir a intensidade da luz e usar esse valor para ajustar a velocidade
* Requisito1: A cada troca de estado deve ser atualizado o tempo conforme iluminação do ambiente
* Requisito2: A variação de tempo deve ser diretamente proporcional ao valor do ldr, ou seja, quanto mais luz mais rápido o sequencial
* Hardware: Ligar os leds nos pino digitais configurado como SAÍDA DIGITAL e o LDR 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 ldr no pino analógico
* Dica3:Pode usar a função map() para converter a variação dos valores lidos no ldr para as variações de tempo desejadas
* Dica4: Pode usar uma função para fazer a leitura do LDR e temporização do sequencial
*/
#define luz1 2 //define pino 2 como luz1
#define luz2 3 //define pino 3 como luz2
#define luz3 4 //define pino 4 como luz3
#define luz4 5 //define pino 5 como luz4
#define luz5 6 //define pino 6 como luz5
#define luz6 7 //define pino 7 como luz6
#define LDR A1 //define pino analógico 1 como LDR
int relogio; //variável se chama relogio
void setup() {
Serial.begin(9600);
pinMode(luz1, OUTPUT); //define luz1 como saída
pinMode(luz2, OUTPUT); //define luz2 como saída
pinMode(luz3, OUTPUT); //define luz3 como saída
pinMode(luz4, OUTPUT); //define luz4 como saída
pinMode(luz5, OUTPUT); //define luz5 como saída
pinMode(luz6, OUTPUT); //define luz6 como saída
}
void debug(){
Serial.print("luz = ");
Serial.print(analogRead(LDR));
Serial.print(" relogio = ");
Serial.println(relogio);
}
void tempo() {
relógio = map(analogRead(LDR), 2, 904, 1000, 50); //relógio é igual a leitura do LDR entrada minima 0 entrada máxima 1024 saída minima 1000 saída máxima 50
delay(relogio); //espera o valor do relógio
debug(); //copia o debug
}
void loop() {
digitalWrite(luz1, HIGH); //liga a luz1
tempo(); //copia o tempo
digitalWrite(luz1, LOW); //desliga a luz1
digitalWrite(luz2, HIGH); //liga a luz2
tempo(); //copia o tempo
digitalWrite(luz2, LOW); //desliga a luz2
digitalWrite(luz3, HIGH); //liga a luz3
tempo(); //copia o tempo
digitalWrite(luz3, LOW); //desliga a luz3
digitalWrite(luz4, HIGH); //liga a luz4
tempo(); //copia o tempo
digitalWrite(luz4, LOW); //desliga a luz4
digitalWrite(luz5, HIGH); //liga a luz5
tempo(); //copia o tempo
digitalWrite(luz5, LOW); //desliga a luz5
digitalWrite(luz6, HIGH); //liga a luz6
tempo(); //copia o tempo
digitalWrite(luz6, LOW); //desliga a luz6
}
* CURSO DE ROBOTICA 2020
*
* Exercício: 1.14
* Tema: Pinos Analógicos
* Atividade: Controlar a velocidade do sequencial conforme a quantidade de luz no LDR
* Descrição: Usar uma entrada analógica para medir a intensidade da luz e usar esse valor para ajustar a velocidade
* Requisito1: A cada troca de estado deve ser atualizado o tempo conforme iluminação do ambiente
* Requisito2: A variação de tempo deve ser diretamente proporcional ao valor do ldr, ou seja, quanto mais luz mais rápido o sequencial
* Hardware: Ligar os leds nos pino digitais configurado como SAÍDA DIGITAL e o LDR 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 ldr no pino analógico
* Dica3:Pode usar a função map() para converter a variação dos valores lidos no ldr para as variações de tempo desejadas
* Dica4: Pode usar uma função para fazer a leitura do LDR e temporização do sequencial
*/
#define luz1 2 //define pino 2 como luz1
#define luz2 3 //define pino 3 como luz2
#define luz3 4 //define pino 4 como luz3
#define luz4 5 //define pino 5 como luz4
#define luz5 6 //define pino 6 como luz5
#define luz6 7 //define pino 7 como luz6
#define LDR A1 //define pino analógico 1 como LDR
int relogio; //variável se chama relogio
void setup() {
Serial.begin(9600);
pinMode(luz1, OUTPUT); //define luz1 como saída
pinMode(luz2, OUTPUT); //define luz2 como saída
pinMode(luz3, OUTPUT); //define luz3 como saída
pinMode(luz4, OUTPUT); //define luz4 como saída
pinMode(luz5, OUTPUT); //define luz5 como saída
pinMode(luz6, OUTPUT); //define luz6 como saída
}
void debug(){
Serial.print("luz = ");
Serial.print(analogRead(LDR));
Serial.print(" relogio = ");
Serial.println(relogio);
}
void tempo() {
relógio = map(analogRead(LDR), 2, 904, 1000, 50); //relógio é igual a leitura do LDR entrada minima 0 entrada máxima 1024 saída minima 1000 saída máxima 50
delay(relogio); //espera o valor do relógio
debug(); //copia o debug
}
void loop() {
digitalWrite(luz1, HIGH); //liga a luz1
tempo(); //copia o tempo
digitalWrite(luz1, LOW); //desliga a luz1
digitalWrite(luz2, HIGH); //liga a luz2
tempo(); //copia o tempo
digitalWrite(luz2, LOW); //desliga a luz2
digitalWrite(luz3, HIGH); //liga a luz3
tempo(); //copia o tempo
digitalWrite(luz3, LOW); //desliga a luz3
digitalWrite(luz4, HIGH); //liga a luz4
tempo(); //copia o tempo
digitalWrite(luz4, LOW); //desliga a luz4
digitalWrite(luz5, HIGH); //liga a luz5
tempo(); //copia o tempo
digitalWrite(luz5, LOW); //desliga a luz5
digitalWrite(luz6, HIGH); //liga a luz6
tempo(); //copia o tempo
digitalWrite(luz6, LOW); //desliga a luz6
}
Re: exercício 1.14
Qua Jun 10, 2020 10:16 pm
Bryan, o programa está correto na sua semântica, mas não testou né. Se tivesse testado ia ver que variáveis não podem receber acento, em ingles não tem acento e a linguagem C não aceita.
Precisa calibrar o sensor também.
Nota 6.0
Precisa calibrar o sensor também.
Nota 6.0
- Bryan daniel
- Mensagens : 114
Data de inscrição : 29/06/2019
Idade : 15
Escola : parque da fonte
Re: exercício 1.14
Qui Jun 11, 2020 11:22 am
eu testei no tinkercad
Re: exercício 1.14
Qui Jun 11, 2020 9:44 pm
No tinkercad aceita variáveis com acentos? Na IDE do arduino não aceita.
Permissões neste sub-fórum
Não podes responder a tópicos
|
|