| 아두이노 메가를 통해서 RC카 제작을 하고 있습니다.  #include <SoftwareSerial.h>                        //가상 시리얼 통신을 위한 라이브러리 선언 #define BT_RXD 15                                       // 아두이노의 4번핀을 RX(받는 핀)로 설정#define BT_TXD 14                                     // 아두이노 3번핀을 TX(보내는 핀)로 설정
 SoftwareSerial bluetooth(BT_RXD,BT_TXD);                       //블루투스 통신을 위한 설정  int RightMotor_E_pin = 30;                               // 오른쪽 모터의 Enable & PWMint LeftMotor_E_pin = 31;                               // 왼쪽 모터의 Enable & PWM
 int RightMotor_1_pin = 34;                              // 오른쪽 모터 제어선 IN1
 int RightMotor_2_pin = 35;                                // 오른쪽 모터 제어선 IN2
 int LeftMotor_3_pin = 36;                                // 왼쪽 모터 제어선 IN3
 int LeftMotor_4_pin = 37;                                // 왼쪽 모터 제어선 IN4
 //좌우 모터 속도 조절, 설정 가능 최대 속도 : 255int L_MotorSpeed = 185; // 왼쪽 모터 속도
 int R_MotorSpeed = 160; // 오른쪽 모터 속도
 int R_Motor = 0;int L_Motor = 0;
 int mode = 0;
 void setup() {pinMode(RightMotor_E_pin, OUTPUT);                                  // 출력모드로 설정
 pinMode(RightMotor_1_pin, OUTPUT);
 pinMode(RightMotor_2_pin, OUTPUT);
 pinMode(LeftMotor_3_pin, OUTPUT);
 pinMode(LeftMotor_4_pin, OUTPUT);
 pinMode(LeftMotor_E_pin, OUTPUT);
   Serial.begin(9600);                          //PC와 아두이노간 시리얼 통신 속도를 9600bps로 설정 bluetooth.begin(9600);                               //블루투스와 아두이노간 시리얼 통신 속도를 9600bps로 설정
 
 Serial.println("Welcome Eduino!");
 }
 void loop() { if(bluetooth.available()){
 char Blue_Val = bluetooth.read();
 
 Serial.print("Input Signal : ");
 Serial.print("Bluetooth[ "); Serial.print(Blue_Val); Serial.print(" ], ");
     control_SmartCar(Blue_Val);     if(mode == 0){motor_role(R_Motor, L_Motor);
 }
 else if(mode == 1){
 Right_role(R_Motor, L_Motor);
 }
 else if(mode == 2){
 Left_role(R_Motor, L_Motor);
 }
 else if(mode == 4){
 left_rotation(R_Motor, L_Motor);
 }
 else if(mode == 5){
 right_rotation(R_Motor, L_Motor);
 }
 else{
 analogWrite(RightMotor_E_pin, 0);
 analogWrite(LeftMotor_E_pin, 0);
 }
 }
 }
 void control_SmartCar(char Blue_val){ if( Blue_val == 'g' ){                             // "g" 버튼, 명령 : 전진
 R_Motor = HIGH; L_Motor = HIGH; mode = 0;
 //Serial.print("Forward : ");
 }
 
 else if( Blue_val == 'r' ){                         // "r" 버튼, 명령 : 우회전
 mode = 1;
 //Serial.print("Turn Right : ");
 }
 
 else if( Blue_val == 'l' ){                       // "l" 버튼, 명령 : 좌회전
 mode = 2;
 //Serial.print("Turn Left : ");
 }
 
 else if( Blue_val == 'b' ){                             // "b" 버튼, 명령 : 후진
 R_Motor = LOW; L_Motor = LOW; mode = 0;
 //Serial.print("Backward : ");
 }
   else if( Blue_val == 's' ){                             // "s" 버튼, 명령 : 정지R_Motor = HIGH; L_Motor = HIGH; mode = 3;
 //Serial.print("Stop : ");
 }
 
 else if( Blue_val == 'q' ){                          // "q" 버튼, 명령 : 제자리 좌회전
 mode = 4;
 //Serial.print("Left Rotation : ");
 }
 
 else if( Blue_val == 'w' ){                     // "w" 버튼, 명령 : 제자리 우회전
 mode = 5;
 //Serial.print("Right Rotation : ");
 }
 
 else{
 //Serial.print("Not Defined : ");                                          // 지정하지 않은 주소입력.
 }
 /*
 Serial.print("R_Motor[ ");Serial.print(R_Motor);Serial.print(" ], ");
 Serial.print("L_Motor[ ");Serial.print(L_Motor);Serial.print(" ], ");
 Serial.print("MotorSpeed(L, R)[ ");Serial.print(L_MotorSpeed, R_MotorSpeed);Serial.print(" ], ");
 Serial.print("Mode[ ");Serial.print(mode);Serial.println(" ]");
 */
 }
 void motor_role(int R_motor, int L_motor){digitalWrite(RightMotor_1_pin, R_motor);
 digitalWrite(RightMotor_2_pin, !R_motor);
 digitalWrite(LeftMotor_3_pin, L_motor);
 digitalWrite(LeftMotor_4_pin, !L_motor);
 
 analogWrite(RightMotor_E_pin, R_MotorSpeed);                                           // 우측 모터 속도값
 analogWrite(LeftMotor_E_pin, L_MotorSpeed);                                         // 좌측 모터 속도값
 }
 void Right_role(int R_motor, int L_motor){digitalWrite(RightMotor_1_pin, R_motor);
 digitalWrite(RightMotor_2_pin, !R_motor);
 digitalWrite(LeftMotor_3_pin, L_motor);
 digitalWrite(LeftMotor_4_pin, !L_motor);
 
 analogWrite(RightMotor_E_pin, max(R_MotorSpeed*0.4,90));                                            // 우측 모터 속도값
 analogWrite(LeftMotor_E_pin, 255);                                            // 좌측 모터 속도값
 }
 void Left_role(int R_motor, int L_motor){digitalWrite(RightMotor_1_pin, R_motor);
 digitalWrite(RightMotor_2_pin, !R_motor);
 digitalWrite(LeftMotor_3_pin, L_motor);
 digitalWrite(LeftMotor_4_pin, !L_motor);
 
 analogWrite(RightMotor_E_pin, 255);                        // 우측 모터 속도값
 analogWrite(LeftMotor_E_pin, max(L_MotorSpeed*0.4,90));                               // 좌측 모터 속도값
 }
 void left_rotation(int R_motor, int L_motor){digitalWrite(RightMotor_1_pin, HIGH);
 digitalWrite(RightMotor_2_pin, LOW);
 digitalWrite(LeftMotor_3_pin, LOW);
 digitalWrite(LeftMotor_4_pin, HIGH);
 
 analogWrite(RightMotor_E_pin, R_MotorSpeed);                         // 우측 모터 속도값
 analogWrite(LeftMotor_E_pin, L_MotorSpeed);                               // 좌측 모터 속도값
 }
 void right_rotation(int R_motor, int L_motor){digitalWrite(RightMotor_1_pin, LOW);
 digitalWrite(RightMotor_2_pin, HIGH);
 digitalWrite(LeftMotor_3_pin, HIGH);
 digitalWrite(LeftMotor_4_pin, LOW);
 
 analogWrite(RightMotor_E_pin, R_MotorSpeed);                         // 우측 모터 속도값
 analogWrite(LeftMotor_E_pin, L_MotorSpeed);                               // 좌측 모터 속도값
 }
 연결은 됐는데 작동이 안됩니다. 부탁드립니다ㅜㅜ |