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
André Luis Caetano
Mensagens : 41
Data de inscrição : 10/03/2020
Escola : São Critóvão

Exercício 1.16 Empty Exercício 1.16

Qui Jun 04, 2020 2:37 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 1.16
* Atividade: Testar as 4 formas de interrupção e seus comportamentos
* Descrição: Montar um pisca e quando pressionar uma tecla, interromper o arduino e acender outro led
* Hardware: Ligar uma tecla em D2 configurado como ENTRADA PULLUP e programa-la como interrupção, em outro pino digital um led configurado como SAÃÂDA e noutro pino o segundo LED
* Comandos: pinMode, digitalRead, digitalWrite, PULLUP, attachInterrupt
* Dica1: Use no modo de interrupção as opções LOW, CHANGE, RISING, FALLING e disserte sobre o comportamento de cada uma delas.
* Dica2: Para garantir a nota responda as questões abaixo:
* Questão1: Quando o pino de interrupção está configurado como FALLING, o buzzer é acionado quando a tecla2 for pressionada ou depressionada? quando a tecla estiver pressionada
* Questáo2: Quando o pino de interrupção está configurado como CHANGE, em que condição o buzzer é acionado? Quando a tecla esta depressionada
* Questão3: Caso em determinado trecho do programa não seja mais necessário tratar as interrupções qual o comando deve ser usado no programa? O comanddo é noInterrupts
*/

//DEFINICOES INICIAIS
#define ledPisca 6//foi definido que o pino 6 vai se chamar ledPisca
#define ledInt 7//foi definido que o pino 7 vai se chamar ledInt
#define  teclaInt 2//foi definido que o pino 2 vai se chamar teclaInt

//DECLARAcAO DE VARIAVEIS
volatile bool estado = 0;//foi declarada um variavel do tipo bool com o nome estado

//FUNÇÕES INTERRUPÇÃO
void sinaliza (){
 estado = !estado;//estado = !estado representa um posiçao inversa
 digitalWrite(ledInt, estado);//ledInt foi configurado para ficar apagado, ate que se ative uma funçao de interrupçao, pressionando o botao (depende da funçao)
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledPisca, OUTPUT);//ledPisca foi configurado como saida
pinMode(ledInt, OUTPUT);//ledInt foi configurado como saida
pinMode(teclaInt,INPUT_PULLUP);//teclaInt foi configurada como entrada
attachInterrupt(0, sinaliza, FALLING);   //FALLING, LOW, CHANGE, RISING
}

//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(ledPisca, HIGH);//ledPisca aceso
delay(500);//pequena pausa do estado aceso
digitalWrite(ledPisca, LOW);//ledPisca apagado
delay(500);//pequena pausa do estado apagado
}


Última edição por André Luis Caetano em Sex Jun 12, 2020 10:16 am, 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

Exercício 1.16 Empty Re: Exercício 1.16

Ter Jun 09, 2020 9:12 pm
André, o programa está correto, mas as respostas nas questões estão erradas.
Só para alinhar com voce, pressionada e quando voce aperta a tecla e depressionada é quando voce tira o dedo da tecla, certo?
Nota 6.0
avatar
André Luis Caetano
Mensagens : 41
Data de inscrição : 10/03/2020
Escola : São Critóvão

Exercício 1.16 Empty Exercício 1.16

Qui Jun 11, 2020 10:20 pm
Corrigido...


Última edição por André Luis Caetano em Qua Jun 10, 2020 1:33 pm, editado 1 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

Exercício 1.16 Empty Re: Exercício 1.16

Sex Jun 12, 2020 12:20 am
André, Nesse exercício cada resposta vale 2.0 pontos e somente uma resposta está correta.
A interrupção CHANGE não é assim que se comporta
volatile é um modificador que protege o conteudo de uma variável caso seja interrompido no meio de uma leitura. Quero o comando faz o arduino não tratar uma interrupção.
Nota 6.0
avatar
André Luis Caetano
Mensagens : 41
Data de inscrição : 10/03/2020
Escola : São Critóvão

Exercício 1.16 Empty Exercício 1.16

Sex Jun 12, 2020 10:17 am
corrigido ...


Agora vai
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

Exercício 1.16 Empty Re: Exercício 1.16

Sex Jun 12, 2020 10:03 pm
A questão 2 não esta correta.
A questão 1 estou na duvida, porque deveria dizer quando for pressionada e não quando estiver pressionada. Quando estiver é na opção LOW. Mas vou considerar.
Nota 8.0.
Conteúdo patrocinado

Exercício 1.16 Empty Re: Exercício 1.16

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