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
Cadu2005
Mensagens : 26
Data de inscrição : 03/03/2020

Ex 1.18 Operadores logicos Empty Ex 1.18 Operadores logicos

Seg 19 Out 2020 - 15:43
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 1.18
* Tema: Operadores Lógicos
* Atividade: Associar um LED a duas teclas usando a função E entre as teclas e montar a tabela verdade
* Descrição: O LED deverá acender somente quando pressionar as duas teclas simultaneamente
* Hardware: Ligar duas teclas a dois pinos digitais configurados como ENTRADA e um led em outro pino digital configurado como SAÍDA
* Comandos: pinMode, digitalRead, digitalWrite, PULLUP, !(operador NOT) operador & (E)
* DICA1: A função !(not) deve ser usada antes de cada tecla porque a tecla está com resistor de pullup e ligada ao 0V, logo fica em DOWN quando pressionada
* Questão1: Preencha a tabela abaixo:
* TECLA1 | TECLA2 | LED (aceso ou apagado?)
* depressionada | depressionada | led desligado
* depressionada | pressionada | led desligado
* pressionada | depressionada | led desligado
* pressionada | pressionada | led ligado
*/

//DEFINICOES INICIAIS
#define tecla1 2 //Define a tecla 1 no pino 2
#define tecla2 3 //Define a tecla 2 no pino 3
#define led 4 //Define o led no pino 4
//DECLARAcAO DE VARIAVEIS
bool estado = 0; //Define variavel tipo bool como estado no valor 0

//FUNÇÕES COMPLEMENTARES


//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(tecla1 , INPUT_PULLUP); //Define pino 2 como INPUT PULLUP
pinMode(tecla2 , INPUT_PULLUP); //Define pino 3 como INPUT PULLUP
pinMode(led , OUTPUT); //Define pino 4 como SAIDA
}

//PROGRAMA PRINCIPAL
void loop() {
estado = !digitalRead(tecla1) & !digitalRead(tecla2); //Define o contrario dos "estados" "!" usando negação
digitalWrite(led, estado); //Vincula o led as teclas "pressionadas " "depressionadas
}
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos