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

Ir para baixo
lucca senn dallagassa
lucca senn dallagassa
Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas

exercicio 3.17  Empty exercicio 3.17

Ter Set 21, 2021 9:55 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 16 //led vermelho ligado no pino A2 que convertido para digital 16
#define ledG 17 //led vermelho ligado no pino A3 que convertido para digital 17
#define ledB 18 //led vermelho ligado no pino A4 que convertido para digital 18

//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
byte numero; //Variavel usada para guardar o numero recuperado

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
Serial.print("Digite uma letra RBG ou rgb para controlar o led /n");
pinMode(ledR, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(ledB, OUTPUT);
lcd.home();
lcd.print("R=OFF G=OFF");
lcd.setCursor(0,1);
lcd.print("B=OFF");
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
if(Serial.available() > 0){
caractere = Serial.read();
}
if(caractere != 0){
switch(caractere){
case('R'):
digitalWrite(ledR, HIGH);
Serial.print("Led R aceso! /n");
lcd.setCursor(2,0);
lcd.print("ON ");
break;
case('r'):
digitalWrite(ledR, LOW);
Serial.print("Led R apagado! /n");
lcd.setCursor(2,0);
lcd.print("ON ");
break;

}
}
}
não terminei mas na proxima aula termino
alvaro 123456
alvaro 123456
Mensagens : 476
Data de inscrição : 27/04/2019
Idade : 17

exercicio 3.17  Empty Re: exercicio 3.17

Ter Set 21, 2021 10:05 am
Oi Lucca você já fez o 3.17, mas refaça pois seus comentários estão igual ao do exercício do Thiago Mello veja a vídeo aula pois vou fazer perguntas sobre o exercício Exclamation Exclamation Exclamation Exclamation



https://www.youtube.com/watch?v=YJ7mhmT1hX4
lucca senn dallagassa
lucca senn dallagassa
Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas

exercicio 3.17  Empty Re: exercicio 3.17

Qui Set 23, 2021 8:44 am
mais alvaro o prof deu o exercicio com os comentarios
vai la ve nos exercicios propostos do capitulo 3 pra voce ve
alvaro 123456
alvaro 123456
Mensagens : 476
Data de inscrição : 27/04/2019
Idade : 17

exercicio 3.17  Empty Re: exercicio 3.17

Qui Set 23, 2021 8:57 am
A blz eu tinha visto a vídeo aula. Mas vou fazer perguntas para melhor entendimento do programa

1) Qual é a diferença entre if(Serial.available() > 0){ ou if(caractere != 0){ ?

2) O que o switch faz ?

3) Para que serve o break ?
lucca senn dallagassa
lucca senn dallagassa
Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas

exercicio 3.17  Empty Re: exercicio 3.17

Qui Set 23, 2021 9:51 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 16 //led vermelho ligado no pino A2 que convertido para digital 16
#define ledG 17 //led vermelho ligado no pino A3 que convertido para digital 17
#define ledB 18 //led vermelho ligado no pino A4 que convertido para digital 18

//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
byte numero; //Variavel usada para guardar o numero recuperado

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//Iniciada a porta serial
lcd.begin(16, 2);
Serial.print("Digite uma letra RBG ou rgb para controlar o led /n");
pinMode(ledR, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(ledB, OUTPUT);
lcd.home();
lcd.print("R=OFF G=OFF");
lcd.setCursor(0,1);
lcd.print("B=OFF");
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
if(Serial.available() > 0){
caractere = Serial.read();
}
if(caractere != 0){
switch(caractere){
case('R'):
digitalWrite(ledR, HIGH);
Serial.print("Led R aceso! /n");
lcd.setCursor(2,0);
lcd.print("ON ");
break;
case('r'):
digitalWrite(ledR, LOW);
Serial.print("Led R apagado! /n");
lcd.setCursor(2,0);
lcd.print("OFF ");
break;
case(71):
digitalWrite(ledG, HIGH);
Serial.print("Led G aceso! /n");
lcd.setCursor(8,0);
lcd.print("ON ");
break;
case(103):
digitalWrite(ledG, LOW);
Serial.print("Led G apagado! /n");
lcd.setCursor(8,0);
lcd.print("OFF ");
break;
case(66):
digitalWrite(ledB, HIGH);
Serial.print("Led B aceso! /n");
lcd.setCursor(2,1);
lcd.print("ON ");
break;
case(103):
digitalWrite(ledG, LOW);
Serial.print("Led B apagado! /n");
lcd.setCursor(2,1);
lcd.print("OFF ");
break;
default:
Serial.print("valor incorreto, digite novamente/n");
caractere = 0;
break;
}
caractere = 0;
Serial.print("Digite uma letra RGB ou rgb para controlar o led /n");
}
}




/*
perguntas para melhor entendimento do programa

1) Qual é a diferença entre if(Serial.available() > 0){ ou if(caractere != 0){ ?

2) O que o switch faz ?

3) Para que serve o break ?

Não terminei na proxima aula termino
lucca senn dallagassa
lucca senn dallagassa
Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas

exercicio 3.17  Empty Re: exercicio 3.17

Qui Set 30, 2021 9:04 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 16 //led vermelho ligado no pino A2 que convertido para digital 16
#define ledG 17 //led vermelho ligado no pino A3 que convertido para digital 17
#define ledB 18 //led vermelho ligado no pino A4 que convertido para digital 18

//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
byte numero; //Variavel usada para guardar o numero recuperado

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//Iniciada a porta serial
lcd.begin(16, 2);//O cursor sera pocisionado na colona 16 e na linha 2
Serial.print("Digite uma letra RBG ou rgb para controlar o led /n");//A frase sera encaminhada pra o display
pinMode(ledR, OUTPUT);//Programado ledR como saida
pinMode(ledG, OUTPUT);//Programado ledG como saida
pinMode(ledB, OUTPUT);//Programado ledB como saida
lcd.home();//
lcd.print("R=OFF G=OFF");//A frase sera encaminhada pra o display
lcd.setCursor(0,1);//o cursor sera posicionado na coluna 0 e na linha 1
lcd.print("B=OFF");//A frase sera encaminhada pra o display
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
if(Serial.available() > 0){
caractere = Serial.read();
}
if(caractere != 0){
switch(caractere){
case('R'):
digitalWrite(ledR, HIGH);
Serial.print("Led R aceso! /n");
lcd.setCursor(2,0);
lcd.print("ON ");
break;
case('r'):
digitalWrite(ledR, LOW);
Serial.print("Led R apagado! /n");
lcd.setCursor(2,0);
lcd.print("OFF ");
break;
case(71):
digitalWrite(ledG, HIGH);
Serial.print("Led G aceso! /n");
lcd.setCursor(8,0);
lcd.print("ON ");
break;
case(103):
digitalWrite(ledG, LOW);
Serial.print("Led G apagado! /n");
lcd.setCursor(8,0);
lcd.print("OFF ");
break;
case(66):
digitalWrite(ledB, HIGH);
Serial.print("Led B aceso! /n");
lcd.setCursor(2,1);
lcd.print("ON ");
break;
case(103):
digitalWrite(ledG, LOW);
Serial.print("Led B apagado! /n");
lcd.setCursor(2,1);
lcd.print("OFF ");
break;
default:
Serial.print("valor incorreto, digite novamente/n");
caractere = 0;
break;
}
caractere = 0;
Serial.print("Digite uma letra RGB ou rgb para controlar o led /n");
}
}




/*
perguntas para melhor entendimento do programa

1) Qual é a diferença entre if(Serial.available() > 0){ ou if(caractere != 0){ ?

2) O que o switch faz ?

3) Para que serve o break ?
lucca senn dallagassa
lucca senn dallagassa
Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas

exercicio 3.17  Empty Re: exercicio 3.17

Ter Out 05, 2021 8:44 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 16 //led vermelho ligado no pino A2 que convertido para digital 16
#define ledG 17 //led vermelho ligado no pino A3 que convertido para digital 17
#define ledB 18 //led vermelho ligado no pino A4 que convertido para digital 18

//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
byte numero; //Variavel usada para guardar o numero recuperado

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//Iniciada a porta serial
lcd.begin(16, 2);//o cursor foi pocisionado na coluna 16 e linha 2
Serial.print("Digite uma letra RBG ou rgb para controlar o led /n");//a menasagem ira aparecer no display
pinMode(ledR, OUTPUT);//Programado ledR como saida
pinMode(ledG, OUTPUT);//Programado ledR como saida
pinMode(ledB, OUTPUT);//Programado ledR como saida
lcd.home();
lcd.print("R=OFF G=OFF");//a menasagem ira aparecer no display
lcd.setCursor(0,1);//o cursor sera posicionar na coluna 0 e na linha 1 ou seja na metade
lcd.print("B=OFF");//a menasagem ira aparecer no display
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
if(Serial.available() > 0){
caractere = Serial.read();
}
if(caractere != 0){
switch(caractere){
case('R'):
digitalWrite(ledR, HIGH);
Serial.print("Led R aceso! /n");
lcd.setCursor(2,0);
lcd.print("ON ");
break;
case('r'):
digitalWrite(ledR, LOW);
Serial.print("Led R apagado! /n");
lcd.setCursor(2,0);
lcd.print("OFF ");
break;
case(71):
digitalWrite(ledG, HIGH);
Serial.print("Led G aceso! /n");
lcd.setCursor(8,0);
lcd.print("ON ");
break;
case(103):
digitalWrite(ledG, LOW);
Serial.print("Led G apagado! /n");
lcd.setCursor(8,0);
lcd.print("OFF ");
break;
case(66):
digitalWrite(ledB, HIGH);
Serial.print("Led B aceso! /n");
lcd.setCursor(2,1);
lcd.print("ON ");
break;
case(103):
digitalWrite(ledG, LOW);
Serial.print("Led B apagado! /n");
lcd.setCursor(2,1);
lcd.print("OFF ");
break;
default:
Serial.print("valor incorreto, digite novamente/n");
caractere = 0;
break;
}
caractere = 0;
Serial.print("Digite uma letra RGB ou rgb para controlar o led /n");
}
}




/*
perguntas para melhor entendimento do programa

1) Qual é a diferença entre if(Serial.available() > 0){ ou if(caractere != 0){ ?

2) O que o switch faz ?

3) Para que serve o break ?
avatar
mateus martins kunz
Mensagens : 45
Data de inscrição : 17/09/2021
Escola : escola estadual lindaura ribeiro lucas

exercicio 3.17  Empty Re: exercicio 3.17

Ter Out 05, 2021 9:44 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 16 //led vermelho ligado no pino A2 que convertido para digital 16
#define ledG 17 //led vermelho ligado no pino A3 que convertido para digital 17
#define ledB 18 //led vermelho ligado no pino A4 que convertido para digital 18

//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
byte numero; //Variavel usada para guardar o numero recuperado

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//Iniciada a porta serial
lcd.begin(16, 2);//o cursor foi pocisionado na coluna 16 e linha 2
Serial.print("Digite uma letra RBG ou rgb para controlar o led /n");//a menasagem ira aparecer no display
pinMode(ledR, OUTPUT);//Programado ledR como saida
pinMode(ledG, OUTPUT);//Programado ledR como saida
pinMode(ledB, OUTPUT);//Programado ledR como saida
lcd.home();
lcd.print("R=OFF G=OFF");//a menasagem ira aparecer no display
lcd.setCursor(0,1);//o cursor sera posicionar na coluna 0 e na linha 1 ou seja na metade
lcd.print("B=OFF");//a menasagem ira aparecer no display
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
if(Serial.available() > 0){
caractere = Serial.read();
}
if(caractere != 0){
switch(caractere){
case('R')://Aberto o case R
digitalWrite(ledR, HIGH);//Acende o led
Serial.print("Led R aceso! /n");//a mensagem aparece no display
lcd.setCursor(2,0);//o cursor foi setado na coluna 2 e na linha 0
lcd.print("ON ");//a mensagem aparece no display
break;//espaço de tempo entre os cases
case('r')://Aberto o case r
digitalWrite(ledR, LOW);//Apaga o led
Serial.print("Led R apagado! /n");//a mensagem aparece no display
lcd.setCursor(2,0);//o cursor foi setado na coluna 2 e na linha 0
lcd.print("OFF ");//a mensagem aparece no display
break;//espaço de tempo entre os cases
case(71)://Aberto o case G
digitalWrite(ledG, HIGH);//Acende o led
Serial.print("Led G aceso! /n");//a mensagem aparece no display
lcd.setCursor(8,0);//o cursor foi setado na coluna 8 e na linha 0
lcd.print("ON ");//a mensagem aparece no display
break;//espaço de tempo entre os cases
case(103)://Aberto o case g
digitalWrite(ledG, LOW);//Apaga o led
Serial.print("Led G apagado! /n");//a mensagem aparece no display
lcd.setCursor(8,0);//o cursor foi setado na coluna 8 e na linha 0
lcd.print("OFF ");//a mensagem aparece no display
break;//espaço de tempo entre os cases
case(66)://Aberto o case B
digitalWrite(ledB, HIGH);//Acende o led
Serial.print("Led B aceso! /n");//a mensagem aparece no display
lcd.setCursor(2,1);//o cursor foi setado na coluna 2 e na linha 1
lcd.print("ON ");//a mensagem aparece no display
break;//espaço de tempo entre os cases
case(103)://Aberto o case b
digitalWrite(ledG, LOW);//Apaga o led
Serial.print("Led B apagado! /n");//a mensagem aparece no display
lcd.setCursor(2,1);//o cursor foi setado na coluna 2 e na linha 1
lcd.print("OFF ");//a mensagem aparece no display
break;//espaço de tempo entre os cases
default:
Serial.print("valor incorreto, digite novamente/n");//a mensagem aparece no display
caractere = 0;//variavel e = a 0
break;//espaço de tempo entre os cases
}
caractere = 0;//variavel e = a 0
Serial.print("Digite uma letra RGB ou rgb para controlar o led /n");//a mensagem aparece no display
}
}





//perguntas para melhor entendimento do programa

//1) Qual é a diferença entre if(Serial.available() > 0){ ou if(caractere != 0){ ?

//2) O que o switch faz ?

//3) Para que serve o break ?



nao terminei termino na proxiama aula
lucca senn dallagassa
lucca senn dallagassa
Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas

exercicio 3.17  Empty Re: exercicio 3.17

Ter Out 05, 2021 9:46 am
desculpa prof mateus deixou a conta dele no computador fui eu que fiz o programa
lucca senn dallagassa
lucca senn dallagassa
Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas

exercicio 3.17  Empty Re: exercicio 3.17

Sáb Out 09, 2021 9:00 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 16 //led vermelho ligado no pino A2 que convertido para digital 16
#define ledG 17 //led vermelho ligado no pino A3 que convertido para digital 17
#define ledB 18 //led vermelho ligado no pino A4 que convertido para digital 18

//DECLARAcAO DE VARIAVEIS GLOBAIS
LiquidCrystal lcd(12,11,10,9,8,7); //Setup conforme as ligações realizadas RS-EN-D4-D5-D6-D7
byte caractere; //Variavel usda para guardar a leitura da serial
byte numero; //Variavel usada para guardar o numero recuperado

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//Iniciada a porta serial
lcd.begin(16, 2);//o cursor foi pocisionado na coluna 16 e linha 2
Serial.print("Digite uma letra RBG ou rgb para controlar o led /n");//a menasagem ira aparecer no display
pinMode(ledR, OUTPUT);//Programado ledR como saida
pinMode(ledG, OUTPUT);//Programado ledR como saida
pinMode(ledB, OUTPUT);//Programado ledR como saida
lcd.home();//o caractere vai pra primeira posiçao
lcd.print("R=OFF G=OFF");//a menasagem ira aparecer no display
lcd.setCursor(0,1);//o cursor sera posicionar na coluna 0 e na linha 1 ou seja na metade
lcd.print("B=OFF");//a menasagem ira aparecer no display
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
if(Serial.available() > 0){
caractere = Serial.read();
}
if(caractere != 0){
switch(caractere){
case('R')://Aberto o case R
digitalWrite(ledR, HIGH);//Acende o led
Serial.print("Led R aceso! /n");//a mensagem aparece no display
lcd.setCursor(2,0);//o cursor foi setado na coluna 2 e na linha 0
lcd.print("ON ");//a mensagem aparece no display
break;//espaço de tempo entre os cases
case('r')://Aberto o case r
digitalWrite(ledR, LOW);//Apaga o led
Serial.print("Led R apagado! /n");//a mensagem aparece no display
lcd.setCursor(2,0);//o cursor foi setado na coluna 2 e na linha 0
lcd.print("OFF ");//a mensagem aparece no display
break;//espaço de tempo entre os cases
case(71)://Aberto o case G
digitalWrite(ledG, HIGH);//Acende o led
Serial.print("Led G aceso! /n");//a mensagem aparece no display
lcd.setCursor(8,0);//o cursor foi setado na coluna 8 e na linha 0
lcd.print("ON ");//a mensagem aparece no display
break;//espaço de tempo entre os cases
case(103)://Aberto o case g
digitalWrite(ledG, LOW);//Apaga o led
Serial.print("Led G apagado! /n");//a mensagem aparece no display
lcd.setCursor(8,0);//o cursor foi setado na coluna 8 e na linha 0
lcd.print("OFF ");//a mensagem aparece no display
break;//espaço de tempo entre os cases
case(66)://Aberto o case B
digitalWrite(ledB, HIGH);//Acende o led
Serial.print("Led B aceso! /n");//a mensagem aparece no display
lcd.setCursor(2,1);//o cursor foi setado na coluna 2 e na linha 1
lcd.print("ON ");//a mensagem aparece no display
break;//espaço de tempo entre os cases
case(103)://Aberto o case b
digitalWrite(ledG, LOW);//Apaga o led
Serial.print("Led B apagado! /n");//a mensagem aparece no display
lcd.setCursor(2,1);//o cursor foi setado na coluna 2 e na linha 1
lcd.print("OFF ");//a mensagem aparece no display
break;//espaço de tempo entre os cases
default:
Serial.print("valor incorreto, digite novamente/n");//a mensagem aparece no display
caractere = 0;//variavel e = a 0
break;//espaço de tempo entre os cases
}
caractere = 0;//variavel e = a 0
Serial.print("Digite uma letra RGB ou rgb para controlar o led /n");//a mensagem aparece no display
}
}
lucca senn dallagassa
lucca senn dallagassa
Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas

exercicio 3.17  Empty Re: exercicio 3.17

Sáb Out 09, 2021 10:09 am
/*
* CURSO DE ROBOTICA 2021
*
* 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 //A biblioteca com as funções do display está carregada
#define ledR 3//Definido que o pino 3 irá se chamar ledR
#define ledG 4//Definido que o pino 4 irá se chamar ledG
#define ledB 5//Definido que o pino 5 irá se chamar ledB

//DECLARAcAO DE VARIAVEIS GLOBAIS
LiquidCrystal lcd(12,11,10,9,8,7);//Os pinos serão ligados nessa sequência ao display
char caractere;//Variável para serem guardados os caracteres recebidos pela porta serial

//INICIALIZAÇAO DE HARDWARE
void setup() {
Serial.begin(9600);//Porta serial inicializada com velocidade de 9600 bps
Serial.print("DIGITE UM VALOR OU LETRA RBG PRA CONTROLAR O LED /");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
lcd.begin(16,2);//Display inicializado, o display usado possui 16 colunas e 2 linhas
pinMode(ledR, OUTPUT);//Configurado o pino 3 como saída
pinMode(ledG, OUTPUT);//Configurado o pino 4 como saída
pinMode(ledB, OUTPUT);//Configurado o pino 5 como saída
lcd.home();//O cursor irá para o início da primeira linha do display
lcd.print("R=OFF G=OFF");//O texto entre aspas será escrito no display
lcd.setCursor(0,1);//O cursor irá para o início da segunda linha do display
lcd.print("B=OFF");//O texto entre aspas será escrito no display
}

//FUNÇÕES COMPLEMENTARES

//PROGRAMA PRINCIPAL
void loop() {
if(Serial.available() > 0){//Se a porta serial receber um valor, irá acionar o bloco abaixo
caractere = Serial.read();//Os valores lidos na porta serial serão somados à variável caractere
}
if(caractere != 0){//Se houver algum valor que seja diferente de 0 na variável caractere, irá acionar o bloco abaixo
switch(caractere){//Irá testar o conteúdo da variável caractere
case('R')://Se houver um R, irá rodar o bloco abaixo
digitalWrite(ledR,HIGH);//O ledR irá acender
Serial.print("LED R ACIONADO!! ");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
lcd.setCursor(2,0);//O cursor irá para a coluna 2 da primeira linha do display
lcd.print("ON ");//O texto entre aspas será escrito no display
break;//O programa irá sair desse bloco
case('G')://Se houver um G, irá rodar o bloco abaixo
digitalWrite(ledG,HIGH);//O ledG irá acender
Serial.print("LED G ACIONADO!!");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
lcd.setCursor(8,0);//O cursor irá para a coluna 8 da primeira linha do display
lcd.print("ON ");//O texto entre aspas será escrito no display
break;//O programa irá sair desse bloco
case('B')://Se houver um B, irá rodar o bloco abaixo
digitalWrite(ledB,HIGH);//O ledB irá acender
Serial.print("LED B ACIONADO!!");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
lcd.setCursor(2,1);//O cursor irá para a coluna 2 da segunda linha do display
lcd.print("ON ");//O texto entre aspas será escrito no display
break;//O programa irá sair desse bloco
case('r')://Se houver um r, irá rodar o bloco abaixo
digitalWrite(ledR,LOW);//O ledR irá apagar
Serial.print("LED R DESACIONADO!!");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
lcd.setCursor(2,0);//O cursor irá para a coluna 2 da primeira linha do display
lcd.print("OFF");//O texto entre aspas será escrito no display
break;//O programa irá sair desse bloco
case('g')://Se houver um r, irá rodar o bloco abaixo
digitalWrite(ledG,LOW);//O ledG irá apagar
Serial.print("LED G DESACIONADO!!");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
lcd.setCursor(8,0);//O cursor irá para a coluna 8 da primeira linha do display
lcd.print("OFF");//O texto entre aspas será escrito no display
break;//O programa irá sair desse bloco
case('b')://Se houver um r, irá rodar o bloco abaixo
digitalWrite(ledB,LOW);//O ledB irá apagar
Serial.print("LED B DESACIONADO!!");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
lcd.setCursor(2,1);//O cursor irá para a coluna 2 da segunda linha linha do display
lcd.print("OFF");//O texto entre aspas será escrito no display
break;//O programa irá sair desse bloco
default://Se não for nenhum dos caracteres acima, irá rodar o bloco abaixo
Serial.print("LETRA INCORRETA ESCREVA NOVAMENTE!!");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
break;//O programa irá sair desse bloco
}
caractere = 0;//O valor da variável caractere passará a ser 0
Serial.print("Digite uma letra RGB ou rgb pra controlar o led \n");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
}
}
alvaro 123456
alvaro 123456
Mensagens : 476
Data de inscrição : 27/04/2019
Idade : 17

exercicio 3.17  Empty Re: exercicio 3.17

Qua Out 27, 2021 2:10 pm
Oi
Lucca
você não respondeu as perguntas que eu te fiz

1) Qual é a diferença entre if(Serial.available() > 0){ ou if(caractere != 0){ ?

2) O que o switch faz ?

3) Para que serve o break ?
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 3.17  Empty Re: exercicio 3.17

Ter Nov 16, 2021 10:27 pm
Lucca, esse programa foi copiado do Thiago. nota 5.0
Preciso que refaça ele por voce mesmo.
lucca senn dallagassa
lucca senn dallagassa
Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas

exercicio 3.17  Empty Re: exercicio 3.17

Qui Nov 18, 2021 9:14 am
/*
* CURSO DE ROBOTICA 2021
*
* 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 //A biblioteca com as funções do display está carregada
#define ledR 3//Definido que o pino 3 irá se chamar ledR
#define ledG 4//Definido que o pino 4 irá se chamar ledG
#define ledB 5//Definido que o pino 5 irá se chamar ledB

//DECLARAcAO DE VARIAVEIS GLOBAIS
LiquidCrystal lcd(12,11,10,9,8,7);//Os pinos serão ligados nessa sequência ao display
char caractere;//Variavel do tipo char para guardar os valores recebidos pela porta serial

//INICIALIZAÇAO DE HARDWARE
void setup() {
Serial.begin(9600);//Porta serial inicializada
Serial.print("Digire uma letra ou numero!! /");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
lcd.begin(16,2);//Iniciado o display na 2 linha e 16 coluna
pinMode(ledR, OUTPUT);//Configurado o ledR como saída
pinMode(ledG, OUTPUT);//Configurado o ledG como saída
pinMode(ledB, OUTPUT);//Configurado o ledB como saída
lcd.home();//O cursor irá para o início do display
lcd.print("R=OFF G=OFF");//O texto sera enviado para o display
lcd.setCursor(0,1);//O cursor sera posicionado na linha 0 e na coluna 1
lcd.print("B=OFF");//O texto sera enviado para o display
}

//FUNÇÕES COMPLEMENTARES

//PROGRAMA PRINCIPAL
void loop() {
if(Serial.available() > 0){//Se a porta serial receber um valor, irá acionar o bloco abaixo
caractere = Serial.read();//Os valores lidos na porta serial serão somados à variável caractere
}
if(caractere != 0){//Se houver algum valor que seja diferente de 0 na variável caractere, irá acionar o bloco abaixo
switch(caractere){//Irá testar o conteúdo da variável caractere
case('R')://Se houver um R, irá rodar o bloco abaixo
digitalWrite(ledR,HIGH);//O ledR irá acender
Serial.print("led R aceso! ");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
lcd.setCursor(2,0);//O cursor irá para a coluna 2 da primeira linha do display
lcd.print("ON ");//O texto entre aspas será escrito no display
break;//O programa irá sair desse bloco
case('G')://Se houver um G, irá rodar o bloco abaixo
digitalWrite(ledG,HIGH);//O ledG irá acender
Serial.print("led G aceso!!");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
lcd.setCursor(8,0);//O cursor irá para a coluna 8 da primeira linha do display
lcd.print("ON ");//O texto entre aspas será escrito no display
break;//O programa irá sair desse bloco
case('B')://Se houver um B, irá rodar o bloco abaixo
digitalWrite(ledB,HIGH);//O ledB irá acender
Serial.print("led B aceso!!");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
lcd.setCursor(2,1);//O cursor irá para a coluna 2 da segunda linha do display
lcd.print("ON ");//O texto entre aspas será escrito no display
break;//O programa irá sair desse bloco
case('r')://Se houver um r, irá rodar o bloco abaixo
digitalWrite(ledR,LOW);//O ledR irá apagar
Serial.print("led R apagado!!");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
lcd.setCursor(2,0);//O cursor irá para a coluna 2 da primeira linha do display
lcd.print("OFF");//O texto entre aspas será escrito no display
break;//O programa irá sair desse bloco
case('g')://Se houver um r, irá rodar o bloco abaixo
digitalWrite(ledG,LOW);//O ledG irá apagar
Serial.print("led G apagado!!");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
lcd.setCursor(8,0);//O cursor irá para a coluna 8 da primeira linha do display
lcd.print("OFF");//O texto entre aspas será escrito no display
break;//O programa irá sair desse bloco
case('b')://Se houver um r, irá rodar o bloco abaixo
digitalWrite(ledB,LOW);//O ledB irá apagar
Serial.print("led B apagado!!");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
lcd.setCursor(2,1);//O cursor irá para a coluna 2 da segunda linha linha do display
lcd.print("OFF");//O texto entre aspas será escrito no display
break;//O programa irá sair desse bloco
default://Se não for nenhum dos caracteres acima, irá rodar o bloco abaixo
Serial.print("LETRA INCORRETA ESCREVA NOVAMENTE!!");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
break;//O programa irá sair desse bloco
}
caractere = 0;//O valor da variável caractere passará a ser 0
Serial.print("Digite uma letra RGB ou rgb pra controlar o led \n");//O texto entre aspas será escrito no monitor serial, e o programa irá para a próxima linha
}
}
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 3.17  Empty Re: exercicio 3.17

Sex Dez 10, 2021 12:58 am
Muito bom Lucca, nota 10.0
Desculpa ser chato, mas quero que voces aprendam de verdade.
Conteúdo patrocinado

exercicio 3.17  Empty Re: exercicio 3.17

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