Buscar

prática4_andre_henrique_murillo

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

relat?rio.pdf
Laboratório de Controle e Servomecanismo
Prática 4: Familiarização do uso da placa Arduino.
HENRIQUE CRAVEIRO D’ANTONIO (RA:791375)
MURILLO JOSÉ SUDAHIA GODOY (RA:789974)
ANDRÉ LUÍS CORELIANO (RA:745948)
TURMA C
26/07/2023
1 Descrição do experimento
A prática 4 serviu para aprender sobre o microcontrolador Arduino e suas especifici-
dades. Também foi possı́vel aprender sobre o software Arduino IDE e como implemenar
códigos no microcontrolador. É importante salientar que os arquivos feitos durante a aula
foram enviados junto a esse relatório por meio de uma pasta .zip na plataforma ava.
2 Execução do experimento
2.1 LCD Keypad Shield
2.1.1 Código 1
O código 1 fornece o display acima no LCD. Em resumo, esse código inicializa o
display LCD, imprime a mensagem ”LCD Ok!!!”na primeira linha e, em seguida, mostra
o tempo decorrido em segundos na segunda linha, atualizando-o continuamente devido
ao loop infinito da função loop().
2.1.2 Código 2
1
Os códigos 2 e 3 fornecem o display acima no LCD. O código 2 é um exemplo
básico de como utilizar uma biblioteca chamada ”LiquidCrystal”para controlar um dis-
play LCD e um teclado matricial no Arduino. A biblioteca ”LiquidCrystal”é incluı́da no
inı́cio do código. Um objeto lcd é criado usando a biblioteca ”LiquidCrystal”para contro-
lar o display LCD. São definidas constantes para mapear os botões do teclado matricial
2
a valores inteiros. Uma variável keyValue é inicializada com 0. Na função setup(), é
configurado o número de colunas e linhas do display LCD. Na função loop(), a leitura
do teclado matricial é realizada pela função keyPadRead() (não fornecida) e o ”Menu 1”é
exibido no LCD usando displayMenu1() (não fornecida). Após um atraso de 250 milisse-
gundos, o loop se repete continuamente. O código 3 é uma parte de um programa que lê
um teclado matricial conectado ao pino analógico 0 do Arduino, determina qual botão foi
pressionado e exibe um menu simples no display LCD com a informação sobre o botão
pressionado.
2.1.3 Sinal PWM
a)
3
b)
4
c) Neste código, o duty cycle é inicializado com 50%. O programa lê o estado
das teclas UP e DOWN e atualiza o valor do duty cycle em 5% cada vez que uma das
teclas é pressionada. O valor do duty cycle é limitado entre 0% e 100%. O display
LCD é atualizado com o novo valor do duty cycle sempre que ele é alterado. A função
updateLCD() é responsável por atualizar o LCD com o valor atual do duty cycle. Ela
5
apaga o valor antigo, imprime o novo valor e, em seguida, exibe o sı́mbolo de porcentagem
(%). O pino 9 é configurado como saı́da PWM, e o valor do duty cycle é atualizado usando
a função analogWrite(), que ajusta a largura do pulso PWM proporcionalmente ao valor
do duty cycle.
2.2 Porta Serial
1)
2) O código 4 lê o valor analógico presente no pino A3 do Arduino, converte-
o em um valor digital e, em seguida, o imprime na porta serial para que você possa
visualizar esse valor usando o Serial Monitor no Arduino IDE. Isso é útil para depuração
e monitoramento de sensores ou outras entradas analógicas conectadas ao Arduino.
2.3 Base de Tempo
1) O código 6 utiliza o temporizador da biblioteca ”MsTimer2”para piscar o LED
conectado ao pino 13 do Arduino em intervalos de 500 milissegundos, alternando o es-
tado do LED entre ligado e desligado. Isso cria um efeito de piscar o LED a cada meio
segundo. Foto do LED aceso:
6
2) O código utilizado foi:
7
Imagem do plotter:
2.4 Pós-Laboratório
1) O Arduino Mega possui uma resolução de 10 bits para suas portas analógicas.
Quanto à possibilidade de alterar a resolução, em geral, a resolução analógica do Arduino
é determinada pelo conversor analógico-digital (ADC) integrado no chip do Arduino.
Essa resolução é fixa e não pode ser alterada diretamente. Entretanto, em alguns casos,
é possı́vel usar técnicas de amplificação ou circuitos externos para aumentar a faixa de
leitura analógica ou melhorar a precisão da medição, mas isso não afetará diretamente a
resolução do ADC do Arduino.
2) O Arduino Mega, possui portas PWM com resolução de 16 bits. É importante
notar que a resolução da porta PWM é determinada pelo hardware do Arduino e não
pode ser alterada diretamente. No entanto, é possı́vel simular uma resolução maior ou
realizar ajustes no ciclo de trabalho de forma mais precisa usando técnicas de modulação
de largura de pulso de software (bit-banging), mas isso pode exigir mais processamento e
pode não ser tão eficiente quanto usar o hardware PWM nativo.
3) No Arduino Mega a frequência padrão das portas PWM é de aproximadamente
490 Hz (ciclos por segundo). Quanto à possibilidade de alterar a frequência das portas
PWM, em modelos Arduino padrão como o Mega, não é possı́vel fazer isso diretamente
usando configurações de software. A frequência é definida pelo hardware do microcon-
8
trolador e do circuito PWM.
3 Avaliação dos resultados do experimento
A prática ocorreu de maneira satisfatória, visto que a maioria dos códigos utilizados
na implementação foram fornecidos na própria prática.
4 Análise crı́tica e discussão
As dificuldades encontradas durante a execução dessa prática foram mı́nimas, já
que a prática consistia em rodar códigos em arduı́no que controlavam botões, observar o
comportamento do LCD Display ou de um Led.
5 Outras informações
Nessa prática foi solicitado um pré-laboratório. As respostas do pré-laboratório são:
1)Arduino é uma plataforma de prototipagem eletrônica de código aberto que per-
mite a criação de projetos interativos e dispositivos eletrônicos de forma acessı́vel e
versátil.
2) O arduino é muito utilizado devido a sua acessibilidade, compatibilidade com
hardware, aplicações variadas e prototipagem rápida.
3) Apesar de muito útil, as desvantagens do arduino estão na potência de processa-
mento limitada, nas suas restrições de memória e de recursos e na falta de criptografia e
segurança avançada.
4) Especificações técnicas do Microcontrolador: ATmega2560 (daı́ o nome ”MEGA
2560”), com arquitetura AVR de 8 bits: Velocidade do Clock: 16 MHz. Memória Flash:
256 KB para armazenamento do programa (bootloader ocupa uma parte desse espaço).
SRAM: 8 KB de memória RAM para variáveis e dados em tempo de execução. EE-
PROM: 4 KB de memória EEPROM para armazenamento não volátil de dados. Pinos de
I/O: 54 pinos digitais, dos quais 15 podem ser usados como saı́das PWM (Pulse Width
Modulation). Pinos de Entrada Analógica: 16 pinos analógicos para leitura de sensores
analógicos. Tensão de Operação: 5V. Tensão de Alimentação: Pode ser alimentada via
9
USB (5V) ou com uma fonte externa de 7V a 12V DC. Corrente máxima por pino de I/O:
20 mA. Corrente máxima dos pinos 3.3V: 50 mA. Interfaces de Comunicação: UART,
I2C e SPI para comunicação com outros dispositivos. Conexão USB: Possui um conector
USB Tipo B para conexão com o computador e programação. Reset: Botão de reset para
reinicialização do programa. Dimensões: Geralmente, a placa tem cerca de 101.52 mm x
53.3 mm.
5) Arduino IDE (Integrated Development Environment) é um software utilizado
para programar e desenvolver projetos na plataforma Arduino. É uma ferramenta de
código aberto desenvolvida para fornecer uma interface amigável para programação, compilação
e carregamento de códigos em placas Arduino.
6) A configuração de pino pull-up (ou resistor pull-up) é uma funcionalidade impor-
tante presente em muitas placas Arduino, que permite uma leitura mais confiável de sinais
digitais em pinos configurados como entradas. A configuração de pino pull-up em um
pino de entrada do Arduino ajuda a
garantir leituras mais estáveis e confiáveis, evitando
que os pinos fiquem flutuando e fornecendo um nı́vel lógico ”HIGH”padrão quando não
há sinal externo aplicado ao pino. Isso é particularmente útil em casos em que botões ou
chaves são usados como entradas, ajudando a evitar leituras indesejadas devido a ruı́dos
elétricos ou outras interferências.
7) Um conversor analógico-digital (ADC) é um componente eletrônico responsável
por converter uma tensão analógica em um valor digital equivalente. No Arduino MEGA,
existem 16 pinos que podem ser utilizados como entradas analógicas para o ADC. Eles
são identificados como A0, A1, A2, ..., A15.
8) O PWM (Pulse Width Modulation) ou Modulação por Largura de Pulso é uma
técnica utilizada para controlar a potência média de um sinal digital em dispositivos
eletrônicos. Essa técnica é amplamente utilizada em microcontroladores, incluindo o
Arduino, para controle de motores, luminosidade de LEDs, controle de servos e outras
aplicações onde é necessário controlar a intensidade ou posição de um dispositivo com
base em um sinal digital. Os pinos que podem ser usados como geradores de PWM são
os pinos digitais: 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 44, 45, 46, 47, 48 e 49.
9) A porta serial do Arduino é uma interface de comunicação que permite a trans-
ferência de dados entre o Arduino e um computador ou outro dispositivo externo. É
chamada de ”Serial”porque utiliza a comunicação serial assı́ncrona, onde os bits de dados
10
são enviados sequencialmente, um após o outro, em uma única linha de transmissão. No
Arduino Mega os pinos da porta serial são o D0 (RX) e D1 (TX), além de D18 (RX1)
e D19 (TX1) que oferecem uma segunda porta serial. Na maioria dos Arduinos, a porta
USB está conectada à porta USB-B, também conhecida como USB tipo B, localizada na
parte superior ou lateral da placa.
10) digitalRead(pin): Descrição: A função digitalRead() é usada para ler o valor di-
gital de um pino especificado no Arduino. O valor retornado será HIGH (1) ou LOW (0),
dependendo se o pino estiver recebendo uma tensão maior que 2.5V (HIGH) ou menor
que 2.5V (LOW). digitalWrite(pin, value): Descrição: A função digitalWrite() é usada
para escrever um valor digital em um pino especı́fico no Arduino. O valor pode ser HIGH
(1) ou LOW (0), representando uma tensão de 5V (HIGH) ou 0V (LOW) no pino sele-
cionado. analogRead(pin): Descrição: A função analogRead() é usada para ler um valor
analógico de um pino especı́fico no Arduino. Ela retorna um valor inteiro entre 0 e 1023
(10 bits) que representa a tensão presente no pino analógico em uma escala de 0 a 5V.
analogWrite(pin, value): Descrição: A função analogWrite() é usada para gerar um sinal
PWM (Modulação por Largura de Pulso) em um pino especı́fico no Arduino. Isso per-
mite controlar a intensidade de dispositivos como LEDs ou motores, variando o valor de
0 a 255. delay(ms): Descrição: A função delay() é usada para pausar a execução do pro-
grama por um determinado perı́odo de tempo, medido em milissegundos (ms). millis():
Descrição: A função millis() retorna o tempo, em milissegundos, desde que o Arduino
foi ligado ou resetado. É útil para criar temporizações ou controlar eventos baseados em
tempo. dtostrf(value, width, decimalPlaces, buffer): Descrição: A função dtostrf() con-
verte um valor float em uma sequência de caracteres e armazena no buffer especificado.
É útil para formatar valores para exibição em displays ou comunicação serial.
11) Para realizar o concatenamento de strings no Arduino, é possı́vel utilizar as
funções da biblioteca ”String”que já está incorporada na Arduino IDE. Essa biblioteca
oferece várias funções úteis para manipulação de strings. A forma mais simples de con-
catenar strings é usando o operador +. Esse operador permite concatenar objetos do tipo
String com literais de string ou variáveis de caracteres (char arrays).
11
6 Referências
Nessa prática não foram utilizadas referências bibliográficas.
12

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando