회원가입 ID/PW 찾기
AA

모터작동 이전까지는 값을 잘 출력하다가 모터를 켤 때마다 통신이 끊깁니다.

이렇게 한번 끊기고 나서는 통신을 재개하여도 보낸 데이터를 계속 보내는 현상또한 발생합니다. 좀 기다리면 새로운 데이터를 보내는데 이러면 또 몇초동안 같은 데이터를 반복하고 몇초 뒤 다른 데이터를 몇초동안 보내고 무한반복힙니다.

 

vertical horizontal 두 방향으로 모터에 센서 장착했고요 모터는  200W AC모터 사용합니다. 

코드 첨부합니다.

 

#include <Wire.h> //horizontal

#define I2C_Address 0x53

//ADXL345 register address

#define POWER_CTL 0x2D

#define DATA_FORMAT 0x31

#define X_axis 0x32

#define Y_axis 0x34

#define Z_axis 0x36

#define Range_2g 0

#define Range_4g 1

#define Range_8g 2

#define Range_16g 3

void setup() {

 Wire.begin(); // 센서 작동 시작

 Serial.begin(9600); // 통신속도 9600으로 설정

 Init_ADXL345(Range_4g);

 Serial.println("CLEARDATA");

 Serial.println("X,Y,Z");

}

void loop() {

 //3축 출력

 Serial.print("DATA,");

 Serial.print(Read_Axis(X_axis));

 Serial.print(", ");

 Serial.print(Read_Axis(Y_axis));

 Serial.print(", ");

 Serial.print(Read_Axis(Z_axis));

Serial.println();

 delay(20);

}

//I2C인터페이스를 통해 축을 읽음

int Read_Axis(byte a) {

 int data;

 Wire.beginTransmission(I2C_Address);

 Wire.write(a);

 Wire.endTransmission();

 Wire.beginTransmission(I2C_Address);

 Wire.requestFrom(I2C_Address, 2);

 if (Wire.available()) {

 data = (int)Wire.read();

 data = data | (Wire.read() << 8);

 }

 else {

 data = 0;

 }

 Wire.endTransmission();

 return data;

}

//ADXL345 초기화

void Init_ADXL345(byte r) {

 Wire.beginTransmission(I2C_Address);

 //감도설정

 Wire.write(DATA_FORMAT);

 Wire.write(r);

 Wire.endTransmission();

 //측정모드로 전환

 Wire.beginTransmission(I2C_Address);

 Wire.write(POWER_CTL);

 Wire.write(0x08);

 Wire.endTransmission();

}

    

댓글 1
  • No Profile

    모터 노이즈의 의한 물리적인 노이즈 간섭이 아니고

    단순히 제어 코드 문제라면요

    제어 코드에서 모터를 읽는 구문이 동기인지 비동기인지, 탈출 조건이 있는지도 점검해 보세요

     

    제어권을 마스터가 오롯이 가지는 등

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
225 Allegro & OrCAD 거버파일 각 레이어 역할!! 도와주세요!!1 제니 162 2021.12.12
224 Allegro & OrCAD Pads 9.5 Layout에서 2Layer 거버를 만들려면 어떻게 하나요?1 노웨이 135 2016.12.26
223 Allegro & OrCAD OrCAD PCB Designer 질문있습니다.1 장동휘 165 2016.12.09
222 Allegro & OrCAD 전자캐드 준비중인데요 DRC체크할때 워링 뜨는 이유를 알고 싶어요2 김타우 252 2016.11.23
221 Allegro & OrCAD HOTbrd 파일 변환중에 문제가 생겨 질문드립니다.1 초오보 590 2016.11.02
220 Allegro & OrCAD BOM 출력 시, PCB의 TOP면과 BOTTOM 면을 구분하여 출력할수있나요??1 휘래 387 2016.09.07
219 Allegro & OrCAD [질문] Orcad pin 설정 질문입니다1 Ahnroid 183 2016.08.08
218 Allegro & OrCAD HOTorcad 16.6 설치 방법좀 알려주세요3 dlimi 1037 2016.06.20
217 Allegro & OrCAD HOT555 Timer와 4017(10진 카운터)를 이용한 led 순차점멸 회로 질문1 방탁 901 2016.05.26
216 Allegro & OrCAD dsn파일을 열려고합니다2 BUZZ 311 2016.05.15
215 Allegro & OrCAD 소자를 만들어야 하는데 어떻게 하는지 모르겠습니다 도와주세요1 BUZZ 155 2016.04.28
214 Allegro & OrCAD Stimulus editor 이용시... 모토로히 240 2016.03.30
213 Allegro & OrCAD HOTCadence 16.6 크랙구해봅니다!1 이초림 772 2016.03.18
212 Allegro & OrCAD 알레그로 16.5이상 버전 파일 가지고 계신분1 공기 188 2016.03.04
211 Allegro & OrCAD TLP181, UNL2083 사용법 좀 알려주세요.1 슈퍼빠워 350 2016.02.05
210 Allegro & OrCAD Checking For Unconnected Bus Nets 이렇게 나오는데 왜 그런지 알수가 없네요 가르쳐 주세요.2 molody88 241 2015.10.19
209 Allegro & OrCAD pads 9.3 버전을 윈7에 설치했습니다.1 김경석 179 2015.08.03
208 Allegro & OrCAD Delete violating tracks이 뭔가요?1 투명구슬 93 2015.06.12
207 Allegro & OrCAD HOTORCAD에선 이런것들 표현을 어떻게 하나요?1 기적 415 2015.05.21
206 Allegro & OrCAD OrCAD PCB EDITOR에서 vcc나 gnd의 TOP, BOTTOM 색상도 지정이 가능한가요?1 기적 347 2015.04.21
Prev 1 2 3 4 5 6 7 8 9 10 ... 12 Next
  • 의복에만 마음이 쏠리는 것은 마음과 인격이 잠든 탓이다.
    - 에머슨
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.