MICROCONTROLADORES (PIC)

Nessa aula, os candidatos irão simular o desenvolvimento de um Sensor de Ré. Esse sensor identifica objetos próximos à ele e nos indica o quão perto ele está.

Download de Programas:

MPLAB x IDE

XC8 COMPILER

Material Oficial:

Confira o material disponibilizado pelos professores envolvendo conteúdos importantes na programação em C em microcontroladores PIC:

Apostila - Microcontroladores PIC
Slides - PIC

Material Adicional:

Confira as explicações sobre os conceitos mais complexos da atividade, incluindo: Timer, Conversor A/D, TMR0, ADRES, Flag, PWM, Sensor Sharp e muitos outros:

CONVERSOR A/D

  • Um Conversor Analógico Digital é um dispositivo programável capaz de transformar um sinal analógico, disperso no tempo, em um sinal digital, organizado no tempo;

  • Quando convertido, este mesmo sinal torna-se “legível” por uma máquina (no caso o PIC);

  • O Conversor, por sua vez, quantifica esses valores de conversão eletronicamente dentro de um número finito de valores inteiros, determinado pela resolução do conversor (dada em Bits);

  • Logo, um Conversor de 8 Bits, por exemplo, com um sinal de entrada igual a +9V, transforma a tensão em valores legíveis por uma máquina, isto é, valores decimais entre 0 e 256;

  • Como 100% da tensão equivale a 9V, pode-se afirmar que 100% da conversão A/D, em decimal, equivale a 256. Assim, 1% da conversão A/D equivale à resolução de 35,16mV / Bit;

Pense neste raciocínio, porém com um Conversor A/D de 10 Bits, o mesmo do PIC18F1330. Para isso, confira a Figura 1:

Figura 1 - Diagrama em Blocos do Conversor A/D (10 Bits).

Observações:

  • Observe que cada canal, desde o AN0 até o AN3, pode ser configurado tanto como entrada, quanto como saída, sendo ela analógica ou digital.

  • O valor numérico da conversão A/D (0 a 1023 - 10 Bits) pode ser manuseado pelo programador através do termo "ADRES".

TIMER (TEMPORIZADOR)

  • Um Timer (ou temporizador) é um mecanismo registrador, de natureza programável, responsável por realizar contagens com base na frequência do PIC, seja ela interna ou externa;

  • Assim como o Conversor A/D, o Timer também constitui um módulo interno dentro do PIC e, por essa razão, sua medida é dada em Bits;

  • Para efetuar a contagem, o Timer, precisa, em tese, ter todas as suas “entradas” configuradas para obter o desempenho desejado;

  • Para que o Timer 0 funcione, é preciso definir os valores de frequência, a transição de borda (subida ou descida), o tipo de oscilação (interna/externa), o número de Bits (8 ou 16), a escala/período dos sinais das saídas do PIC, etc;

Figura 2 - Diagrama em Blocos do Timer 0 (8 Bits)

Observações:

  • Quando o Timer 0 estiver configurado, ele será capaz de realizar diversas contagens: as mais simples (de 0 até 255 - 8 Bits), até outras mais complexas, partindo de valores diferentes de zero ou interrompendo-as para não atingir o valor máximo suportado pelo módulo;

  • Essa interrupção, ou esse “estouro” do Timer, só pode ser viabilizado pela Flag desde mesmo registrador, isto é, pela “bandeira” que sinaliza não somente o início, mas também o fim dessa mesma contagem.

PWM (Modulação por Largura de Pulso)

  • O PWM é um recurso muito utilizado na programação para alterar o comportamento de uma determinada saída do microcontrolador;

  • Normalmente, o PWM é utilizado em robôs para variar a sua velocidade de acordo a necessidade do projetista;

  • Para variar a velocidade do motor, ou melhor, a largura do sinal PWM, a atividade, ao invés de um Sensor Sharp, utiliza um potenciômetro externo para controlar a variação da tensão que chega na entrada analógica do PIC;

  • Essa tensão (monitorada pelo Circuito do Potenciômetro) deve ser convertida e relacionada ao período (duty cycle) do sinal da saída do LED;

Figura 3 - Características de um sinal PWM.

Observações:

  • Nesse sentido, quanto MAIOR a largura do período em que o sinal PWM estiver EM NÍVEL ALTO, MAIOR a durabilidade do LED aceso. Se o circuito utilizasse uma carga potente, um motor por exemplo, mais rápida seria a sua rotação;

  • Por outro lado, quanto MENOR a largura do período em que o sinal PWM estiver EM NÍVEL ALTO, MENOR a durabilidade do LED aceso. Se o circuito utilizasse uma carga potente, um motor por exemplo, mais lenta seria a sua rotação.

SENSOR SHARP (Circuito com POT-HG Improvisado)

  • Os Sensores Sharp são responsáveis pelo direcionamento e orientação do robô e detectar a distância do robô adversário;

  • O GP2Y0A21YK0F possui um rápido tempo de reação e um alcance de, aproximadamente, 10cm a 80cm de distância;

  • Sua interface conta com 3 pinos, dois referentes à alimentação do sensor (VCC e GND) e um referente à saída de dados, encarregada de fornecer valores analógicos inversamente proporcionais à distância lida, ou seja, quanto mais longe o adversário se encontra, menor a tensão enviada pelo sensor ao PIC;

  • Seu funcionamento consiste na divisão de três blocos: a) Unidade Controladora de Emissão, b) Unidade Controladora de Processamento de Sinais e um c) Circuito de Saída Analógica. Sendo assim:

Figura 4 - Funcionamento do Sensor Sharp.

Observações:

a) Pode ser representada pela figura do LED emissor de luz infravermelha, responsável por rastrear e captar obstáculos que, porventura, se aproximem ou se afastem do sensor ao longo do tempo;

b) Pode ser representada pela figura do receptor infravermelho, responsável por ler o sinal emitido pelo LED emissor, através da reflexão da luz;

c) Circuito responsável por converter o sinal vindo da Unidade de Processamento em uma onda analógica equivalente à distância lida; • O Conversor A/D torna-se importante à medida que o sinal resultante da saída analógica do sensor Sharp, dispersa no tempo, precisa ser convertida em um sinal capaz de ser interpretado pelo PIC.

• Sem esse dispositivo, o módulo de Conversão A/D de 10 Bits do PIC não seria capaz de transformar o sinal da saída do sensor em uma faixa (convertida para decimal) de valores entre 0 e 1023.

Last updated

Was this helpful?