Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

UNIVERSIDADE VEIGA DE ALMEIDA 
ENGENHARIA DA COMPUTAÇÃO GRADUAÇÃO 
 
 
 
 
 
 
 
LEONARDO GAMA DE OLIVEIRA 
 
 
 
 
 
 
 
MICROCONTROLADORES E MICROPROCESSADORES 
 
 
 
RIO DE JANEIRO- RJ 
2023 
 
 
LEONARDO GAMA DE OLIVEIRA 
 
 
 
 
 
 
 
MICROCONTROLADORES E MICROPROCESSADORES 
 
 
 
 
 
 
 
Trabalho apresentado a Universidade Veiga de 
Almeida referente a disciplina Microcontroladores e 
microprocessadores. 
 
 
 
 
 
 
 
 
 
 
RIO DE JANEIRO- RJ 
2023 
 
 
Nome: Leonardo Gama de Oliveira. 
Matrícula: 1200102379. 
 
1. BLINK LED 
 
Esse código em C++ é um exemplo de como fazer um LED piscar no pino 13 do 
Arduino. Ele utiliza as funções setup() e loop(). 
Na função setup(), o código define o pino 13 (LED_BUILTIN) como uma saída usando 
a função pinMode(). 
Na função loop(), o código alterna o estado do LED entre ligado e desligado usando 
as funções digitalWrite(). Primeiro, o LED é aceso definindo o pino como HIGH, em 
seguida, um atraso de 1 segundo (1000 milissegundos) é inserido usando a função 
delay(). Depois disso, o LED é apagado definindo o pino como LOW, e outro atraso 
de 1 segundo é inserido. Esse ciclo se repete continuamente enquanto o Arduino 
estiver ligado. 
Em resumo, o código pisca o LED conectado ao pino 13, alternando entre 
ligado e desligado com intervalos de 1 segundo. 
 
 
Sobre os componentes, o código pisca um LED conectado ao pino 13 do Arduino. O 
LED é conectado através de uma resistência limitadora de corrente para evitar danos 
ao LED. 
Os demais componentes necessários para o funcionamento básico do Arduino, 
como a placa Arduino em si, cabos de conexão e fonte de alimentação, não estão 
mencionados diretamente no código, mas são essenciais para executar o programa 
corretamente. 
 
 
 
 
2. FADE LED 
 
Esse código em C++ utiliza a função analogWrite() do Arduino para controlar a 
intensidade luminosa de um LED conectado ao pino 9. O LED é controlado através de 
modulação por largura de pulso (PWM), permitindo ajustar o brilho do LED. 
 
 
Aqui está uma explicação do código linha por linha: 
int brightness = 0; - Declara uma variável inteira chamada brightness e a inicializa com 
o valor 0. Essa variável será usada para controlar o brilho do LED. 
void setup() - É a função de configuração do Arduino, executada uma vez no início. 
Aqui, define-se o pino 9 como uma saída usando pinMode(). 
void loop() - É a função principal que é executada continuamente após a função 
setup(). Aqui está o loop principal do programa. 
for(brightness = 0 ; brightnessacendendo os LEDs nas 
cores corretas em sequência para controlar o fluxo de tráfego. O LED vermelho indica 
para parar, o LED âmbar prepara a movimentação, o LED verde permite a passagem 
e o LED âmbar novamente alerta sobre a parada iminente. O ciclo se repete 
continuamente enquanto o Arduino estiver ligado. 
 
5. POTENCIÔMETRO 
 
 
 
 
Este código em C++ lê um valor analógico de um pino A0 e controla três LEDs 
(conectados aos pinos 3, 4 e 5) com base nesse valor. Ele usa a função analogRead() 
para ler o valor analógico e compara esse valor com limites pré-definidos para acender 
ou apagar os LEDs. 
Aqui está uma explicação do código linha por linha: 
Serial.begin(9600); - Inicializa a comunicação serial com uma taxa de transmissão de 
9600 bps. Isso permite que você envie dados do Arduino para o computador através 
da porta serial para fins de depuração ou monitoramento. 
pinMode(3, OUTPUT); - Configura o pino 3 como uma saída para controlar um LED. 
pinMode(4, OUTPUT); - Configura o pino 4 como uma saída para controlar outro LED. 
pinMode(5, OUTPUT); - Configura o pino 5 como uma saída para controlar um terceiro 
LED. 
 
 
Serial.println(analogRead(A0)); - Lê o valor analógico do pino A0 usando a função 
analogRead() e imprime-o na porta serial. Isso permite monitorar o valor lido no 
monitor serial. 
As próximas linhas contêm várias condições if que comparam o valor lido no pino A0 
com limites específicos. 
if (analogRead(A0) 206.9 and analogRead(A0) 613.8 and analogRead(A0) 818.4 and analogRead(A0) 920.7) - Se o valor lido for maior que 920.7, todos os LEDs são 
acesos por um período de tempo e, em seguida, todos os LEDs são apagados por um 
período de tempo. 
O código dentro do loop principal é executado continuamente. Ele lê o valor analógico, 
verifica as condições e controla os LEDs de acordo com o valor lido. 
Em resumo, esse código lê um valor analógico de um pino e utiliza diferentes 
limites para controlar os LEDs conectados a três pinos diferentes. Dependendo do 
valor lido, diferentes combinações de LEDs são acesos ou apagados. 
 
 
 
6. HELLO WORLD SERIAL 
 
Este código em C++ configura a comunicação serial e envia mensagens para o 
monitor serial a cada intervalo de tempo. 
Aqui está uma explicação linha por linha do código: 
void setup(): Esta função é executada uma vez quando o Arduino é ligado ou resetado. 
É usada para inicializar configurações iniciais. 
Serial.begin(9600): Inicia a comunicação serial com uma taxa de transmissão de 9600 
bps. Isso permite que o Arduino se comunique com o computador através da porta 
serial. 
void loop(): Esta função é executada continuamente após a conclusão da função 
setup(). É onde o código principal do programa é colocado. 
 
 
Serial.print("Hello world"): Envia a string "Hello world" para o monitor serial. A função 
Serial.print() é usada para enviar dados para a porta serial sem adicionar uma nova 
linha. 
Serial.println(): Envia uma nova linha para o monitor serial. Isso é feito para que a 
próxima mensagem seja exibida em uma nova linha no monitor. 
delay(2000): Faz uma pausa de 2000 milissegundos (2 segundos). Isso significa que 
o programa ficará em espera por 2 segundos antes de executar a próxima linha de 
código. 
delay(2000): Faz uma pausa de 2000 milissegundos novamente. 
O código dentro do loop principal será executado repetidamente, enviando a 
mensagem "Hello world" para o monitor serial a cada 2 segundos. Isso cria um loop 
contínuo de exibição dessas mensagens no monitor serial. 
 
7. LDR SERIAL 
 
 
 
Este código em C++ lê o valor analógico de um sensor de luz (LDR) conectado ao 
pino A0 e o envia para o monitor serial. 
Aqui está uma explicação linha por linha do código: 
int estado_pot = 0;: Declara uma variável inteira chamada estado_pot e a inicializa 
com o valor 0. No entanto, essa variável não é usada posteriormente no código 
fornecido. 
int valor_LDR = 0;: Declara uma variável inteira chamada valor_LDR e a inicializa com 
o valor 0. Essa variável será usada para armazenar o valor lido do sensor de luz. 
void setup(): Esta função é executada uma vez quando o Arduino é ligado ou resetado. 
É usada para inicializar configurações iniciais. 
pinMode(A0, INPUT);: Configura o pino A0 como uma entrada, indicando que será 
usado para ler um valor analógico do sensor de luz. 
Serial.begin(9600);: Inicia a comunicação serial com uma taxa de transmissão de 9600 
bps. Isso permite que o Arduino se comunique com o computador através da porta 
serial para enviar dados. 
void loop(): Esta função é executada continuamente após a conclusão da função 
setup(). É onde o código principal do programa é colocado. 
valor_LDR = analogRead(A0);: Lê o valor analógico do pino A0 usando a função 
analogRead() e armazena esse valor na variável valor_LDR. Essa função converte a 
tensão presente no pino A0 em um valor digital de 0 a 1023, representando a faixa de 
0 a 5 volts. 
Serial.println(valor_LDR);: Envia o valor lido do sensor de luz para o monitor serial 
usando a função Serial.println(). Isso exibe o valor no monitor serial seguido de uma 
nova linha. 
delay(10);: Cria um atraso de 10 milissegundos antes de repetir o loop. Isso ajuda a 
melhorar o desempenho da simulação. 
 
 
O código dentro do loop principal será executado continuamente. Ele lê o valor 
analógico do sensor de luz, envia esse valor para o monitor serial e aguarda por 10 
milissegundos antes de repetir o processo. Isso permite monitorar e acompanhar os 
valores lidos pelo sensor de luz no monitor serial. 
 
 
8. INTERRUPÇÃO LED 
 
Este código em C++ configura um botão externo para alterar o estado de um LED 
conectado ao pino 10 do Arduino. O LED muda de estado (ligado ou desligado) 
sempre que o botão é pressionado. 
Aqui está uma explicação linha por linha do código: 
bool on=false;: Declara uma variável booleana chamada on e a inicializa como false. 
Essa variável será usada para controlar o estado do LED. 
 
 
void setup(): Esta função é executada uma vez quando o Arduino é ligado ou resetado. 
É usada para inicializar configurações iniciais. 
pinMode(10, OUTPUT);: Configura o pino 10 como uma saída, indicando que será 
usado para controlar o LED. 
attachInterrupt(0,ledchange,FALLING);: Configura uma interrupção no pino digital 2 
(interrupção 0) que será acionada quando houver uma queda de tensão no pino 
(FALLING). Quando a interrupção ocorre, a função ledchange() é chamada. 
void loop(): Esta função é executada continuamente após a conclusão da função 
setup(). É onde o código principal do programa é colocado. 
delay(5000000);: Faz uma pausa de 5 segundos (5000000 microssegundos). Durante 
esse tempo, o Arduino está esperando por interrupções. 
void ledchange(): Esta é a função que é chamada quando ocorre uma interrupção no 
pino digital 2. 
on=!on;: Inverte o valor da variável on, ou seja, se on for true, torna-se false, e se on 
for false, torna-se true. Isso alterna o estado do LED. 
if(on) digitalWrite(10,LOW); else digitalWrite(10, HIGH);: Se on for true, o LED é ligado 
(LOW), casocontrário, o LED é desligado (HIGH). Isso controla o estado do LED com 
base no valor atual da variável on. 
Resumindo, o código configura um botão externo para alterar o estado de um 
LED. Quando o botão é pressionado, a interrupção é acionada, chamando a função 
ledchange(), que inverte o estado do LED. O LED permanece no estado atual por 5 
segundos antes de verificar novamente a interrupção. Isso permite que o LED seja 
alternado entre ligado e desligado sempre que o botão é pressionado. 
 
 
 
 
 
 
 
9. PROJETO FREQUENCÍMETRO 
 
 
 
Este código utiliza um display LCD, botões e um buzzer para controlar a frequência 
de um som emitido. Aqui está uma explicação resumida do código: 
Inclui a biblioteca "LiquidCrystal" para controlar o display LCD. 
Declara variáveis para armazenar a frequência, o estado dos botões e o pino do 
buzzer. 
Inicializa o display LCD com 16 colunas e 2 linhas, e exibe uma mensagem inicial. 
Configura os pinos dos botões e do buzzer como saídas. 
No loop principal: 
a) Lê o estado dos botões. 
b) Se o botão 1 for pressionado, aumenta a frequência em 100 unidades. 
c) Se o botão 2 for pressionado, diminui a frequência em 100 unidades. 
d) Limita a frequência mínima a 0 e a frequência máxima a 20000. 
e) Atualiza o display LCD com a frequência atual. 
f) Emite um som com a frequência atual utilizando o buzzer. 
g) Aguarda 100 milissegundos antes de repetir o loop. 
Resumidamente, o código permite ajustar a frequência de um som emitido 
usando botões. A frequência é exibida em um display LCD e o som correspondente é 
reproduzido através de um buzzer. O usuário pode aumentar ou diminuir a frequência 
usando os botões, e o display LCD mostra a frequência atualizada em tempo real. 
 
 
 
 
 
10. BIBLIOTECA SERVO 
 
Este código utiliza a biblioteca "Servo" para controlar um servo motor conectado ao 
pino 9 do Arduino. Aqui está uma explicação resumida do código: 
Inclui a biblioteca "Servo" para controlar o servo motor. 
Declara variáveis para armazenar a posição do servo, bem como contadores 
auxiliares. 
No setup(): 
a) Anexa o objeto servo_9 ao pino 9 do Arduino, especificando uma faixa de pulsos 
entre 500 e 2500 microssegundos. 
No loop principal: 
a) Define a posição inicial do servo como 0. 
 
 
b) Inicia um loop que varia a posição do servo de 1 a 179 graus, incrementando 1 grau 
a cada iteração. 
A função servo_9.write(position) define a posição do servo. 
Um pequeno atraso de 20 milissegundos é inserido após cada movimento para dar 
tempo ao servo de alcançar a posição desejada. 
c) Após o loop anterior, um segundo loop é iniciado para variar a posição do servo de 
179 a 1 grau, decrementando 1 grau a cada iteração. 
A função servo_9.write(position) é usada novamente para definir a posição do servo. 
O loop principal se repete continuamente, fazendo com que o servo motor oscile entre 
as posições de 0 a 179 graus e depois de 179 a 1 grau. 
Resumidamente, o código controla um servo motor conectado ao pino 9 do 
Arduino, fazendo-o mover-se de forma contínua entre as posições de 0 a 179 graus e 
depois de 179 a 1 grau. O servo motor se move suavemente em ambas as direções 
com um pequeno atraso entre cada movimento. 
 
11. PROJETO A ESCOLHA 
 
 
 
Este código utiliza a biblioteca "LiquidCrystal" para controlar um display LCD 
alfanumérico e medir a temperatura usando um sensor analógico. Aqui está uma 
explicação resumida do código: 
Inclui a biblioteca "LiquidCrystal" para se comunicar com o display LCD. 
Inicializa o objeto "lcd" especificando os pinos de interface do Arduino. 
Declara variáveis para armazenar a entrada do sensor, a temperatura em graus, e os 
pinos associados aos LEDs vermelho e verde. 
No setup(): 
a) Define os pinos do LED vermelho e do LED verde como saída. 
b) Inicializa o display LCD com 16 colunas e 2 linhas. 
c) Inicia a comunicação serial a uma taxa de 9600 baud. 
No loop principal: 
a) Define o cursor do LCD para a coluna 0, linha 0. 
b) Lê a entrada analógica do sensor e converte-a em volts. 
c) Subtrai o offset e converte o resultado em temperatura em graus Celsius. 
d) Imprime os valores de tensão e temperatura no monitor serial. 
e) Imprime a palavra "Temperature" no LCD. 
f) Define o cursor do LCD para a coluna 0, linha 1. 
g) Imprime a temperatura no LCD, seguida de "Celsius". 
h) Verifica se a temperatura é maior ou igual a 40 graus. 
Se verdadeiro, acende o LED vermelho, apaga o LED verde e emite um tom na 
pinagem 8. 
 
 
Se false, acende o LED verde, apaga o LED vermelho e para de emitir o tom. 
i) Aguarda um atraso de 1 segundo. 
Resumidamente, o código utiliza um display LCD para mostrar a temperatura 
medida por um sensor analógico. Além disso, ele controla os LEDs vermelho e verde 
com base na leitura da temperatura. Se a temperatura for igual ou superior a 40 graus 
Celsius, o LED vermelho é ligado e um tom é emitido. Caso contrário, o LED verde é 
ligado e o tom é interrompido.

Mais conteúdos dessa disciplina