[AVR] 모터 속도제어 (선풍기)

2021. 11. 9. 22:20코딩/AVR

int i = 0;


int main(void)
{
	pwm_init();
	button_Init;
	stdout = &OUTPUT;
	UART0_init();
	
	
	while (1)
	{
		if (getButton1State())	//stop
		{
			if (i == 0)
			{
				forward_fan();
				OCR3C = 90;	//0.25m
				
				i = 1;
			}
			else if (i == 1)
			{
				stop_fan();
				
				i = 0;
			}
		}
		else if(getButton2State())	
		{
			if (OCR3C < 250)
			OCR3C += 20;
			
		}
		else if(getButton3State())
		{
			if (OCR3C > 70)
			OCR3C -= 20;	//OCR3C = OCR3C-20
		}
		else if(getButton4State())	//HIGH SPEED
		{
			backward_fan();
			OCR3C = 255;
		}
	}
	
}

void stop_fan()
{
	PORTE |= 0b00001100;	//PE2:1 PE3:1 = 정지
	OCR3C = 0;	//모터정지 PE3
}

void forward_fan()
{
	PORTE &= 0b11110111;	//PE3:0
	PORTE |= 0b00000100;	//PE2:1 PE3:0 = 정방향회전
}

void backward_fan()
{
	PORTE &= 0b11111011;	//PE2:0
	PORTE |= 0b00001000;	//PE2:0 PE3:1 = 역방향회전
}

 

'코딩 > AVR' 카테고리의 다른 글

[AVR]출입 통제 시스템  (3) 2021.11.09
[AVR] 계산기  (0) 2021.11.09
[AVR]전자레인지 동작 동영상  (0) 2021.11.09
[AVR] UltraSonic 활용  (0) 2021.11.09
[AVR] DP Blink/Stopwatch,Clock 구분 LED표시 시간 표시 기능  (0) 2021.11.09