Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marcelofcandido/projeto-final-uc
Projeto final para a disciplina Laboratório de Microprocessadores e Microcontroladores do CEFET-MG. Consiste no controle da luminosidade de um LED utilizando-se um potenciômetro.
https://github.com/marcelofcandido/projeto-final-uc
Last synced: 9 days ago
JSON representation
Projeto final para a disciplina Laboratório de Microprocessadores e Microcontroladores do CEFET-MG. Consiste no controle da luminosidade de um LED utilizando-se um potenciômetro.
- Host: GitHub
- URL: https://github.com/marcelofcandido/projeto-final-uc
- Owner: MarceloFCandido
- License: mit
- Created: 2019-06-30T20:15:04.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-07-12T03:44:46.000Z (over 5 years ago)
- Last Synced: 2024-11-06T13:12:22.691Z (about 2 months ago)
- Language: C++
- Homepage:
- Size: 785 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Controle de luminosidade de um LED por Potenciômetro em Arduino
**Alunos:**
Marcelo Ferreira Cândido
Renan Siman Claudino## Objetivo
A prática proposta pela dupla objetiva, principalmente, controlar a luminosidade de um LED
através do uso de um potenciômetro linear utilizando o microcontrolador
ATMEGA328-P conectado a uma placa Arduino. Tal prática já foi exibida em sala,
contudo não em um Arduino. Dessa forma, tem-se como objetivos secundários
1. implementar um circuito eletrônico básico, conhecendo-se mais sobre os componentes necessários;
1. analisar o mais baixo nível (que a dupla conseguir) do microcontrolador abordado, visto
que a tecnologia Arduino é de alto nível, mascarando consideravelmente o funcionamento
do microcontrolador.## Materiais utilizados
Para a realização desse trabalho, a dupla utilizou:
1. Um potenciômetro de 10KΩ;
1. Um LED;
1. Um resistor de 330Ω;
1. Nove _jumpers_;
1. Uma _protoboard_.## Metodologia
### Montagem do circuito (passo-a-passo)
Aqui a dupla descreverá as etapas necessárias para a implementação do circuito:
1. Conecte o LED à _protoboard_, sabendo que a perna maior se refere à alimentação e a outra
se refere ao aterramento;
1. conecte o resistor ligando a linha da _protoboard_ em que está o aterramento do LED a outra
linha qualquer;
1. conecte dois _jumpers_ à _protoboard_, um à saída do resistor e o outro à alimentação do LED.
O primeiro deve ser ligado ao aterramento da _protoboard_, o segundo deve ser ligado ao pino
**11** da placa Arduino;4. conecte o potenciômetro à _protoboard_;
4. conecte os furos de aterramento e alimentação da _protoboard_ aos seus respectivos pinos do
potenciômetro utilizando _jumpers_;
4. conecte o pino de sinal do potenciômetro ao pino **A1** utilizando um _jumper_.![Conexão do potenciômetro e do LED à placa Arduino](images/schematic-proteus.jpg)
### A lógica por trás do projeto
O ATMEGA328-P possui um conversor analógico-digital (AD) de dez (10) _bits_. O seu esquema lógico
pode ser visto na imagem abaixo. Esse conversor é a parte central da leitura do pino analógico **A1**
onde o potenciômetro está conectado. Para a seleção desse pino, os _bits_ `MUX3`, `MUX2`, `MUX1` e `MUX0`
do registrador `ADMUX` (_AD Multiplexor Selection_) devem estar de acordo com a seleção do multiplexador
do conversor para o dito pino, ou seja, habilitados de acordo com a numeração `0001`.Uma das formas de se **iniciar uma conversão**, é habilitando-se os _bits_ `ADEN` (_AD Enable_) e `ADSC`
(_AD Start Conversion_). Quando a conversão terminar, o _bit_ `ADIF` (_AD Interruption Flag_) do registrador
`ADCSRA` (_AD Control and Status_) será habilitado, sendo necessário desabilitá-lo para iniciar uma nova
conversão. Além disso, o _bit_ `ADSC` será desabilitado. O resultado da conversão poderá ser encontrado
nos registradores de dados `ADCL` e `ADCH`, que devem ser lidos nessa ordem se o ajustamento for
configurado à direita.![Esquema lógico do conversor analógico do ATMEGA328-P](images/esquema-conversor-ad.png)
## Resultados e observações
Após realizado a montagem do circuito e carregado o código na placa foi observado que ao
rotacionar o potenciômetro em um determinado giro, a frequência do LED foi alterada. O valor do _duty cycle_
variava de 0% a 50% do ciclo (aferido com osciloscópio). Além disso, observou-se que entre a posições
angulares inicial e final do potenciômetro houveram cerca de cinco vezes o reinício da escala de 0% a 50%.
Para simular a aplicação desses resultados foi utilizado o PicSimLab, visto que o Proteus parecia não
responder corretamente.Ainda não se sabe o motivo da escala ir apenas até 50% da tensão de 5V fornecida pela plataforma Arduíno
e nem porque a escala se repetia várias vezes dentro do ângulo do potenciômetro.![led com baixa frequência](images/led-st1.jpg)
![led com alta frequência](images/led-st2.jpg)
## Referências
#### Using servos with an Arduino
https://cdn.sparkfun.com/assets/resources/4/4/servos_with_Arduino_slides.pdf. Ultimo acesso em: 10 jul. 2019
#### How to Control a Servo With Arduino
https://create.arduino.cc/projecthub/FunguyPro/how-to-control-a-servo-with-arduino-490c6d Ultimo acesso em: 10 jul. 2019
#### Microchip Technology
ATmega48A/PA/88A/PA/168A/PA/328/P megaAVR Data Sheet