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

Ir para baixo
Diogo Penha Marques
Diogo Penha Marques
Mensagens : 107
Data de inscrição : 29/02/2024
Idade : 14
Escola : Colégio Estadual da Colônia Murici

Diogo Saraiva Exercício 3.17 Empty Diogo Saraiva Exercício 3.17

Sáb Ago 03, 2024 11:19 am
/*
* CURSO DE ROBOTICA 2019
*
* Exercicio: 3.17
* Tema: Controle RGB pelo terminal
* Atividade: Controlar os leds RGB pelo terminal, Letras maiusculas acendem o LEDs e minusculas apagam os LEDs (R, G e B)
* Descrição: Receber o caractere pela serial, reconhecer o caractere e comandar os LEDS RGB, quando receber Miuscula acende o led e minuscula apaga o led
* Hardware: Display ligado RS=>pino D12; EN=>pino D13; D4=>pino D4; D5=>pino D5; D6=>pino D6; D7=>pino D7, o terminal usa a porta USB do arduino,
* Hardware2: Neste exercício vamos configurar os pinos analógicos para funcionar como pinos digitais, no caso A4=D18 ; A3=D17 ; A2=D16 ;
* Comandos: Serial.begin(9600); lcd.print(); Serial.available(); Serial.print(); pinMode();
* Dica1: A configuração da serial usa velocidade padrão de 9600, poderia ser alterado caso necessite maior performance
* Dica2: Na interface do arduino abrir o terminal em ferramentas - Monitor serial ou ctr+shift+M
* Dica3: Enviar para o terminal \n para nova linha ou \r para retorno de carro
* Dica4: Checar se o valor enviado está correto e enviar mensagem de erro se os valores não forem numeros
* Dica5: O digito R acende o led Vermelho e o digito r apaga o led Vermelho
* Dica6: O digito G acende o led Verde e o digito g apaga o led Verde
* Dica7: O digito B acende o led Azul e o digito b apaga o led Azul
* Dica8: Para converter os pinos analógicos em digital, por exemplo, para o pino A2 Usar pinMode(16, OUTPUT);
* Dica9: No terminal enviar texto informando o status do led
* Dica10:No display informas R=OFF G=OFF na outra linha B=OFF
*/

//DEFINICOES INICIAIS
#include //Carrega a biblioteca com as funções do display
#define ledR 2 //led vermelho ligado no pino A2 que convertido para digital 2
#define ledG 3 //led vermelho ligado no pino A3 que convertido para digital 3
#define ledB 8 //led vermelho ligado no pino A4 que convertido para digital 4

//DECLARAcAO DE VARIAVEIS GLOBAIS
LiquidCrystal lcd(12,13,4,5,6,7); //Setup conforme as ligações realizadas RS-EN-D4-D5-D6-D7
byte caractere; //Variavel usda para guardar a leitura da serial

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//Inicia a porta serial em 9600 bps
lcd.begin(16,2);//Inicia o lcd em 16 colunas e 2 linhas
pinMode(ledR, OUTPUT);//Define ledR como saida
pinMode(ledG, OUTPUT);//Define ledG como saida
pinMode(ledB, OUTPUT);//Define ledB como saida
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
 if(Serial.available())//Se o numero no Monitor for maior que 0:
 {  
   caractere = Serial.read();//Caracter igual a leitura do monitor em decimal
   lcd.clear();//Limpa o display e coloca na 1ª coluna e 1ª linha
   if(caractere == 82)  {//Se caracter for igual a 82(R em decimal), Execute:
     digitalWrite(ledR, HIGH);//Ligue o ledR
     lcd.print("Liga led");//Mostre no display "Liga led"
     lcd.setCursor(0,1);//Coloca o cursor na primeira coluna e na segunda linha
     lcd.print("Vermelho");//Mostra no display "Vermelho"
     delay(1000);//Tempo de espera de 1 segundo
     lcd.clear();//Limpa o display e coloca na 1ª coluna e 1ª linha
   }
   if(caractere == 71)  {//Se caracter for igual a 71(G em decimal), Execute:
     digitalWrite(ledG, HIGH);//Ligue o ledG
     lcd.print("Liga led");//Mostre no display "Liga led"
     lcd.setCursor(0,1);//Coloca o cursor na primeira coluna e na segunda linha
     lcd.print("Verde");//Mostra no display "Verde"
     delay(1000);//Tempo de espera de 1 segundo
     lcd.clear();//Limpa o display e coloca na 1ª coluna e 1ª linha
   }
   if(caractere == 66)  {//Se caracter for igual a 66(B em decimal), Execute:
     digitalWrite(ledB, HIGH);//Ligue o ledB
     lcd.print("Liga led");//Mostre no display "Liga led"
     lcd.setCursor(0,1);//Coloca o cursor na primeira coluna e na segunda linha
     lcd.print("Azul");//Mostra no display "Azul"
     delay(1000);//Tempo de espera de 1 segundo
     lcd.clear();//Limpa o display e coloca na 1ª coluna e 1ª linha
   }
   if(caractere == 114)  {//Se caracter for igual a 114(r em decimal), Execute:
     digitalWrite(ledR, LOW);//Desligue o ledR
     lcd.print("Desliga led");//Mostre no display "Desliga led"
     lcd.setCursor(0,1);//Coloca o cursor na primeira coluna e na segunda linha
     lcd.print("Vermelho");//Mostra no display "Vermelho"
     delay(1000);//Tempo de espera de 1 segundo
     lcd.clear();//Limpa o display e coloca na 1ª coluna e 1ª linha
   }
   if(caractere == 103)  {//Se caracter for igual a 82(g em decimal), Execute:
     digitalWrite(ledG, LOW);//Desligue o ledG
     lcd.print("Desliga led");//Mostre no display "Desliga led"
     lcd.setCursor(0,1);//Coloca o cursor na primeira coluna e na segunda linha
     lcd.print("Verde");//Mostra no display "Verde"
     delay(1000);//Tempo de espera de 1 segundo
     lcd.clear();//Limpa o display e coloca na 1ª coluna e 1ª linha
   }
   if(caractere == 98)  {//Se caracter for igual a 82(b em decimal), Execute:
     digitalWrite(ledB, LOW);//Desligue o ledB
     lcd.print("Desliga led");//Mostre no display "Desliga led"
     lcd.setCursor(0,1);//Coloca o cursor na primeira coluna e na segunda linha
     lcd.print("Azul");//Mostra no display "Azul"
     delay(1000);//Tempo de espera de 1 segundo
     lcd.clear();//Limpa o display e coloca na 1ª coluna e 1ª linha
   }
 }
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5798
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Diogo Saraiva Exercício 3.17 Empty Re: Diogo Saraiva Exercício 3.17

Sáb Set 14, 2024 1:38 pm
Oi Diogo, tem um pequeno detalhe não atentou, para controlar o brilho dos leds precisa usar pinos PWM,
Diogo Penha Marques
Diogo Penha Marques
Mensagens : 107
Data de inscrição : 29/02/2024
Idade : 14
Escola : Colégio Estadual da Colônia Murici

Diogo Saraiva Exercício 3.17 Empty Re: Diogo Saraiva Exercício 3.17

Qui Set 19, 2024 2:46 pm
Paulo Augusto Batista escreveu:Oi Diogo, tem um pequeno detalhe não atentou, para controlar o brilho dos leds precisa usar pinos PWM,
Esse exercício não precisa controlar o brilho
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5798
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Diogo Saraiva Exercício 3.17 Empty Re: Diogo Saraiva Exercício 3.17

Qua Out 23, 2024 8:56 pm
Correto, vacilo meu. Nota 10.0
Conteúdo patrocinado

Diogo Saraiva Exercício 3.17 Empty Re: Diogo Saraiva Exercício 3.17

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