Arduino/Android - BLUETOOTH 다중 서보 모터 제어
구성품 및 소모품
섹션>
이 프로젝트 정보
안녕하세요 세계입니다! 어제 1서보제어 앱을 만들고 멀티제어를 하겠다고 해서 멀티제어 앱을 소개합니다! 나는 또한 더 나은 Arduino 코드를 만들었습니다. 회로도, 코드, 부품 목록 및 앱에 대한 다음 단계를 따르십시오.
앱 다운로드: 구글 플레이
소스 코드를 원하시면 저에게 연락주세요!
1단계:부품 목록
회로도와 같이 모든 것을 연결하고, 코드를 업로드하고, 앱을 다운로드하고, 장치를 페어링한 후 Bluetooth를 연결하면 작동해야 합니다. RXD를 TX에 연결하고 TXD를 RX에 연결해야 합니다.
또한 업로드할 때 블루투스 모듈을 연결하지 않도록 하십시오.
부품 목록:
<울> Arduino Uno, (6개 이상의 서보를 사용하려면 메가를 사용하십시오!) 저는 RobotDyn Uno.
<울> HC-06 Bluetooth 모듈 또는 기타.
<울> 6 x 서보 모터. (당연히 테스트 가능 )
<울> 점퍼 와이어 세트 MM/FF/MF
<울> Android 휴대전화.
행운을 빕니다!
다음 단계에 따라 Bluetooth 모듈의 이름, 핀 및 전송 속도를 변경하는 방법을 알아보세요. (선택 사항 )
2단계:HC-06의 이름을 변경하는 방법
필요한 것은 무엇입니까?
<울> HC-06에 연결하기 위한 1개의 USB-TTL 마이크로컨트롤러 프로그래머
프로그래머를 연결하는 방법은 무엇입니까?
<울> VCC에서 VCC로
<울> GND에서 GND로
<울> RXD에서 TX로
<울> TXD에서 RX로
시작하기:
<울> USB TTL 프로그래머를 HC-06에 연결합니다.
<울> USB를 연결하고 Arduino IDE를 엽니다.
<울> 시리얼 모니터를 엽니다.
<울> 따옴표 없이 "AT"를 입력합니다. 직렬 모니터에 "OK"라는 응답이 표시되어야 합니다.
<울> "AT+NAMExyz"를 입력합니다. 모듈 이름을 "xyz"로 설정합니다(xyz를 원하는 이름으로 바꿉니다.) 응답은 OKsetname이어야 합니다.
<울> "AT+PIN1234"를 입력합니다. 핀을 1234로 설정합니다(1234를 원하는 핀으로 교체) 응답은 OKsetPIN이어야 합니다. 전송 속도 등을 변경하는 방법에 대한 자세한 내용은 PDF 파일을 포함했습니다. 행운을 빕니다!
FPO4FLIN7QTTG9.pdf
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드"> 코드
<울> BLUETOOTH_Servo_Control_Multi_Servo.ino
BLUETOOTH_Servo_Control_Multi_Servo.ino아두이노
여러 서보를 제어하는 코드.<사전>/*저자:Danny van den Brande. 이 코드를 사용하면 Android 앱을 사용하여 여러 서보 모터를 제어할 수 있습니다. 핀이 다 떨어질 때까지 원하는 만큼 추가할 수 있습니다. 코드에 더 많은 서보를 추가할 수 있습니다. 앱 소스를 원하면 저에게 연락하십시오. */#include 서보 myservo1, myservo2, myservo3, myservo4, myservo5, myservo6, myservo7, myservo8, myservo9, myservo10;byte serialA;void setup(){ myservo1.attach(9); myservo2.attach(10); myservo3.attach(11); myservo4.attach(3); myservo5.attach(5); myservo6.attach(6);// myservo7.attach(); 6개 이상의 서보를 사용하는 경우 핀 번호를 입력하십시오. Serial.begin(9600);//필요한 경우 보오레이트를 블루투스 모듈 보레이트로 변경합니다.}void loop(){ if (Serial.available()> 2) {serialA =Serial.read();Serial.println(serialA );} { unsigned int servopos =Serial.read(); unsigned int servopos1 =Serial.read(); unsigned int realservo =(servopos1 *256) + 서보포스; Serial.println(리얼서보); if (리얼서보>=1000 &&리얼서보 <1180){ int 서보1 =리얼서보; 서보1 =맵(서보1, 1000,1180,0,180); myservo1.write(servo1); Serial.println("서보 1 ON"); 지연(10); } if (리얼서보>=2000 &&리얼서보 <2180){ int 서보2 =리얼서보; 서보2 =맵(servo2,2000,2180,0,180); myservo2.write(servo2); Serial.println("서보 2 켜짐"); 지연(10); } if (리얼서보>=3000 &&리얼서보 <3180){ int 서보3 =리얼서보; 서보3 =맵(servo3, 3000, 3180,0,180); myservo3.write(servo3); Serial.println("서보 3 켜짐"); 지연(10); } if (리얼서보>=4000 &&리얼서보 <4180){ int 서보4 =리얼서보; 서보4 =맵(서보4, 4000, 4180,0,180); myservo4.write(servo4); Serial.println("서보 4 켜짐"); 지연(10); } if (realservo>=5000 &&realservo <5180){ int servo5 =realservo; 서보5 =맵(서보5, 5000, 5180,0,180); myservo5.write(servo5); Serial.println("서보 5 켜짐"); 지연(10); } if (리얼서보>=6000 &&리얼서보 <6180){ int 서보6 =리얼서보; 서보6 =맵(서보6, 6000, 6180,0,180); myservo6.write(servo6); Serial.println("서보 6 켜짐"); 지연(10); }// if (realservo>=7000 &&realservo <7180){ //6개 이상의 서보를 사용하는 경우 주석 해제.// int servo7 =realservo;//servo7 =map(servo7, 7000, 7180,0,180);// myservo7 .write(servo7);// Serial.println("servo 7 On");// delay(10);// }//// if (realservo>=8000 &&realservo <8180){// int servo8 =realservo;//servo8 =map(servo8, 8000, 8180,0,180);// myservo8.write(servo8);// Serial.println("servo 8 On");// delay(10);// }/ /// if (realservo>=9000 &&realservo <9180){// int servo8 =realservo;//servo8 =map(servo9, 9000, 9180,0,180);// myservo8.write(servo8);// 직렬. println("servo 9 On");// delay(10);// }//// if (realservo>=10000 &&realservo <10180){// int servo10 =realservo;//servo10 =map(servo10, 10000, 10180,0,180);// myservo10.write(servo10);// Serial.println("서보 10 켜짐");// 지연(10);// } }} 섹션> 회로도