질문게시판 > 아두이노 모터+자이로센서+서보모터+led 제어 질문입니다.

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

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


BASIC4MCU | 질문게시판 | 아두이노 모터+자이로센서+서보모터+led 제어 질문입니다.

페이지 정보

작성자 Mobile 작성일2022-04-21 16:40 조회1,233회 댓글3건

본문

	

#include <MPU6050.h>

#include <I2Cdev.h>

#include <Servo.h>

#include <Wire.h>

 

MPU6050 mpu;

 

int16_t ax, ay, az;

int16_t gx, gy, gz;

int en1 = 9;

int in1 = 8;

int in2 = 7;

char ch;

boolean dir;

Servo myservo;

 

int val;

int prevVal;

void setup()

{

  pinMode(en1, OUTPUT);

  pinMode(in1, OUTPUT);

  pinMode(in2, OUTPUT);

  pinMode(10, OUTPUT);

  pinMode(11, OUTPUT);

  pinMode(12, OUTPUT);

  pinMode(13, OUTPUT);

  Wire.begin();

  Serial.begin(9600);

  Serial.println("Set Motor Direction & Speed");

  Serial.println("Initialize MPU");

  mpu.initialize();

  Serial.println(mpu.testConnection () ? "Connected" : "Connection failed");

  myservo.attach(6);

}

  void loop()

  {

    if(Serial.available())

    {

      ch=Serial.read();

      if(ch=='+')

      {

        int speed=Serial.parseInt();

        dir=true;

        Serial.print("Motor Direction & Speed : ");

        Serial.print("+");

        Serial.println(speed);

        setMotor(speed, dir);

      }

      else if(ch == '-')

      {

        int speed = Serial.parseInt();

        dir = false;

        Serial.print("Motor Direction & Speed : ");

        Serial.print("-");

        Serial.println(speed);

        setMotor(speed, dir);

      }

      else

      {

        analogWrite(en1, 0);

        Serial.print("Motor Direction & Speed :");

        Serial.println(0);

      }

    }

    mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

    val = map(ay, -8191,8191,0,179);

    if(val != prevVal)

    {

    myservo.write(val);

    prevVal=val;

    }

    delay(50);

  {

    digitalWrite(10, HIGH);

    delay(150);

    digitalWrite(10, LOW);

    delay(150);

    digitalWrite(11, HIGH);

    delay(150);

    digitalWrite(11, LOW);

    delay(150);

    digitalWrite(12, HIGH);

    delay(150);

    digitalWrite(12, LOW);

    delay(150);

    digitalWrite(13, HIGH);

    delay(150);

    digitalWrite(13, LOW);

    delay(150);

  }

  }

 void setMotor(int speed, boolean dir)

{

  analogWrite(en1, speed);

  digitalWrite(in1, !dir);

  digitalWrite(in2, dir);

연결하고 구동 시 모터가 회전하지 않고 속도 조절하는걸 넣었는데 조절이 안됩니다. 어떻게 수정해야 할까요
  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 3

조회수 1,233

master님의 댓글

master 작성일

모터 테스트는
다른 코드는 모두 빼고
가장 간단한 모터 구동 예제로 테스트 하세요

Mobile님의 댓글

Mobile 댓글의 댓글 작성일

늦게 답변드려 죄송합니다.
모터는 개별로 테스트를 시행해을때 정상구동되는것을 확인하였고, 자이로+서보모터+led는 정상구동하였습니다.
모터를 추가하면 모터만 구동이 되지 않는데 이유를 모르겠습니다..

master님의 댓글

master 작성일

#include <MPU6050.h>
#include <I2Cdev.h>
#include <Servo.h>
#include <Wire.h>
MPU6050 mpu;
Servo myservo;
int en1=9,in1=8,in2=7;
//
int16_t ax,ay,az,gx,gy,gz,val,prevVal;
char ch;
boolean dir;
//
void setup(){
  pinMode(en1,OUTPUT); pinMode(in1,OUTPUT); pinMode(in2,OUTPUT);
  pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(12,OUTPUT); pinMode(13,OUTPUT);
  Wire.begin();
  Serial.begin(9600);
  Serial.println("Set Motor Direction & Speed"); Serial.println("Initialize MPU");
  mpu.initialize();
  Serial.println(mpu.testConnection () ? "Connected" : "Connection failed");
  myservo.attach(6);
}
//
void loop(){
  if(Serial.available()){
    ch=Serial.read();
    if(ch=='+'){
      int speed=Serial.parseInt();
      Serial.print("Motor Direction & Speed : "); Serial.print("+"); Serial.println(speed);
      dir=true; setMotor(speed,dir);
    }
    else if(ch=='-'){
      int speed=Serial.parseInt();
      Serial.print("Motor Direction & Speed : "); Serial.print("-"); Serial.println(speed);
      dir=false; setMotor(speed,dir);
    }
    else{
      analogWrite(en1,0);
      Serial.print("Motor Direction & Speed :"); Serial.println(0);
    }
  }
  mpu.getMotion6(&ax,&ay,&az,&gx,&gy,&gz);
  val=map(ay,-8191,8191,0,179);
  if(val!=prevVal){ myservo.write(val); prevVal=val; }
  delay(50);
  //
  digitalWrite(10,1); delay(150); digitalWrite(10,0); delay(150);
  digitalWrite(11,1); delay(150); digitalWrite(11,0); delay(150);
  digitalWrite(12,1); delay(150); digitalWrite(12,0); delay(150);
  digitalWrite(13,1); delay(150); digitalWrite(13,0); delay(150);
}
//
void setMotor(int speed,boolean dir){
  analogWrite(en1,speed); digitalWrite(in1,!dir); digitalWrite(in2,dir);
}
1.
Serial.println(speed);
속도 전달이 제대로 되는지 확인하시고, 가급적 255에 가까운 값으로 테스트 하세요
//
2.
en1 핀에 pwm 출력이 제대로 나오는지 확인하시고(테스터기 또는 오실로스코프)
pwm 출력이 제대로 나오지 않는다면 PWM 핀을 변경해서 다시 테스트 하세요
//
3.
전원장치 전류 부족으로 전압강하가 되는지도 체크하세요

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

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
질문 atmega 128 led 순차적 제어입니다 졸업예정 22-06-09 301
답변 답변글 답변 : atmega 128 led 순차적 제어입니다 master 22-06-09 355
질문 아두이노 우노 온습도센서와 LED댓글[7] 이미지 체펠리 22-06-08 961
질문 키패드 led 인체감지 질문 면지지 22-06-02 474
답변 답변글 답변 : 키패드 led 인체감지 질문댓글[3] master 22-06-02 317
질문 atmega128에서 스위치1개는LED, 스위치 1개는 세그먼트의 동작하게 하려는데.. aasdw 22-05-26 628
답변 답변글 답변 : atmega128에서 스위치1개는LED, 스위치 1개는 세그먼트의 동작하게 하려는데..댓글[1] master 22-05-26 646
질문 ATMEGA128 0번핀과1번핀 스위치를 누르면 LED점등 속도 제어댓글[3] dfas123 22-05-11 606
질문 Atmega128 led 왕복 점등 및 스위치 방향 전환댓글[1] MaeuM 22-05-06 1237
질문 LED 점등 예제 질문입니다.댓글[4] 이미지첨부파일 홍머생 22-05-01 1058
질문 Atmega128 led 점등 Eleccc 22-05-01 1337
답변 답변글 답변 : Atmega128 led 점등댓글[8] master 22-05-01 1325
질문 (ATmega128 LED점등)이 부분이 왜 오류가 뜨는건가요?댓글[3] 이미지첨부파일 isdpolicy 22-04-29 1399
현재글 아두이노 모터+자이로센서+서보모터+led 제어 질문입니다.댓글[3] Mobile 22-04-21 1234
질문 마이크로 스위치 입력하면 LED출력댓글[1] 이미지 두두칠리 22-04-18 714
질문 AVR, atmega128에서 led 점등 코드댓글[5] 제발도와주세요 22-04-14 1513
질문 Led 점등시키기댓글[1] 하이용 22-04-12 1101
질문 마이크로프로세서 실습키트LED 점등시키기댓글[1] 하이용 22-04-12 985
질문 Avr atmega128 led 제어 질문드리겠습니다 임연수구이 22-04-04 1205
답변 답변글 답변 : Avr atmega128 led 제어 질문드리겠습니다댓글[1] master 22-04-04 1221
질문 아두이노 LED 실행코드댓글[5] PEANUTS 22-04-04 2225
질문 가변저항 값으로 4개의 LED 밝기를 조절하기댓글[3] 웰치스 22-04-03 1510
질문 아두이노 8x8 led로 가위바위보 게임하기댓글[3] jsham21 22-04-02 1148
질문 아두이노 조이스틱를 이용한 rgb led 표현 + rgb 출력값 읽어오기댓글[5] 나Ks 22-03-25 1804
질문 아두이노 led 시간제어질문이요!!...ㅠ댓글[1] dd1304 21-12-18 2061
질문 atmega128 초음파센서(HC-SR04)를 이용한 LED 제어 질문있습니다.댓글[2] 호2 21-12-04 2544
질문 토글스위치와 블루투스를 동시에 이용하여 led한개를 제어하는 방법 질문댓글[3] 첨부파일 화일 21-12-03 2031
질문 안녕하세요 아트메가128 LED 질문입니다!댓글[2] 이미지첨부파일 아트메가공부중 21-11-28 1866
질문 atmega 128 을 이용한 LED댓글[1] 초보오 21-11-22 1950
질문 artmega128 초음파 센서로 LED 점등하기댓글[1] 이미지첨부파일 maximum 21-11-22 1903
게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기