Aula de programação C – 08

8. PRÁTICA 08: CONTROLE DE MOTOR COM POTENCIÔMETRO E BOTÃO

Referencial Teórico: Operadores de atribuição; Laço While; Funções de atraso; Funções.

Objetivo: Controlar o estado de funcionamento e a rotação de um motor por meio de um botão e um potenciômetro.

Materiais: Utilizar botão presente na placa, potenciômetro ligado à entrada 1, motor de corrente contínua ligado à saída A e fonte de alimentação.

8.1 Arquivo Principal

#include "iniciog.h"
#include "pratica.h"

void main(){

	configura_portas();

	habilita_ponteh();

	configura_conversor();

	while(1){
		ler_sensor();

		MTR1_CW = 1;
		MTR1_CC = 0;
		espere_por(sensor);

		MTR1_CW = 0;
		MTR1_CC = 0;
		espere_por(sensor);

		if (botao == 1) MTR1_EN = 1;
		if (botao == 0) MTR1_EN = 0;
	}
}

8.2 Arquivo Secundário

// acrescentar ao iniciog.h ou arquivo pratica.h

void habilita_ponteh(){
	MOTOR_AB_EN = 1;
	MTR1_EN = 1;
	MTR2_EN = 1;
}

void configura_conversor(){
	OpenADC(ADC_FOSC_8
	&ADC_RIGHT_JUST
	&ADC_4_TAD,
	ADC_CH0
	&ADC_INT_OFF
	&ADC_VREFPLUS_VDD
	&ADC_VREFMINUS_VSS,
	ADC_1ANA);
}

unsigned long sensor;

void ler_sensor(){
	SetChanADC(ADC_CH0);
	ConvertADC();
	while(BusyADC());
	sensor = ReadADC();
}