Escolar Documentos
Profissional Documentos
Cultura Documentos
CENTRO DE ENGENHARIAS
CURSO DE ENGENHARIA ELETRICA
DISCIPLINA: MICROPROCESSADORES E
MICROCONTROLADORES
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.
Linha 5: Inicia a funo que configura os pinos, como sada ou entrada, no caso so
todos pinos de sada;
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.
Linha 5: Inicia a funo que configura os pinos, como sada ou entrada, no caso so
todos pinos de sada;
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 14: Ser desligado o led do pino 13 atravs da funo digitalWrite( pino, LOW);
Linha 16: Ser ligado o led do pino 12 atravs da funo digitalWrite( pino, HIGH);
Linha 20: Ser ligado o led do pino 11 atravs da funo digitalWrite( pino, HIGH);
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%).
Linha 3: Inicia a funo que configura os pinos, como sada ou entrada, no caso no h
configuraes;
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 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.
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 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 17: Inicia-se a funo for, com a variavl thisNote, variando-a de 0 a um valor
menor que 8;
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.
Linha 5: Inicia a funo que configura os pinos, void setup, como sada ou entrada, e o
funcionamento das interrupes;
Linha 12: Ser ligado o led do pino 13 atravs da funo digitalWrite( pin, HIGH);
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;
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;
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;
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;
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;