Você está na página 1de 16

UNIVERSIDADE FEDERAL RURAL DO SEMI-RIDO

CENTRO DE ENGENHARIAS
CURSO DE ENGENHARIA ELETRICA
DISCIPLINA: MICROPROCESSADORES E
MICROCONTROLADORES

DANIEL ANTONIO DE OLIVEIRA FILHO

RELATORIO LISTA DE EXERCCIOS :


Unidade 3

MOSSOR-RN
2017
EXERCCIO 1: Faa um circuito onde trs LEDs acendam em sequncia, com um
atraso de um segundo entre eles, e depois apaguem igualmente em sequncia.

Figura 1 Circuito referente ao exerccio 1

Figura 2 Cdigo do exerccio 1


Linhas 1 a 3: Comenta quais as cores dos led's e seus pinos respectivos;

Linha 5: Inicia a funo que configura os pinos, como sada ou entrada, no caso so
todos pinos de sada;

Linhas 6, 7 e 8: Determinam que os pinos 11, 12 e 13 so OUTPUT's

Linha 11: a funo principal do circuito, dentro dela o programa ser repetido;

Linhas 13, 15 e 17: Sero ligados os led's dos pinos 13, 12 e 11, respectivamente,
atravs da funo digitalWrite( pino, HIGH);

Linhas 14, 16 e 18: Determinam os intervalos entre o acionamento de cada led, atravs
da funo delay(time), no caso com intervalos de 1 s;

Linhas 19, 21 e 23: Sero desligados os led's dos pinos 13, 12 e 11, respectivamente,
atravs da funo digitalWrite( pino, LOW);

Linhas 20, 22 e 24: Determinam os intervalos entre o acionamento de cada led, atravs
da funo delay(time), no caso com intervalos de 1 s. Aps isso repete-se o programa a
partir da linha 11.

EXERCCIO 2: Usando um LED vermelho, um amarelo e um verde, crie um semforo


de transito ou seja, o LED verde deve ficar ligado por um determinado intervalo de
tempo, seguido pelo amarelo, depois o vermelho, voltando para o verde.

Figura 3 Circuito referente ao exerccio 2


Figura 4 Cdigo do exerccio 2

Linhas 1 a 3: Comenta quais as cores dos led's e seus pinos respectivos;

Linha 5: Inicia a funo que configura os pinos, como sada ou entrada, no caso so
todos pinos de sada;

Linhas 6, 7 e 8: Determinam que os pinos 11, 12 e 13 so OUTPUT's

Linha 11: a funo principal do circuito, dentro dela o programa ser repetido;

Linha 12: Ser ligado o led do pino 13 atravs da funo digitalWrite( pino, HIGH);

Linha 13: Determina o intervalo entre o acionamento do pino 13 e o seu desligamento,


atravs da funo delay(time), no caso com intervalo de 4 s;

Linha 14: Ser desligado o led do pino 13 atravs da funo digitalWrite( pino, LOW);

Linha 15: Determina o intervalo entre o acionamento do pino 12 e o desligamento do pino


13, atravs da funo delay(time), no caso com intervalo de 10 ms;

Linha 16: Ser ligado o led do pino 12 atravs da funo digitalWrite( pino, HIGH);

Linha 17: Determina o intervalo entre o acionamento do pino 12 e o seu desligamento,


atravs da funo delay(time), no caso com intervalo de 1 s;
Linha 18: Ser desligado o led do pino 12 atravs da funo digitalWrite( pino, LOW);

Linha 19: Determina o intervalo entre o acionamento do pino 11 e o desligamento do pino


12, atravs da funo delay(time), no caso com intervalo de 10 ms;

Linha 20: Ser ligado o led do pino 11 atravs da funo digitalWrite( pino, HIGH);

Linha 21: Determina o intervalo entre o acionamento do pino 11 e o seu desligamento,


atravs da funo delay(time), no caso com intervalo de 5 s;

Linha 22: Ser desligado o led do pino 11 atravs da funo digitalWrite( pino, LOW);

Linha 23: Determina o intervalo entre o reinicio do void loop e o desligamento do pino 11,
atravs da funo delay(time), no caso com intervalo de 10 ms. Aps isso retorna-se ao
void loop na linha 11.
Foi utilizado um delay entre o acionamento de um led e o desligamento de outro
pra tornar a mudana mais perceptvel.

EXERCCIO 3: Faa um programa que altere o brilho de um LED usando uma porta
analgica (0-100%).

Figura 5 Circuito referente ao exercicio 3


Figura 6 Cdigo do exerccio 3

Linha 1: Determina que o pino 13 ser nomeado como ledPin;

Linha 3: Inicia a funo que configura os pinos, como sada ou entrada, no caso no h
configuraes;

Linha 7: Inicia a funo principal, onde o programa ser rodado;

Linha 9: Inicia e configura a funo for com valores para o aumento da luminosa,
fadeValue, valor inteiro, a condio de parada, fadeValue <= 255, e incremento,
fadeValue += 5;

Linha 11: O led do pino 13 receber o valor instantneo da luminosidade atravs da


funo analogWrite( ledPin, fadeValue);

Linha 14: Determina o intervalo entre cada do incremento ao pino 13, atravs da funo
delay(time), no caso com intervalo de 20 ms, isso para ser perceptvel a mudana;

Linha 16: Inicia e configura a funo for com valores para o decremento da luminosa,
fadeValue, valor inteiro, a condio de parada, fadeValue >= 0, e incremento, fadeValue
-= 5;
Linha 18: O led do pino 13 receber o valor instantneo da luminosidade atravs da
funo analogWrite( ledPin, fadeValue);

Linha 20: Determina o intervalo entre cada do incremento ao pino 13, atravs da funo
delay(time), no caso com intervalo de 20 ms, isso para ser perceptvel a mudana. Aps
isso retorna-se ao loop na linha 7.

EXERCCIO 4: Faa um programa que altere o brilho de um LED conforme o valor lido
por um LDR.

Figura 7 Circuito referente ao exercicio 4


Figura 8 Cdigo do exerccio 4

Linhas 1 a 4: Define variveis como inteiras, photocellPin inteira ligada ao pino A0,
photocellReading, LEDbrightness e LEDpin como inteira ligada ao pino 13

Linha 6: Inicia a funo que configura os pinos, como sada ou entrada, no caso no h
configuraes;

Linha 11: Faz a varivel photocellReading receber o valor da variavel photocellPin,


atravs da funo analogRead(photocellPin);

Linha 12: Faz a funo photocellReading receber o valor 1023-photocellReading;

Linha 13: Faz a funo LEDbrightness receber o valor dado pela funo
map(photocellReading,0,1023,0,255);

Linha 14: Faz o valor de LEDbrightness ser escrito no LEDpin, atravs da funo
analogWrite(LEDpin, LEDbrightness);

Linha 15: Determina o intervalo entre o a escrita do valror LEDbrightness no LEDpin e o


reinicio da funo, na linha 10, repetindo a funao indeterminadamente.
EXERCCIO 5: Implemente um sensor e/ou atuador do kit mostrado em sala de aula.
Figura 9 Circuito referente ao exercicio 5

Figura 10 Cdigo do exerccio 5


Linhas 1 a 4: Define as variveis NOTE_C4, NOTE_G3, NOTE_A3 e NOTE_B3 com
frequncias para o sensor piezoeltrico

Linhas 6 e 7: Declara a funo melody como uma variao de frequncias de sensor


piezoeltrico;

Linhas 10 e 11: Declara a funo noteDurations como uma variao de tempos de


durao da funo melody;

Linha 13: Inicia a funo que configura o sistema, no caso no h configuraes;

Linha 15: Inicia-se a funo principal, void loop;

Linha 17: Inicia-se a funo for, com a variavl thisNote, variando-a de 0 a um valor
menor que 8;

Linha 20: Faz a varivel noteDuration receber o valor 1000 dividido


noteDuration[thisNote], o que a faz variar de acordo com a variavel thisNote;

Linha 21: Define a funo tone(8, melody[thisNote], noteDuration) ;

Linhas 24: Faz a varivel pauseBetweenNotes receber o valor 1000 dividido


noteDuration*1.30;

Linha 25: Determina o intervalo entre a funo tone e a funo noTone atravs da funo
delay(time), no caso com intervalo variando de acordo com a varivel
pauseBetweenNotes;

Linha 27: Define a funo noTone(8) que faz a msica parar de tocar. Aps isso retorna-
se ao void loop reiniciando a melodia;
EXERCCIO 6: Faa um programa que o LED fique piscando intermitentemente.
Quando voc apertar o boto, o LED dever permanecer aceso por 5 segundos. Caso
voc no pressione o boto novamente, ele voltar a piscar. Use interrupo.

Figura 11 Circuito referente ao exercicio 6

Figura 12 Cdigo do exerccio 6


Linha 1: Define a varivel pin como referente ao pino 13;

Linhas 2 e 3 : Definem as variveis CorrentMillis e previousMillis, que fazem funcionar o


lao millis;

Linha 5: Inicia a funo que configura os pinos, void setup, como sada ou entrada, e o
funcionamento das interrupes;

Linha 7: A varivel pn, correspondente ao pino 13, configurada como sada;

Linha 8: configurada a interrupo, atravs da funo attachInterrupt, no caso


correspondente a entrada 2, 0 dentro do interrupt, chamado a funo blink caso a porta 2
receba um sinal 0 aps receber um sinal 1;

Linha 10: Inicia-se a funo principal, void loop;

Linha 12: Ser ligado o led do pino 13 atravs da funo digitalWrite( pin, HIGH);

Linha 13: Determina o intervalo entre o acionamento do pino 13 e o desligamento do pino


13, atravs da funo delay(time), no caso com intervalo de 1000 ms;

Linha 14: Ser deligado o led do pino 13 atravs da funo digitalWrite( pino, LOW);

Linha 15: Determina o intervalo entre o desligamento e o reincio do void loop, atravs da
funo delay(time), no caso com intervalo de 1000 ms. Caso a interrupo no seja
ativada o void loop se repetira indefinidamente;

Linha 17: Inicia-se o void blink, que ser rodado caso a interrupo seja ativada;

Linha 19: Ser ligado o led do pino 13 atravs da funo digitalWrite( pin, HIGH);

Linha 20: Declara o tipo de varivel do correntMillis e o faz receber a funo millis,
fazendo que ele considere cada valor atribudo a um mile segundo;

Linha 21: Inicio da funo if responsvel pela contagem do lao da funo millis. Nessa
linha determina-se a condio de parada do lao Millis, no caso currentMillis -
previousMillis > 5000;

Linha 22: Faz o previousMillis receber o valor do correntMilllis e retorna 18, e enquanto
a condio da linha 21 for satisfeita repete-se o void blink, fazendo o led ficar
aceso,enquanto isso. Essa funo tem uma durrao determinada no programa de 5 s,
aps isso retorna-se linha 10.
EXERCCIO 7: Fazer um semforo duplo sincronizado com interrupo. Cada sinal
deve ter um boto que quando pressionado, caso o sinal esteja em verde, deve ir pra
vermelho para a passagem de pedestre. Enquanto o sinal 1 estiver em verde, o sinal 2
deve estar em vermelho e vice-versa. Os sinais em vermelho deve permanecer por 5
segundos, em amarelo 1 segundo e em verde 4 segundos. Usar a lgica de transito
convencional do dia dia.
Figura 13 Circuito referente ao exercicio 7
Figura 14 Cdigo do exerccio 7
Linhas 1 a 6: Declara as variveis redled1, yellowled1, greenled1, redled2, yellowled2,
greenled2 referentes aos pinos 13, 12, 11, 10, 9 e 8 respectivamente;

Linhas 7 e 8: Declara as variveis buttonPin1 e buttonPin2 referentes aos pinos 2 e 3,


respectivamente;

Linha 9: Declara funo state;

Linha 11: Inicia-se o void setup;

Linhas 12 a 17: As variveis redled1, yellowled1, greenled1, redled2, yellowled2,


greenled2 so configuradas como sadas atravs da funo pinMode(pino,OUTPUT);

Linhas 18 e 19: As variveis r buttonPin1 e buttonPin2 so configuradas como entradas


atravs da funo pinMode(pino,INPUT);

Linhas 19 e 20: So configuradas a interrupes. Atravs da funo attachInterrupt, no


caso correspondente a entrada 2, 0 dentro do interrupt, chamado a funo blink caso a
porta 2 receba um sinal 0 aps receber um sinal 1, RISING. Atravs da funo
attachInterrupt, no caso correspondente a entrada 3, 1 dentro do interrupt, chamado a
funo log caso a porta 3 receba um sinal 0 aps receber um sinal 1, RISING;

Linha 24: Inicia-se a funo principal, void loop;

Linha 26: Ser iniciada a funo if, caso a varivel state seja ==0, far o lao da linha 28
a linha 57, caso contrrio ser iniciado outro if na linha 58;

Linhas 27 a 32: Liga os leds redled1 e greenled2, atravs da funo digitalWrite( pino,
HIGH) e desliga os leds yellowled1, greenled1, redled2 e yellowled2 atravs da funo
digitalWrite( pino, LOW);

Linha 33: Determina o intervalo entre o tempo em que o led greenled2 est ligado, e o
seu desligamento e o acionamento do yellowled2, atravs da funo delay(time), no caso
com intervalo de 4000 ms;

Linhas 34 e 35: Desliga o greenled2 e o aciona o yellowled2 atravs das funes


digitalWrite( pino, HIGH) e digitalWrite( pino, LOW);

Linha 36: Determina o intervalo entre o tempo em que o led yellowled2 est ligado, e o
desligamento dos leds redled1, yellowled1, yellowled2 e greenled2 e o acionamento do
greenled1 e redled2, atravs da funo delay(time), no caso com intervalo de 1000 ms;

Linhas 37 a 42: Liga os leds greenled1 e redled2, atravs da funo digitalWrite( pino,
HIGH) e desliga os leds redled1, yellowled1, yellowled2 e greenled2 atravs da funo
digitalWrite( pino, LOW);

Linha 43: Determina o intervalo entre o tempo em que o led greenled1 est ligado, e o
seu desligamento e o acionamento do yellowled1, atravs da funo delay(time), no caso
com intervalo de 4000 ms;

Linhas 44 e 45: Desliga o greenled1 e o aciona o yellowled1 atravs das funes


digitalWrite( pino, HIGH) e digitalWrite( pino, LOW);
Linha 46: Determina o intervalo entre o tempo em que o led yellowled1 est ligado e o
reinicio da funo if, na linha 26, atravs da funo delay(time), no caso com intervalo de
1000 ms;

Linha 48: iniciada a funo if, caso a varivel state seja ==1, far o lao da linha 48 a
linha 60, caso contrrio ser iniciado o void loop;

Linhas 49 a 54: Liga os leds greenled1 e redled2, atravs da funo digitalWrite( pino,
HIGH) e desliga os leds redled1, yellowled1, yellowled2 e greenled2 atravs da funo
digitalWrite( pino, LOW);

Linha 55: Determina o intervalo entre o tempo em que o led greenled1 est ligado, e o
seu desligamento e o acionamento do yellowled1, atravs da funo delay(time), no caso
com intervalo de 4000 ms;

Linhas 56 e 57: Desliga o greenled1 e o aciona o yellowled1 atravs das funes


digitalWrite( pino, HIGH) e digitalWrite( pino, LOW);

Linha 58: Determina o intervalo entre o tempo em que o led yellowled1 est ligado e a
mudana da varivel state de 1 para 0, atravs da funo delay(time), no caso com
intervalo de 1000 ms;

Linha 62: Inicia-se o void blink, caso o buttonPin1 seja pressionado;

Linha 64: Faz a varivel state receber o valor 0;

Linha 66: Inicia-se o void log, caso o buttonPin1 seja pressionado;

Linha 68: Faz a varivel state receber o valor 0;

Você também pode gostar