질문게시판 > 답변 : 아두이노 mpu6050 질문입니다

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

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

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

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

BASIC4MCU > 질문게시판

답변 : 아두이노 mpu6050 질문입니다

페이지 정보

작성자 master 작성일18-06-24 16:08 조회4,418회 댓글1건

본문

 

// DateTime : 2018-06-24 오후 4:11:28
// by Ok-Hyun Park
아두이노 우노 R3과 mpu6050센서 조이스틱으로
2개의서보모터를 제어 하고자 합니다
지금의 코드로는 mpu6050센서값으로 서보모터가  움직입니다
하지만 조이스틱으로 제어하고자 할때 계속 자이로센서를 따라가버려서 원하는 위치로 가질 않고 있습니다.
//
조이스틱으로 제어시 서보모터가 자이로센서에 영향을 받지 않고 제어되다가
조이스틱의 움직임이 없을시 다시 자이로센서로 수평을 유지 하고자 합니다
mpu6050에 슬립모드라는게 있다는걸 알게 되었는데 어떻게 적용해야 할지 막막합니다
//
#include "Wire.h"
#include "I2Cdev.h"
#include "MPU6050.h"
MPU6050 mpu;
#include "Servo.h"
Servo servo1;
Servo servo2;
//
int16_t ax,ay,az;
int16_t gx,gy,gz;
int angle1=90;
int val1,val2;
int prevVal1,prevVal2;
//
void setup(){
  Wire.begin();
  Serial.begin(38400);
  Serial.println("Initialize MPU");
  mpu.initialize();
  Serial.println(mpu.testConnection()?"Connected""Connection failed");
  servo1.attach(9); servo1.write(90);
  servo2.attach(10); servo2.write(90);
}
//
void loop(){
  int X=analogRead(A0);
  int Y=analogRead(A1);
  if((X>=400)&&(X<=600)&&(Y>=400)&&(Y<=600)){
    mpu.getMotion6(&ax,&ay,&az,&gx,&gy,&gz);
    val1=map(ax,-17000,17000,0,179);
    if(val1!=prevVal1){ servo1.write(val1); prevVal1=val1; }
    Serial.print("X_AXIS: "); Serial.println(X);
    Serial.print("Y_AXIS: "); Serial.println(Y);
    Serial.print("Filter angle: "); Serial.println(val1);
    val2=map(ay,-17000,17000,0,179);
    if(val2!=prevVal2){ servo2.write(val1); prevVal1=val1; }
  }
  else{
    if(X<400){
      if(angle1<180){ servo1.write(angle1++); delay(50); }
      else if(angle1==180){ /*balnk*/}
    }
    else if(X>600){
      if(angle1>0){ servo1.write(angle1--); delay(50); }
      else if(angle1==0){ /*b; ank*/}
    }
    //
    if(Y<400){
      if(angle1<180){ servo2.write(angle1++); delay(50); }
      else if(angle1==180){ /*balnk*/}
    }
    else if(Y>600){
      if(angle1>0){ servo2.write(angle1--); delay(50); }
      else if(angle1==0){ /*b; ank*/}
    }
  }
  //
  delay(100);
}

 

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

댓글 : 1

조회수 : 4,418

Detirr님의 댓글

Detirr 작성일

감사합니다~~
한가지 제가 질문을 잘 못했었던거 같습니다
위코드에선 조이스틱을 따라 이동은 하는데 다시 원위치로 돌아오는거 같습니다
조이스틱으로 조정 된 위치에서 자이로센서로 수평을 잡아주는 걸 해보려고 합니다
일단 알려주신 코드로 다시 도전을 해보고 막히면 다시 배움을 받고 싶습니다

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[25] master  17-10-29
질문 아두이노 while문 탈출 질문 yhj2644 새글 03:39
질문 ESP32-C3 리튬폴리머 ADC 전압 체크 관련 문의… 댓글[3] cansad 새글 22-06-30
질문 ESP32-C3 리튬폴리머 ADC 전압 체크 관련 문의 댓글[3] cansad 새글 22-06-30
질문 빵판없이 디스플레이 넣을 수 있을까요? 댓글[2] 첨부파일오소로롯 새글 22-06-29
질문 라즈베리파이4 신형 선택문제 댓글[1] maximum  22-06-26
질문 음전압 ADC 댓글[2] 412904  22-06-26
질문 아두이노 센서값 출력 질문입니다! 댓글[1] 아궁2  22-06-24
질문 ATmega128, ATmega28 RS232통신 첨부파일Moon4201  22-06-24
답변 답변 : ATmega128, ATmega28 RS232… 댓글[1] master  22-06-25
질문 서보모터, 온습도센서 코드 질문 댓글[2] 첨부파일kshdlfaldfh  22-06-22
답변 답변 : 서보모터, 온습도센서 코드 질문 댓글[15] master  22-06-22
질문 steppermulti5 질문 응애  22-06-21
답변 답변 : steppermulti5 질문 댓글[1] master  22-06-22
질문 atmega128 avr usart 질문 snoflak  22-06-21
답변 답변 : atmega128 avr usart 질문 댓글[5] master  22-06-21
질문 사용자 정의 함수 변환 하는 방법 댓글[2] 첨부파일da0800  22-06-21
질문 atmega128 댓글[1] 양의노래  22-06-20
질문 아두이노 동시동작 재질문 댓글[9] 첨부파일죠르디  22-06-20
질문 초음파센서로 dc모터 제어하기 댓글[1] 첨부파일난쟁2  22-06-20
질문 아두이노 동시동작 댓글[7] 죠르디  22-06-19
질문 ATMEGA128 UART,FND 연동 질문 JMOD  22-06-19
답변 답변 : ATMEGA128 UART,FND 연동 질문 댓글[1] master  22-06-20
질문 atmeg128 질문이요 댓글[1] 첨부파일공대생er  22-06-18
질문 atmega128 초음파 센서로 신호등 시간초 늘리기 서동씨  22-06-18
답변 답변 : atmega128 초음파 센서로 신호등 시간초… 댓글[1] master  22-06-18
질문 atmega128 댓글[2] 망경이  22-06-18
질문 앱인벤터 이용해서 수동 자동 할라고하는데 ..잘안됩니다… 댓글[1] 따랑해영  22-06-18
답변 질문 : 앱인벤터 이용해서 수동 자동 할라고하는데 ..… 댓글[1] 첨부파일따랑해영  22-06-19
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전