회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
1152 마이크로프로세서 HOT코딩 질문입니다1 돼진이 1559 2024.05.28
1151 마이크로프로세서 HOTDc모터 전원 연결해도 돌아가질 않습니다.2 전공하수 1460 2023.05.08
1150 마이크로프로세서 HOT혹 EZBL 접해 보신분 있으신가요?1 보라수정 1515 2018.12.11
1149 마이크로프로세서 HOTfnd 1234 켜지면 led 켜지는 코드1 이상원 4623 2018.10.05
1148 마이크로프로세서 HOTSTM32F 개발환경을 소개합니다.4 om 2432 2018.05.13
1147 마이크로프로세서 HOT비엔나 회로 질문1 수채화 1535 2018.04.06
1146 Software & IDEs HOTAllegro OrCAD 16.6 파일 보내주실 수 있나요?2 jihE 1528 2018.01.28
1145 마이크로프로세서 HOT[news] ST마이크로일렉트로닉스, PC용 MCU 파인더 출시로 STM32 및 STM8 설계 리소스 접속 더욱 편리해져 아크마 2838 2018.01.05
1144 마이크로프로세서 HOTAT90CAN128 질문1 전문인을꿈꿔여 1305 2017.09.07
1143 펌웨어 & 코딩언어 HOT객체지향프로그래밍4 끼르 1430 2017.06.19
1142 마이크로프로세서 HOT통신관련질문1 hipertech 2309 2017.06.12
1141 마이크로프로세서 HOT디지털 시계 온도와 습도 정확도 조정을 하려면3 동안 1102 2017.05.10
1140 마이크로프로세서 HOTPIC를 입문하면서 궁금한 사항5 pandaya 1934 2017.04.30
1139 마이크로프로세서 HOT학교과제인데요 도무지모르겠습니다. AVR의길은 멀고도험한거같습니다.5 비언조키다 3152 2017.04.24
1138 마이크로프로세서 HOT도와주세요//MPLAP X IDE에서 내장함수 사용시 에러1 하늘색꿈 1148 2017.02.21
1137 Software & IDEs HOT소스 분석툴 관련 질문드려요2 아톰신 1049 2017.01.02
1136 Software & IDEs HOT리눅스 커널에 대해 공부하려고 하는데 서적 한부 추천 부탁드립니다.1 아톰신 1368 2017.01.02
1135 마이크로프로세서 HOTKeil 8051 컴파일러 크랙을 부탁드려요 ! 지범이 1371 2016.12.16
1134 마이크로프로세서 HOTavr studio 소스를 codevision avr소스로 바꿔주시면 감사하겠습니다.1 xoxokgs 1773 2016.12.14
1133 마이크로프로세서 HOT리눅스 공부 할려니 막막하네요5 초보초보왕초보왕 1275 2016.12.12
Prev 1 2 3 4 5 6 7 8 9 10 ... 58 Next
  • 조용한 물이 깊게 흐른다.
    - 릴리
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.