아두이노 코딩 좀 도와주세요.

알림
|
X

페이지 정보

작성자 드로니 182.♡.152.44
작성일 2024.04.30 01:27
343 조회
0 추천
쓰기

본문

안녕하세요. 몇일 째 이것저것 해보는데 잘안되서 도움을 요청드립니다. 저는 프로그래머가 아니고 취미를 따라하기만 하는데 적당한 예제? 가 없어서요.

아두이노로 MCT8316A 모터 드라이버의 레지스터를 읽고 쓰고 싶은데요. 기존의  i2c랑은 달라서 잘 모르겠더라고요. 

데이터시트는 https://www.ti.com/product/MCT8316A 여기에 있고요. 칩이 다르지만 비슷한 예제는 찾긴 찾았는데요. https://forum.arduino.cc/t/mcf8316a-motor-driver-programming-through-i2c/1168121/9 도움 좀 부탁드립니다~





댓글 8 / 1 페이지

woong님의 댓글

작성자 woong (1.♡.94.243)
작성일 04.30 01:33
저는 지식이 없고.. 과금한 챗지피티가 알려주는거 올려봅니다.

MCT8316A 모터 드라이버를 아두이노와 함께 사용하여 레지스터를 읽고 쓰는 방법을 안내해 드리겠습니다. MCT8316A는 TI(Texas Instruments)에서 제작한 브러시리스 DC(BLDC) 모터 드라이버로, 주로 SPI 통신 프로토콜을 사용합니다.

### 1. 필요한 재료
- 아두이노 보드 (예: 아두이노 우노)
- MCT8316A 모터 드라이버
- 점퍼 와이어
- 외부 전원 공급 장치 (모터 드라이버용)

### 2. 하드웨어 연결
1. **SPI 통신 연결** : 아두이노와 MCT8316A 간의 SPI 통신을 설정합니다. 아두이노의 SPI 핀을 다음과 같이 연결하세요:
  - SCK (시리얼 클록) -> MCT8316A의 SCLK
  - MOSI (Master Out Slave In) -> MCT8316A의 SDI
  - MISO (Master In Slave Out) -> MCT8316A의 SDO
  - SS (슬레이브 선택) -> MCT8316A의 nCS

2. **전원 연결** : MCT8316A에 적절한 전원을 제공합니다. 모터와 드라이버의 전압 사양을 확인하고, 외부 전원 공급 장치를 사용하여 연결하세요.

### 3. 소프트웨어 설정
아두이노 IDE에서 SPI 라이브러리를 사용하여 MCT8316A와 통신하는 코드를 작성합니다.

#include <SPI.h>

const int csPin = 10; // 슬레이브 선택 핀 설정

void setup() {
  // SPI 통신 시작
  SPI.begin();
  pinMode(csPin, OUTPUT);
  digitalWrite(csPin, HIGH); // MCT8316A 비활성화
  SPI.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE3)); // MCT8316A에 맞는 설정
}

void loop() {
  // 레지스터 읽기 예시
  byte regAddress = 0x01; // 읽고 싶은 레지스터 주소
  digitalWrite(csPin, LOW); // MCT8316A 활성화
  SPI.transfer(0x80 | regAddress); // 읽기 명령 전송
  byte result = SPI.transfer(0x00); // 데이터 읽기
  digitalWrite(csPin, HIGH); // MCT8316A 비활성화

  delay(1000); // 다음 읽기까지 대기

  // 레지스터 쓰기 예시
  regAddress = 0x01; // 쓰고 싶은 레지스터 주소
  byte dataToWrite = 0xFF; // 쓰고 싶은 데이터
  digitalWrite(csPin, LOW); // MCT8316A 활성화
  SPI.transfer(regAddress); // 쓰기 명령 전송
  SPI.transfer(dataToWrite); // 데이터 쓰기
  digitalWrite(csPin, HIGH); // MCT8316A 비활성화

  delay(1000); // 다음 쓰기까지 대기
}


### 4. 테스트 및 디버깅
- 프로그램을 아두이노 보드에 업로드하고, 시리얼 모니터를 통해 결과를 확인하세요.
- MCT8316A의 상태 레지스터를 읽어서 제대로 설정되었는지 확인합니다.

위 코드와 설정을 사용하여 아두이노를 통해 MCT8316A의 레지스터를 성공적으로 읽고 쓸 수 있습니다. 실험 환경에 맞게 코드를 조정할 수 있습니다.

드로니님의 댓글의 댓글

대댓글 작성자 드로니 (182.♡.152.44)
작성일 04.30 08:20
@woong님에게 답글 감사합니다만, 이미 chatgpt는 사용해봤습니다 ㅋ

이니즈님의 댓글

작성자 이니즈 (119.♡.141.29)
작성일 04.30 11:59
질문이 너무 모호합니다. 그냥 잘 안된다고 하면 어떻게 답변이 나오나요. 회로 결선도, 전원 조건 등등 기본적인 내용은 있는 상태에서 현상태와 하려는 목표를 적으셔야 답이 나옵니다.

드로니님의 댓글의 댓글

대댓글 작성자 드로니 (211.♡.143.160)
작성일 04.30 17:15
@이니즈님에게 답글 아 네 두서없이 적었네요

문없는문님의 댓글

작성자 문없는문 (119.♡.18.31)
작성일 04.30 14:52
이런 제품이 있는데, 칩을 그대로 사용하시는건 아니고 모듈로 되어 있는 것 사용하시는 거죠?

https://vctec.co.kr/product/3상-bldc-모터-드라이버-모듈-mct8316a-brushless-25-click/22141/

인터페이스가 I2C인지 SPI인지 확인하시고,
관련 모듈의 라이브러리를 찾아서 예제와 같이 해보시는게 좋을것 같습니다.
아두이노 IDE에서 라이브러리 검색이 되는지도 확인해 보시구요.

아두이노 한지 너무 오래라... 원칙만 말씀드렸네요.

드로니님의 댓글의 댓글

대댓글 작성자 드로니 (211.♡.143.160)
작성일 04.30 17:16
@문없는문님에게 답글 네 그거 맞습니다. 이게 예제 정도만 되도 해볼텐데 쉐도우 래지스터니 뭐니 해서 감이 안잡히네요

문없는문님의 댓글의 댓글

대댓글 작성자 문없는문 (119.♡.18.31)
작성일 04.30 17:23
@드로니님에게 답글 아두이노 라이브러리에 없다면 해당모듈 메이커에 문의한번 해보시구요,
없다면 날코딩 하셔야 해요...

모터제어 모듈이 다양하게 있을텐데...
꼭 이제품이 아니라면. 다른걸로 골라보시는 것도 비 전문가에겐 문턱이 낮춰지요.

드로니님의 댓글의 댓글

대댓글 작성자 드로니 (211.♡.143.160)
작성일 04.30 18:52
@문없는문님에게 답글 네 감사합니다 일단 날코딩 도전 해보겠습니다
쓰기
홈으로 전체메뉴 마이메뉴 새글/새댓글
전체 검색