Processo Seletivo
  • Seja bem vindo à página do Processo Seletivo da Equipe Trincabotz!
    • Apresentações Gerais
  • Manual de Segurança
    • Eletrônica
    • Mecânica
    • Considerações Finais
  • Eletrônica
    • Cronograma
    • Tarefas
      • Entrega das tarefas
      • TAREFAS PRÁTICAS
        • Instalação do Proteus 8.10 SP0
        • Exercícios de Eletrônica Básica (06/05)
        • Algoritmos em C (07/05) (opcional)
        • Atividades de programação de microcontroladores(13/05) (opcional)
        • Montagem e programação de um circuito de Ponte H (14/05)
        • Desenvolvimento de uma PCB (20/05)
        • Confecção de uma PCB (27/05)
      • TAREFAS DE PESQUISA
        • Análise de Datasheets (06/05)
      • TAREFA FINAL
        • Relatório do Processo Seletivo (07/06)
    • Aulas e Materiais
      • ELETRÔNICA BÁSICA E PROTEUS
      • PROGRAMAÇÃO E LINGUAGEM C
      • MICROCONTROLADORES (STM)
      • PONTE H
      • ALTIUM DESIGNER ®
      • CONFECÇÃO DE PCB
  • Mecânica
    • Cronograma
    • Aulas
      • Aula de Ajustagem
      • Aula de Solidworks
      • Aula de Materiais
      • Aula de Componentes Mecânicos
      • Aula de Desenho Técnico e Usinagem
      • Aulas Anteriores
        • Aula de Dimensionamentos
        • Aula de Ferramentas de Usinagem
        • Aula de Usinagem
    • Tarefas
      • Apresentações Semanais
      • Solidworks I
      • Solidworks II
      • Solidworks III
      • Ajustagem
      • Componentes Mecânicos
      • Materiais
      • Usinagem & Desenho Técnico
      • Relatório Final
      • Tarefas Anteriores
        • Solidworks II
        • Solidworks IV
        • Atividade de Materiais
        • Dimensionamento
        • Atividade de Componentes Mecânicos
        • SolidWorks
        • Soliworks III
      • Inserção de Projetos
  • Gestão
    • Cronograma
    • Tarefas
      • Marketing Digital
      • Design de camisas
      • Patrocinador
      • Apresentação da área: divulgação em sala
      • Criação de Postagem no Linkedin
      • Photoshop
      • Apresentação geral: gestão aplicada aos projetos
      • Apresentação geral: retrospectiva
      • EXTRA - Pacote Office
      • EXTRA - Fotografia
      • EXTRA - Revista
      • Logística
Powered by GitBook
On this page
  • 2.1.1 - Circuito do Potenciômetro
  • 2.1.2 - Circuito do LED
  • 2.1.3 - Circuito do PIC
  • 2.1.4 - Circuito Cristal
  • 2.1.5 - Circuito Final Simulado
  • 2.2.1 - Acender o LED
  • 2.2.2 - Piscar o LED
  • 2.2.3 - Variar o Brilho do LED
  • 2.2.4 - Configurar o Conversor A/D
  • 2.2.5 - Sensor de Ré Simulado

Was this helpful?

  1. Eletrônica
  2. Tarefas
  3. TAREFAS PRÁTICAS

Programação de microcontroladores (DD/MM) (PIC)

Atividade com o intuito de compreender os conceitos por trás de um microcontrolador PIC 18F1330, programando-o na prática.

Last updated 7 months ago

Was this helpful?

1 - Conhecer o Objetivo da Tarefa

Lembre-se que a tarefa final tem como objetivo variar o brilho do LED de acordo com a leitura de um potenciômetro, utilizando uma protoboard.

Por isso, pesquise informações relevantes no que ajudem você a refletir a respeito da:

2 - Simulação no Protheus

A simulação primária do circuito prévia à montagem na protoboard será feita pelo software Proteus 8.10 SP0, para compreender as fases da atividade e a utilização do código anteriormente à construção do circuito real.

2.1 - Montagem do Circuito

Para montar o circuito no Proteus, é preciso ter em mente que o "sensor", propriamente dito, nada mais é do que o potenciômetro ligado a uma fonte de 5V.

  • 1ᵃ OBS: Um sensor de distância, ao avaliar a proximidade de um objeto, emite um sinal infravermelho em direção a este objeto para que a luz, através da reflexão, seja direcionada ao seu receptor;

  • 2ᵃ OBS: Quando isso acontece, o sensor (Sharp) processa esse sinal, isto é, essa tensão de natureza analógica e o envia até o Conversor A/D do PIC18F1330 para que seus valores se tornem legíveis. Quando isso acontece, o seu valor (agora convertido) torna-se apto para ser utilizado pelo programador em seu código.

2.1.1 - Circuito do Potenciômetro

  • No canto esquerdo da tela, encontre a opção Generator Mode, conforme a Figura 2. Selecione a fonte "DC" e atribua a ela o valor de 5V;

Logo mais:

  • Procure e selecione o resistor "7WATT100R";

  • Procure e selecione o potenciômetro "POT-HG".

2.1.2 - Circuito do LED

  • Selecione um resistor "9C04021A4700FLHF3";

  • Selecione o "LED-RED".

Clique com o botão direito do mouse em cima do LED e o configure para "digital", com tensão de entrada igual a 5V.

2.1.3 - Circuito do PIC

  • Selecione o microcontrolador "PIC18F1330".

Clique com o botão esquerdo do mouse em cima do PIC e altere a sua oscilação para 20MHZ.

2.1.4 - Circuito Cristal

  • Selecione o oscilador externo "CRYSTAL";

  • Selecione dois capacitores cerâmicos "AVX0603Y5V100N";

Não se esqueça da alimentação (GND) tanto dos LED's, quanto do oscilador e Sensor de Ré.

2.1.5 - Circuito Final Simulado

Evite utilizar as mesmas entradas/saídas (da Figura 3) para o Circuito do Potenciômetro e para o Circuito do LED.

  • Monte o circuito conforme a Figura 3:

2.2 - Programação no MPLAB x IDE

Para programar um microcontrolador, é imprescindível a análise do datasheet dos elementos programáveis do PIC18F1330.

Para realizar a tarefa, é necessário conhecer elementos importantes na programação de um PIC18F. Muitos deles serão exibidos na aba Aulas e Materiais - MICROCONTROLADORES PIC, no canto esquerdo da tela.

2.2.1 - Acender o LED

As primeiras informações para se programar um microcontrolador estão anexadas no arquivo .txt a seguir. Copie e cole o conteúdo desse arquivo no projeto do MPLAB.

  • Em seguida, configure o PIC para acender SOMENTE O LED, em outras palavras, acionar a saída de um dos pinos do microcontrolador. Após a programação, teste o circuito no simulador Proteus;

  • Clique com o botão esquerdo do mouse e selecione o arquivo .hex gerado pelo MPLAB x IDE.

2.2.2 - Piscar o LED

Para piscar um LED, é necessário conhecer a sintaxe de uma função de interrupção de um microcontrolador PIC18F. Segue abaixo um exemplo dessa sintaxe:

// Sintaxe da função de interrupção

void __interrupt() interrupcao () 
{
     ("o que deve acontecer após uma interrupção?")
}

Todos os comandos que o programador acrescentar nesta função estarão intimamente ligados à pergunta:

"O que deve acontecer após uma interrupção?"

"O que eu quero que aconteça após uma interrupção?"

Sendo assim, é preciso configurar o PIC para habilitar o TMR0 (Timer 0) e as interrupções através dos registradores T0CON e INTCON, respectivamente.

Para saber o tempo total que o TIMER0 de 8 Bits gasta para estourar sua contagem, utilizamos a seguinte fórmula:

Conhecendo o tempo total, é possível saber quantos estouros do Timer serão necessários para que o LED comute seu estado a cada 1 segundo.

Observação

Um dos comandos responsáveis por comutar os níveis lógicos (alto e baixo) de uma das saídas do microcontrolador é

  • "Saída X" = ~"Saída X" ;

Para configurá-la adequadamente, verifique as sintaxes envolvendo os termos TRIS(A, B) e PORT(A,B) no MPLAB x IDE.

2.2.3 - Variar o Brilho do LED

Observação

  • O comando "TMR0" no MPLAB é uma variável que acompanha a contagem do Timer 0.

  • Suponha que eu queira acender um LED caso o timer atinja o valor de 100. Suponha que o programador deseje comparar essa variável com o atual valor de contagem do Timer 0 em uma condição "if" (se).

if (TMR0 == 100) // "==" não é operação, e sim CONDIÇÃO
{
    LED = 1;     // O "LED" pode ser qualquer saída do PIC 
                 // Elevá-lo à 1 significa atribuir nível alto
}
  • O código diz que o LED acenderá se o Timer atingir o valor 100 em suas contagens.

  • Verifique o número de Bits de um Timer para saber o limite da sua contagem. Um Timer de 16 Bits, por exemplo, pode contar até 65536. Descubra até quanto um Timer de 8 Bits pode contar.

  • Não se esqueça de zerar a Flag e o TMR0 após uma interrupção. Procure saber mais sobre estes termos.

ATENÇÃO!

  • Algumas versões do Proteus não são capazes de incluir a variação da intensidade do brilho do LED em sua interface gráfica.

  • Para enxergá-la, basta que conectar um osciloscópio na saída do LED. Se o potenciômetro conseguir alterar o período do sinal de saída, a atividade estará correta.

  • Caso o display do osciloscópio desapareça, clique em "DEBUG", na parte superior da tela, e selecione "DIGITAL OSCILOSCOPE".

  • Sabendo dessas informações, construa um programa capaz de variar a intensidade do brilho do LED. Por exemplo: "em 50% da resistência do POT-HG, o LED começará a brilhar".

2.2.4 - Configurar o Conversor A/D

  • O Conversor A/D;

  • Definir o pino analógico que será utilizado;

  • Colocar o resultado justificado à direita;

  • Habilitar a Interrupção do A/D;

  • Definir qual canal será utilizado;

  • Crie um código capaz de mudar o valor da conversão (ADRES) ao variar o potenciômetro.

  • Verifique se conversão está funcionando utilizando os recursos do Proteus.

Observação:

O resultado da conversão será armazenado na variável de 10 Bits chamada "ADRES".

2.2.5 - Sensor de Ré Simulado

Elabore um circuito no Proteus e um código no MPLAB x IDE capaz de atender aos requisitos mencionados abaixo:

  • O grande desafio é o de relacionar a variação do brilho do LED com o conversor AD. Divirtam-se!

  • Será considerado validado o projeto que, ao variar o potenciômetro, mude a intensidade da forma da onda, assim como a Figura 6;

  • O potenciômetro próximo de 0% deve monitorar um sinal com a maior parte da onda quadrada em nível lógico baixo;

  • O potenciômetro próximo de 50% deve monitorar: metade da onda quadrada em nível lógico alto, metade da onda quadrada em nível lógico baixo;

  • O potenciômetro próximo de 100% deve monitorar uma onda quadrada em nível lógico alto.

Abaixo estão os grupos para a parte 3 e 4 da tarefa:

Grupo 1

Grupo 2

Grupo 3

Grupo 4

3 - Sensor de Ré na Protoboard

Use o conhecimento e a programação desenvolvida nos últimos itens para desenvolver um circuito em protoboard que simule um sensor de ré através do uso de um Sensor Sharp.

Essa tarefa é em grupo, logo devem montar o circuito na protoboard juntos e escolher o código de um dos membros para representar o grupo.

Essa tarefa prática é um trabalho em "cascata", logo a dificuldade se resume em seguir os passos corretamente, e por fim, nesta etapa, apenas transfigurar o que você já fez no Proteus na vida real. Não pule etapas, pode causar problemas difíceis de recuperar.no fim.

Dica: lembre-se que, diferente da simulação no Proteus, o PIC18F1330 na realidade precisa de um circuito de alimentação para funcionar.

4 - Apresentação da Tarefa

Elabore uma pequena apresentação de 5 MIN para mostrar o que você aprendeu na atividade, isto é, todos os conteúdos que foram importantes para a elaboração do seu projeto.

Os alunos (grupos) deverão organizar uma apresentação para mostrar aos professores a resolução da atividade. Use prints do código e do circuito no Proteus para explicar o funcionamento, demonstrando a protoboard montada

Verifique a planilha para consulta (Google Sheets) no cronograma.

Como Será Entregue a Atividade?

OBS: NÃO SERÁ NECESSÁRIO ENTREGAR AS CONSTRUÇÕES NO PROTEUS E OS CÓDIGOS PRÉVIOS AO DE SIMULAÇÃO DE RÉ FINAL.

Essa tarefa deve ser feita de maneira individual até o item 2, e em grupo nos itens 3 e 4. Assim, todos os candidatos enviarão os seus arquivos para a pasta do Google Drive disponibilizada para cada um. O candidato entregará o código final e um print do circuito no Proteus.

  • SeuNome_Código.c (Código)

  • SeuNome_PrintProteus.extensãoImagem (Print Proteus)

Nas tarefas de grupo, um dos membros deve ser escolhido para colocar uma foto do circuito na protoboard e o slide feito para a apresentação na sua própria pasta.

  • SeuNome_Slides.pptx (Slides)

  • SeuNome_FotoProtoboard.extensãoImagem (Foto Protoboard)

Data de Início/Entrega

  • Início: 24/04

  • Entrega: 29/04

Link:

Analise a aba de conversão A/D o e verifique os requisitos necessários para configurá-lo. Verifiquem os seguintes elementos:

Datasheet do PIC 18F1330
datasheet do PIC18F1330
datasheet do PIC 18F1330
4KB
pragmas.txt
Figura 1 - Relações importantes para programação de um Sensor de Ré.
Figura 2 - Generator Mode.
Figura 3 - Esquematização do Sensor de Ré (com a programação funcionando).
Figura 4 - Como "injetar" o código do MPLAB no Proteus?
Figura 5 - Fórmula do tempo de contagem (Timer 0).
Figura 6 - Variação do período do sinal de acordo com a variação do POT-HG.