회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
106 펌웨어 & 코딩언어 객체지향프로그래밍4 끼르 323 2017.06.19
105 펌웨어 & 코딩언어 적외선 센서에 대한 질문입니다.3 jaemi2010 336 2016.02.25
104 펌웨어 & 코딩언어 구조체 포인터 캐스팅??1 기다려줄래 309 2015.07.10
103 펌웨어 & 코딩언어 matlab에서 작성된 m file을 c++로 변환하고 싶습니다.1 마린스토리 278 2014.04.28
102 펌웨어 & 코딩언어 HOTC언어로된 MPPT제어 프로그램 Code Vision 으로 변환하기 찰떡젤리 574 2014.04.21
101 펌웨어 & 코딩언어 C 명령어 좀 상세히 알고 싶습니다1 jsp 394 2014.04.03
100 펌웨어 & 코딩언어 HOT피보나치 수열..2 aNitMotD 538 2013.10.30
99 펌웨어 & 코딩언어 HOT1D FEM coding 문제 ..원하는 답이 안나와요 수치해석미쵸 495 2013.09.29
98 펌웨어 & 코딩언어 HOTPIC 16F628A와 CCSC 기반의 프로그래밍 질문입니다. 제발 도와주세요ㅠㅠ 신천동주민 467 2013.09.24
97 펌웨어 & 코딩언어 HOT비주얼베이직 연산 및 줄바꿈에 대한 질문입니다.1 원할머니보고쌈 672 2012.11.07
96 펌웨어 & 코딩언어 c언어 질문인데요..3 하하하하히 385 2012.09.10
95 펌웨어 & 코딩언어 HOTC언어제어3 tbwnaoslwj1 645 2012.08.09
94 펌웨어 & 코딩언어 HOTmatlab 질문입니다.. 소다수1 403 2012.06.06
93 펌웨어 & 코딩언어 HOT-(C언어(함수호출)로 만든 크리스*마스*트리*프로그램)-1 리종순2 1460 2011.12.14
92 펌웨어 & 코딩언어 HOT외부 SRAM 컨트롤하는 것좀 도와주세요.1 쩡무 1366 2011.11.15
91 펌웨어 & 코딩언어 HOTunikey program 수정 jjhuem 1107 2011.10.11
90 펌웨어 & 코딩언어 HOTAtmega128에서 Reset 하는 방법 중 궁금한 점이 있습니다!!!4 공돌이의꿈 3144 2011.06.21
89 펌웨어 & 코딩언어 HOTC언어랑 matlab의 차이?1 약곰탱이 3518 2011.06.02
88 펌웨어 & 코딩언어 HOTVHDL 전가산기 설계 질문입니다. 나트륨 2976 2011.03.26
87 펌웨어 & 코딩언어 HOTC 배열이용해서 엑셀 데이터 끌어오는 방법???2 꼬꼴리 2115 2011.03.24
  • 확실한 벗은 불확실한 처지에 있을 때 알려지다.
    - 시세로
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.