[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 |