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

Ir para baixo
avatar
Leonardo Santos
Mensagens : 22
Data de inscrição : 03/03/2020
Idade : 18

Exercicio 1,14 Empty Exercicio 1,14

Qui Jul 30, 2020 2:14 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 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
*/

//DEFINICOES INICIAIS
#define led1 3 //definindo que o pino 3 vai se chamar led1
#define led2 4 //definindo que o pino 4 vai se chamar led1
#define led3 5 //definindo que o pino 5 vai se chamar led1
#define led4 6 //definindo que o pino 6 vai se chamar led1
#define led5 7 //definindo que o pino 7 vai se chamar led1
#define led6 8 //definindo que o pino 8 vai se chamar led1
#define ldr A0 //definindo que o pino A0 vai se chamar led1

//DECLARAcAO DE VARIAVEIS GLOBAIS
int tempo; //programando uma variavel chamada tempo do tipo int

//INICIALIZAÇÃO DO HARDWARE
void setup() {
 Serial.begin(9600); //programando a abertura da porta serial
pinMode(led1, OUTPUT); //programando o led1 como saida
pinMode(led2, OUTPUT); //programando o led2 como saida
pinMode(led3, OUTPUT); //programando o led3 como saida
pinMode(led4, OUTPUT); //programando o led4 como saida
pinMode(led5, OUTPUT); //programando o led5 como saida
pinMode(led6, OUTPUT); //programando o led6 como saida

}

//FUNÇÕES COMPLEMENTARES
void debug(){
 Serial.print("luminosidade = "); //programando que vai aparecer o texto da luminosidade na porta serial
 Serial.println(analogRead(ldr)); //programando que vai aparecer o resultado da função (analogRead(ldr)) na porta serial
}

 void timer(){
   tempo = map(analogRead(ldr),2,930, 400, 50); //map(entrada, entMIN, entMAX, saiMIN, saiMAX)
delay(tempo);
 }


//PROGRAMA PRINCIPAL
void loop() {
debug(); //ativando o debug
digitalWrite(led1, HIGH); //programando que o led1 vai acender
timer(); //ativando o timer
digitalWrite(led1, LOW); //programando que o led1 vai apagar
digitalWrite(led2, HIGH); //programando que o led2 vai acender
timer(); //ativando o timer
digitalWrite(led2, LOW); //programando que o led2 vai apagar
digitalWrite(led3, HIGH); //programando que o led3 vai acender
timer(); //ativando o timer
digitalWrite(led3, LOW); //programando que o led3 vai apagar
digitalWrite(led4, HIGH); //programando que o led4 vai acender
timer(); //ativando o timer
digitalWrite(led4, LOW); //programando que o led4 vai apagar
digitalWrite(led5, HIGH); //programando que o led5 vai acender
timer(); //ativando o timer
digitalWrite(led5, LOW); //programando que o led5 vai apagar
digitalWrite(led6, HIGH); //programando que o led6 vai acender
timer(); //ativando o timer
digitalWrite(led6, LOW); //programando que o led6 vai apagar
}


Última edição por Leonardo Santos em Sex Ago 07, 2020 2:58 pm, editado 2 vez(es)
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

Exercicio 1,14 Empty Re: Exercicio 1,14

Qui Jul 30, 2020 10:29 pm
Leonardo, Fui testar o programa e tem diversos erros. Vou ajudar a depurar esses erros, veja abaixo o erro que deu:

teste:45:1: error: 'Serial' does not name a type

No inicio está assim teste:45 - Teste é o nome do meu arquivo .ino, o seu deve aparecer conforme salvou. o 45 é a linha que deu o erro.

Se olhar no simulide na parte do programa está com as linhas numeradas, e aparece uma bolinha azul com uma flechinha no lugar do erro.
Copiando a linha indicada e as adjacentes são essas:

void debug(); //agora o debug vai rodar
Serial.print("luminosidade = "); //agora vai aparecer o texto valor da variavel luminosidade na porta serial
Serial.println(analogRead(LDR)); //agora vai aparecer o valor da função analogRead(LDR) na porta serial pulando uma linha

No restante na mensagem de erro diz "teste:45:1: error: 'Serial' does not name a type" (diz algo a ver com Serial)

Veja que na linha anterior declarou a função debug() e deveria inicializar com { e usou ;
então o compilador ficou esperando um { e encontrou a palavra Serial, daí veio o erro.

Veja se aparece outros, observe a indicação do local do erro e revisa as linhas adjacentes, testa o programa e publica para eu corrigir
Se tiver alguma dúvida pode perguntar que respondo. Até
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos