목차
개요
블루투스(컴퓨터 또는 안드로이드 폰)로 아두이노에 연결된 유니폴라 스텝모터를 제어해 봅니다.
준비물
- 시리얼통신 프로그램 ( http://whiteat.com/bSerialComCS/227059 ) C# 코드 제공
- [기초]컴퓨터와 아두이노 블루투스 통신(https://docs.whiteat.com/?p=2457)
- [기초]유니폴라 스텝모터 실험(https://docs.whiteat.com/?p=178)
- 안드로이드 블루투스어플(https://play.google.com/store/apps/details?id=com.whiteat.android.wat_bt_app1 )
WAT-Arduino128 예제
부품 목록
부품명 | WAT-Arduino128 | |
---|---|---|
기능 | 아두이노 | |
수량 | 1 | |
판매처 | https://kit128.com/goods/view?no=64 |
부품명 | HC-06 |
Bluetooth module |
---|---|---|
기능 | 블루투스 모듈 | |
수량 | 1 | |
판매처 | https://kit128.com/goods/view?no=65 |
부품명 | WAT-STEP1 | |
---|---|---|
기능 | 스텝모터 드라이버 | |
수량 | 1 | |
판매처 | https://kit128.com/goods/view?no=41 |
핀 연결
WAT-Arduino128의 PORTA 와 WAT-STEP1 을 연결하고 WAT-STEP1 모듈에 12V 스텝모터용 전원을 연결합니다.
소스코드
최신 소스코드는 [파일] => [예제] => [WhiteAT] => [StepMotor] => [bluetooth] 에 있으며
라이브러리는 아두이노 개발환경 을 참조하세요
/* 컴퓨터 또는 스마트폰으로 스텝모터 제어 5가지 형태의 커맨드 MnnnT 형태의 5bytes 이며 nnn 은 정수임 예> 시계방향 빠르게 회전 (M099T : 시계방향으로 딜레이 1로 회전 n=99) 시계방향 느리게 회전 (M001T : 시계방향으로 딜레이99로 회전 n=01) 정지 (M000T : 정지 n=0 ) 반시계방향 느리게 회전 (M-01T:반시계방향으로 딜레이99로 회전 n=-1) 반시계방향 빠르게 회전 (M-99T:반시계방향으로 딜레이 1로 회전 n=-99) 출처: http://whiteat.com/Arduino 보드 WAT-Arduino128 : https://kit128.com/goods/view?no=64 WAT-STEP1 : https://kit128.com/goods/view?no=41 */ #include <WAT_Multi.h> #include <WAT_STEP1.h> // STEP1 : 유니폴라 1상 여자 방식 // STEP2 : 유니폴라 2상 여자 방식 // STEP12 : 유니폴라 1-2상 여자 방식 Step1 step(STEP2,PA0,PA1,PA2,PA3); // 프로그램 시작 - 초기화 작업 void setup() { Serial.begin(115200); //시리얼 통신 초기화 Serial1.begin(9600); // HC-06 용 시리얼 // key = 1234, 000, 1111 Serial1.print("AT+NAME BT - Whiteat.com\n"); } void loop() { step.Next(); } String inString; void serialEvent1() { while (Serial1.available()) { int inChar = Serial1.read(); if ( isAlphaNumeric(inChar) || inChar=='-') { inString += (char)inChar; } else if (inChar == '\n') { if(inString.length()>=5) { if(inString.charAt(0) =='M' && inString.charAt(4) =='T' ) { inString = inString.substring(1,4); step.setSpeed(inString.toInt()); Serial.print("Direction:"); Serial.print(step.DirString()); Serial.print(" , Turn Delay:"); Serial.println(step.getSpeed()); } else { Serial.print("Bad Packet[Data:"); Serial.print(inString); Serial.println("]"); } } else { Serial.print("Short Data Retry [Data:"); Serial.print(inString); Serial.println("]"); } inString = ""; } } }
디버깅 화면
블루투스에 연결된 컴퓨터 화면
M001T 를 보내면 시계방향으로 빠른 속도로 회전합니다.
안드로이드 블루투스 통신 화면
비주얼스튜디오 만드는 과정은 나와있지 않나요??
안녕하세요
화이트앳입니다.
Visual C#으로 작성한 시리얼통신코드를 제공해 드리고 있습니다.
http://whiteat.com/bSerialComCS
참조하세요
감사합니다.