아두이노블루투스 RC카
Makerist
스마트&tech
0
683
2024.03.03 17:11
안녕하세요!이번시간에는
Uno 보드, L9110S 모터 드라이버, HC-06 블루투스 모듈을 사용하여 제어가 되는 아두이노 블루투스 RC자동차의 소스 코드를 작성해 보겠습니다.
#include <SoftwareSerial.h> // 모터 핀 설정 int A_1A = 6; int A_1B = 11; int B_1A = 3; int B_1B = 5; // 블루투스 모듈 핀 설정 int btRxPin = 12; // HC-06 RX 핀 - Arduino D13 int btTxPin = 13; // HC-06 TX 핀 - Arduino D12 SoftwareSerial bluetoothSerial(btRxPin, btTxPin); // 소프트웨어 시리얼 객체 생성 int speed = 255; // 모터 속도 void setup() { bluetoothSerial.begin(9600); // 블루투스 통신 시작 pinMode(A_1A, OUTPUT); pinMode(A_1B, OUTPUT); pinMode(B_1A, OUTPUT); pinMode(B_1B, OUTPUT); digitalWrite(A_1A, LOW); digitalWrite(A_1B, LOW); digitalWrite(B_1A, LOW); digitalWrite(B_1B, LOW); Serial.begin(9600); } void loop() { char cmd = 0; // Bluetooth 통신을 통해 명령 받기 if (bluetoothSerial.available()) { cmd = bluetoothSerial.read(); } // 시리얼 통신을 통해 명령 받기 if (Serial.available()) { cmd = Serial.read(); } // 명령에 따라 모터 제어 /* //analogWrite(A_1A, speed); //A모터 정회전 analogWrite(A_1B, 0); //A모터 역회전 analogWrite(B_1A, speed); analogWrite(B_1B, 0); break; */ switch (cmd) { case 'f': analogWrite(A_1A, speed); analogWrite(A_1B, 0); analogWrite(B_1A, speed); analogWrite(B_1B, 0); break; case 'b': analogWrite(A_1A, 0); analogWrite(A_1B, speed); analogWrite(B_1A, 0); analogWrite(B_1B, speed); break; case 'r': // 오른쪽 명령 시 A 모터는 정회전, B 모터는 역회전 analogWrite(A_1A, 0); analogWrite(A_1B, 0); analogWrite(B_1A, speed); analogWrite(B_1B, 0); break; case 'l': // 왼쪽 명령 시 B 모터는 정회전 analogWrite(A_1A, speed); analogWrite(A_1B, 0); analogWrite(B_1A, 0); analogWrite(B_1B, 0); break; case 's': analogWrite(A_1A, 0); analogWrite(A_1B, 0); analogWrite(B_1A, 0); analogWrite(B_1B, 0); break; } }