terça-feira, 7 de dezembro de 2010

O Código em C

Depois de conhecer um pouco sobre o PIC e corrigir alguns problemas com os sensores (sem alterar o hardware), começamos a trabalhar com o código.

Boa parte do código foi criado pelo nosso professor, já que não temos noção de Microcontroladores, então só precisamos pensar em que lógica utilizar para leitura dos sensores.

Por exemplo, como são três sensosores, se o sensor do meio detectar preto (5 Volts) e os demais detectar branco (0 Volts) ambos os motores devem girar para frente e o carrinho irá andar em linha reta.

Tendo isso na cabeça, montamos as oito possibilidades em uma tabela verdade:

Sensor Esquerdo
Sensor Meio
Sensor Direito
Motor Esquerdo
Motor Direito
0
0
0
PARADO
PARADO
0
0
1
INVERTE
NORMAL
0
1
0
NORMAL
NORMAL
0
1
1
PARADO
NORMAL
1
0
0
NORMAL
INVERTE
1
0
1
PARADO
PARADO
1
1
0
NORMAL
PARADO
1
1
1
INVERTE
FRENTE

A tabela foi criada pensando em qual seria a melhor situação para o carrinho agir na pista, levando em conta todas as voltas, loops e falhas.

Está situação foi inserida no código em forma de Switch e dentro dele haviam duas funções:

liga_motor_d(); //liga motor direito
liga_motor_e(); //liga motor esquerdo

Dentro dessas funções é informado o Duty que é mais ou menos o tempo em que o período da onde do PWM estará ativada, então deve-se respeitar os seguintes casos:

liga_motor_d(91); //NORMAL
liga_motor_d(93); //PARADO
liga_motor_d(96); //INVERTE

liga_motor_e(91); //INVERTE
liga_motor_e(93); //PARADO
liga_motor_e(96); //NORMAL

Com isto, é possível montar o código tendo como base a tabela verdade.

Todo o código pode ser visto no link abaixo.

Nenhum comentário:

Postar um comentário