BASIC4MCU | 질문게시판 | atmega128 스위치 서보모터
페이지 정보
작성자 메시기모찌 작성일2023-12-02 14:33 조회1,699회 댓글1건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=23473
본문
#define F_CPU 12000000UL
#include <avr/io.h>
#include <util/delay.h>
#define PWM_PIN PB5 // PWM 핀 (OC1A 핀)
int main(void) {
DDRA = 0x00; // 입력으로 설정
TCCR1A |= (1 << WGM11) | (1 << COM1A1);
TCCR1B |= (1 << WGM12) | (1 << WGM13) | (1 << CS11);
ICR1=29999;
OCR1A = 2250;
DDRD |= (1 << PWM_PIN); // PWM 출력 핀(PB5)을 출력으로 설정
while (1) {
// 스위치 1을 누르면 서보모터를 90도로 이동
if (!(PINA==0x01)) {
OCR1A = 1500;
_delay_ms(1000); // 디바운싱 및 중복 입력 방지를 위한 지연
}
// 스위치 2를 누르면 서보모터를 0도로 이동
if (!(PINA==0x02)) {
OCR1A = 3000;
_delay_ms(1000);
}
}
}
선생님 제가 스위치에 따라서 서보모터각 바꾸는걸 하고싶은데 스위치를 눌러도 서보모터가 전혀 동작하지않습니다. 서보모터를 외부전원인 파워서플라이로 주는데도 전혀 동작하지않는데 뭐가 문제인지 알고싶습니다.ㅠㅠ
댓글 1
조회수 1,699master님의 댓글
master 작성일서보모터용 외부전원의 GND와 AVR의 GND를 연결 해줘야 합니다.