질문게시판 > 답변 : 답변 : 아두이노 BLDC 가감속 제어

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

답변 : 답변 : 아두이노 BLDC 가감속 제어

페이지 정보

작성자 master 작성일20-01-30 09:56 조회44,575회 댓글5건

본문

 

// DateTime : 2020-01-30 오전 9:58:09
// by Ok-Hyun Park
//
#include <TimerOne.h>
#include <MsTimer2.h>
//
int PWM=9,Direction=4,Brake=2;
int sw=13;
//
#define stop 0
#define fwd  1
#define rev  2
//
volatile int Duty=0,mode=0;
int          Slope=5;
bool         flag=0;
//
void flash(){
  if((mode==0)||(mode==2)){
    if(Duty){
      Duty--; Timer1.setPwmDuty(PWM,Duty);
    }
  }
  //
  if(mode==1){ // 정회전
    digitalWrite(Direction,LOW);
    if(Duty<1000){
      Duty++; Timer1.setPwmDuty(PWM,Duty);
    }
  }
  //
  if(mode==3){ // 역회전
    digitalWrite(Direction,HIGH);
    if(Duty<1000){
      Duty++; Timer1.setPwmDuty(PWM,Duty);
    }
  }
}
//
void setup(){
  pinMode(sw,INPUT_PULLUP);
  pinMode(Direction,OUTPUT);
  pinMode(Brake,OUTPUT);
  Timer1.initialize();  Timer1.pwm(PWM,0);
  Timer1.setPeriod(50); Timer1.setPwmDuty(PWM,0);
  MsTimer2:: set(10/Slope,flash); MsTimer2:: start();
}
//
void loop(){
  if(!digitalRead(sw)){
    if(flag==0){ flag=1if(++mode>3)mode=0delay(50); }
  }
  else{
    if(flag==1){ flag=0delay(50); }
  }
}

 

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

댓글 : 5

조회수 : 44,575

ppap님의 댓글

ppap 작성일

감사합니다 더 열심히 공부하겠습니다

ppap님의 댓글

ppap 작성일

알려주신 언어에서 제가 좀 더 응용해서 스위치2개를 더 넣어서 작동하게 할려고 합니다 지금 스위치 2,3은 가감속 걸리게 했습니다 근데 여기서 스위치1도 가감속이 걸리네요 제가 수정한 언어에서 스위치1이 가감속 걸리는 기능을 뺄려면 어떻게 해야 되나요
스위치1은 동작만 스위치2,3은 가감속만 걸리고 하고 싶습니다
스위치1누름        정회전        스위치 2누름        가감속 걸리면서 멈춤
스위치1누름        역회전        스위치 3누름        가감속 걸리면서 멈춤

#include <TimerOne.h>

#include <MsTimer2.h>

//

int PWM=9,Direction=4,Brake=2;

int sw=8;
int sw2=7;
int sw3=6;
//

#define stop 0

#define fwd  1

#define rev  2

//

volatile int Duty=0,mode=0;

int          Slope=5;

bool        flag=0;



//

void flash(){

  if((mode==0)||(mode==2)){

    if(Duty){

      Duty--; Timer1.setPwmDuty(PWM,Duty);

    }

  }

  //

  if(mode==1){ // 정회전

    digitalWrite(Direction,LOW);

    if(Duty<1000){
     

      Duty++; Timer1.setPwmDuty(PWM,Duty);


   
   
    }
 
   

  }

 

  //

  if(mode==3){ // 역회전

    digitalWrite(Direction,HIGH);

    if(Duty<1000){

      Duty++; Timer1.setPwmDuty(PWM,Duty);

    }
   

  }

}

//

void setup(){

  pinMode(sw,INPUT_PULLUP);
  pinMode(sw2,INPUT_PULLUP);
  pinMode(sw3,INPUT_PULLUP);
  pinMode(Direction,OUTPUT);

  pinMode(Brake,OUTPUT); 
 
  Timer1.initialize();  Timer1.pwm(PWM,0);

  Timer1.setPeriod(50); Timer1.setPwmDuty(PWM,0);

  MsTimer2:: set(10/Slope,flash); MsTimer2:: start();

}

//

void loop(){

  if(!digitalRead(sw)  ){

    if(flag==0){ flag=1; if(++mode>3)mode=0;
   
    delay(50); }

  }
  else if(!digitalRead(sw2)|| !digitalRead(sw3)  ){

    if(flag==0){ flag=1; mode=2; delay(50); }

  }

  else{

    if(flag==1){ flag=0; delay(50); }
 

  }
}

master님의 댓글

master 작성일

가속은 없나요?

master님의 댓글

master 작성일

좋은 영화가 되려면 시나리오가 탄탄해야 한다고 말하죠?
좋은 프로그램이 되려면 알고리즘이 탄탄해야합니다.
모든 경우의 수를 빠짐없이 고려해서 알고리즘을 만들어야합니다.

많은 고민을 해야하고요
이런 훈련은 스스로 해야지 남이 도와줄 수 없는 부분입니다.

ppap님의 댓글

ppap 작성일

감사합니다 알고리즘부터 천천히 공부하겠습니다

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[31] master  17-10-29
질문 ATMEGA128 외부 인터럽트 수행. 댓글[2] 첨부파일소고기카레  25-05-11
질문 아두이노 메가 esp32-cam 질문입니다. 댓글[1] 문외한사람  25-04-29
질문 esp32와 pms7003연결해서 데이터를 받고 싶은데… 댓글[1] 첨부파일boar  25-03-27
질문 DLM-64DCAA 고장나서 수리하고 싶습니다 댓글[2] 첨부파일공부하고싶은콩  25-03-11
질문 로봇 얼굴 제작에 대하여 질문드립니다. 댓글[4] 카모킹스  25-03-03
질문 모터와 모터드라이브 질문있습니다 댓글[1] ponyo  25-02-19
질문 공통음극형 FND를 9V로 동작하게 하고 싶어요. 댓글[7] 멘토  25-01-21
질문 oled 모듈 연결 질문입니다! 댓글[1] 펌린이  24-12-17
질문 Atmega 128 타이머 질문있습니다 댓글[1] ednda  24-12-11
답변 답변 : Atmega 128 타이머 질문있습니다 master  24-12-11
질문 ATmega128 2개로 hc-05,hc-06블루트수 … 동콩이  24-12-04
답변 답변 : ATmega128 2개로 hc-05,hc-06… 댓글[4] master  24-12-04
질문 lm75a 온도센서 관련 질문입니다. 댓글[6] 첨부파일hanmw0707  24-12-01
질문 리얼타임클락 질문이요 ㅠㅠ 댓글[1] 팬케이크  24-11-22
질문 가속도센서 2개를 강아지 2마리에 각각 달아서 스마트폰… 댓글[1] gainomax  24-11-21
질문 라즈베리파이 4B 사용 중 막히는 부분 질문합니다 댓글[1] 한마바키  24-11-12
질문 스위치로 PI 모터 제어 바밤  24-11-11
답변 답변 : 스위치로 PI 모터 제어 master  24-11-12
질문 아트메가128 마이크로프로세서 댓글[3] 옹심이  24-11-05
질문 초음파 센서로 장애물 인식 댓글[1] 나난ㄴ  24-10-31
질문 이런 투명 LCD는 뭐라고 부르나요? 댓글[2] 펌린이  24-10-29
질문 모터제어 중 RPM 계산 질문입니다. 댓글[3] suuuuuuuh  24-10-24
질문 아트메가 128과 블루투스 모듈(HC-06) 연결 질문 댓글[1] 메가아트  24-10-24
질문 ATmega128 질문 DFplayer mini 댓글[1] Miin  24-10-18
질문 스탭모터 3개 회로도 질문.. 삉삉이  24-10-11
답변 답변 : 스탭모터 3개 회로도 질문.. master  24-10-12
질문 수분수위센서와 멀티플렉서 댓글[3] 김고래쓰  24-10-10
질문 ATmegq128 PI 제어기 추가 댓글[1] 바밤  24-10-08
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전