질문게시판 > 답변 : 답변 : atmega128 dc모터 멈춤 코드

TODAY800 TOTAL340,663
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | 답변 : 답변 : atmega128 dc모터 멈춤 코드

페이지 정보

작성자 master 작성일2018-12-06 15:56 조회33회 댓글3건

본문

	

 

// DateTime : 2018-12-06 오후 4:01:39
// by Ok-Hyun Park
//
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
//
unsigned int result=0xFFFF,th=0x0100;
char flag=0;
//
void m1stop(){ PORTC=(PORTC&0x0C);   }
void m1fwd() { PORTC=(PORTC&0x0C)|1; }
void m1bwd() { PORTC=(PORTC&0x0C)|2; }
//
void m2stop(){ PORTC=(PORTC&0x03);   }
void m2fwd() { PORTC=(PORTC&0x03)|4; }
void m2bwd() { PORTC=(PORTC&0x03)|8; }
//
int main(void){
  DDRB=0x60// 모터2 ENB(PB6),모터1 ENA(PB5)
  DDRC=0x0F// 모터2 IN4(PC3),IN3(PC2),IN2(PC1),IN1(PC0)
  OCR1AL=255TCCR1A=0xA1TCCR1B=0x1AICR1=255;
  ADMUX=0x42ADCSRA=0xE7// 센서 PF2
  SREG=0x80;
  _delay_ms(1); result=ADCif(result<th)flag=1else flag=0// 처음에 모터를 돌지 않기 위한 초기값 설정
  while(1){
    result=ADC;
    //
    if(result<th){
      if(flag==0){ flag=1m1fwd(); m2fwd(); _delay_ms(1000); m1stop(); m2stop(); }
    }
    else{
      if(flag==1){ flag=0m1bwd(); m2bwd(); _delay_ms(1000); m1stop(); m2stop(); }
    }
  }
}

 

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 3

조회수 33

lalalalla님의 댓글

lalalalla 작성일

감사합니다!
그런데 혹시 모터1개만쓸건데, B포트없이  C포트만 쓰고는 못하나요..?

master님의 댓글

master 댓글의 댓글 작성일

포트 입출력만 공부하면 할 숴 있습니다.
직접 해보세요
포트 입출력도 할 줄 모르면 안됩니다.

lalalalla님의 댓글

lalalalla 댓글의 댓글 작성일

앗 되네요! 감사합니다!!!!

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
게시물 검색

Privacy Policy
MCU BASIC ⓒ 2017
모바일버전으로보기