BASIC4MCU | 질문게시판 | 적외선 센서는 감지가 되는데 적외선 센서가 감지 될때 서보모터가 동시에 동작하게 하려고 하는데 도와주시면 감사합니다..ㅠㅠ
페이지 정보
작성자 조현호 작성일2023-11-28 10:17 조회1,195회 댓글0건본문
#define F_CPU 16000000L
#include <avr/io.h>
#include <util/delay.h>
#define PULSE_MIN 1300 // 최소 펄스 길이 왼쪽으로 회전
#define PULSE_MID 1300
#define PULSE_MAX 4700 // 최대 펄스 길이 오른쪽 회전
void InitializeTimer1(void)
{
TCCR1A |= (1 << WGM11);
TCCR1B |= (1 << WGM12) | (1 << WGM13); // 모드 14, 고속 PWM 모드
// 비반전 모드
// TOP : ICR1, 비교일치값 : OCR1A 레지스터
TCCR1A |= (1 << COM1A1);
TCCR1B |= (1 << CS11); // 분주율 8, 2MHz
ICR1 = 39999; // 20ms 주기
}
void Motor()
{
DDRB |= (1 << PB5); // 모터 제어 핀을 출력으로 설정
InitializeTimer1(); // 1번 타이머/카운터 설정
if (PINE & 0x01)
{
for (int i = 0; i < 150; i++)
{
OCR1A = PULSE_MAX; // 왼쪽 회전
_delay_ms(5000);
OCR1A = PULSE_MID; // 오른쪽 회전
_delay_ms(5000);
}
}
else
{
for (int i = 0; i < 50; i++)
{
OCR1A = 0; // 모터 정지
_delay_ms(5000);
}
}
}
int main(void)
{
DDRD = 0x00; // PORTD(적외선 센서)를 입력으로
DDRE = 0x00; // 모터쪽 적외선 입력
while (1)
{
Motor();
}
return 0;
}
댓글 0
조회수 1,195등록된 댓글이 없습니다.