Bluetooth-модуль HC-05 мониторинг
- Войдите на сайт для отправки комментариев
Ср, 21/05/2014 - 17:37
Eсть модуль BT HC-05. Возможно мониторить какой код посылается с андройда на ардуино?
char dataIn = 'S'; //Character/Data coming from the phone. int pinForwardBack = 13; //Pin that controls the car's Forward-Back motor. int pinLeftRight = 12; //Pin that controls the car's Left-Right motor. int pinBrakeLeftRight = 9; //Pin that enables/disables Left-Right motor. int pinBrakeForwardBack = 8; //Pin that enables/disables Forward-Back motor. int pinLeftRightSpeed = 3; //Pin that sets the speed for the Left-Right motor. int pinForwardBackSpeed = 11; //Pin that sets the speed for the Forward-Back motor. int pinfrontLights = 4; //Pin that activates the Front lights. int pinbackLights = 7; //Pin that activates the Back lights. int pinextra = 10; //Pin that activates the Front lights. int pinhorn = 5; //Pin that activates the Back lights. char determinant; //Used in the check function, stores the character received from the phone. char det; //Used in the loop function, stores the character received from the phone. int velocity = 0; //Stores the speed based on the character sent by the phone. void setup() { //*************NOTE: If using Bluetooth Mate Silver use 115200 btu // If using MDFLY Bluetooth Module use 9600 btu Serial.begin(38400); //Initialize serial communication with Bluetooth module at 115200 btu. pinMode(pinForwardBack, OUTPUT); pinMode(pinLeftRight, OUTPUT); pinMode(pinBrakeLeftRight, OUTPUT); pinMode(pinBrakeForwardBack, OUTPUT); pinMode(pinLeftRightSpeed , OUTPUT); pinMode(pinForwardBackSpeed , OUTPUT); pinMode(pinfrontLights , OUTPUT); pinMode(pinbackLights , OUTPUT); pinMode(pinhorn , OUTPUT); pinMode(pinextra , OUTPUT); } void loop() { det = check(); while (det == 'F') //if incoming data is a F, move forward { digitalWrite(pinForwardBack, LOW); digitalWrite(pinBrakeForwardBack, LOW); analogWrite(pinForwardBackSpeed,velocity); analogWrite(pinLeftRightSpeed,0); //To make the Left/Right Motor not move, you just need to make its speed 0. det = check(); } while (det == 'B') //if incoming data is a B, move back { digitalWrite(pinForwardBack, HIGH); digitalWrite(pinBrakeForwardBack, LOW); analogWrite(pinForwardBackSpeed,velocity); analogWrite(pinLeftRightSpeed,0); det = check(); } while (det == 'L') //if incoming data is a L, move wheels left { digitalWrite(pinLeftRight, HIGH); digitalWrite(pinBrakeLeftRight, LOW); digitalWrite(pinForwardBack, LOW); analogWrite(pinForwardBackSpeed,0); //To make the Forward/Back Motor not move, you just need to make its speed 0. analogWrite(pinLeftRightSpeed,255); det = check(); } while (det == 'R') //if incoming data is a R, move wheels right { digitalWrite(pinLeftRight, LOW); digitalWrite(pinBrakeLeftRight, LOW); digitalWrite(pinForwardBack, LOW); analogWrite(pinForwardBackSpeed,0); analogWrite(pinLeftRightSpeed,255); det = check(); } while (det == 'I') //if incoming data is a I, turn right forward { digitalWrite(pinLeftRight, LOW); digitalWrite(pinForwardBack, LOW); digitalWrite(pinBrakeLeftRight, LOW); digitalWrite(pinBrakeForwardBack, LOW); analogWrite(pinForwardBackSpeed,velocity); analogWrite(pinLeftRightSpeed,255); det = check(); } while (det == 'J') //if incoming data is a J, turn right back { digitalWrite(pinLeftRight, LOW); digitalWrite(pinForwardBack, HIGH); digitalWrite(pinBrakeLeftRight, LOW); digitalWrite(pinBrakeForwardBack, LOW); analogWrite(pinForwardBackSpeed,velocity); analogWrite(pinLeftRightSpeed,255); det = check(); } while (det == 'G') //if incoming data is a G, turn left forward { digitalWrite(pinLeftRight, HIGH); digitalWrite(pinForwardBack, LOW); digitalWrite(pinBrakeLeftRight, LOW); digitalWrite(pinBrakeForwardBack, LOW); analogWrite(pinForwardBackSpeed,velocity); analogWrite(pinLeftRightSpeed,255); det = check(); } while (det == 'H') //if incoming data is a H, turn left back { digitalWrite(pinLeftRight, HIGH); digitalWrite(pinForwardBack, HIGH); digitalWrite(pinBrakeLeftRight, LOW); digitalWrite(pinBrakeForwardBack, LOW); analogWrite(pinForwardBackSpeed,velocity); analogWrite(pinLeftRightSpeed,255); det = check(); } while (det == 'S') //if incoming data is a S, stop { digitalWrite(pinForwardBack, LOW); digitalWrite(pinLeftRight, LOW); analogWrite(pinForwardBackSpeed,0); analogWrite(pinLeftRightSpeed,0); det = check(); } while (det == 'X') //if incoming data is a U, turn ON front lights { digitalWrite(pinextra, HIGH); det = check(); } while (det == 'x') //if incoming data is a u, turn OFF front lights { digitalWrite(pinextra, LOW); det = check(); } while (det == 'U') //if incoming data is a U, turn ON front lights { digitalWrite(pinfrontLights, HIGH); det = check(); } while (det == 'u') //if incoming data is a u, turn OFF front lights { digitalWrite(pinfrontLights, LOW); det = check(); } while (det == 'V') //if incoming data is a U, turn ON front lights { digitalWrite(pinhorn, HIGH); det = check(); } while (det == 'v') //if incoming data is a u, turn OFF front lights { digitalWrite(pinhorn, LOW); det = check(); } while (det == 'W') //if incoming data is a W, turn ON back lights { digitalWrite(pinbackLights, HIGH); det = check(); } while (det == 'w') //if incoming data is a w, turn OFF back lights { digitalWrite(pinbackLights, LOW); det = check(); } } int check() { if (Serial.available() > 0) //Check for data on the serial lines. { dataIn = Serial.read(); //Get the character sent by the phone and store it in 'dataIn'. if (dataIn == 'F') { determinant = 'F'; } else if (dataIn == 'B') { determinant = 'B'; } else if (dataIn == 'L') { determinant = 'L'; } else if (dataIn == 'R') { determinant = 'R'; } else if (dataIn == 'I') { determinant = 'I'; } else if (dataIn == 'J') { determinant = 'J'; } else if (dataIn == 'G') { determinant = 'G'; } else if (dataIn == 'H') { determinant = 'H'; } else if (dataIn == 'S') { determinant = 'S'; } else if (dataIn == '0') { velocity = 0; //"velocity" does not need to be returned. } else if (dataIn == '1') { velocity = 25; } else if (dataIn == '2') { velocity = 50; } else if (dataIn == '3') { velocity = 75; } else if (dataIn == '4') { velocity = 100; } else if (dataIn == '5') { velocity = 125; } else if (dataIn == '6') { velocity = 150; } else if (dataIn == '7') { velocity = 175; } else if (dataIn == '8') { velocity = 200; } else if (dataIn == '9') { velocity = 225; } else if (dataIn == 'q') { velocity = 255; } else if (dataIn == 'U') { determinant = 'U'; } else if (dataIn == 'u') { determinant = 'u'; } else if (dataIn == 'W') { determinant = 'W'; } else if (dataIn == 'w') { determinant = 'w'; } else if (dataIn == 'V') { determinant = 'V'; } else if (dataIn == 'v') { determinant = 'v'; } else if (dataIn == 'X') { determinant = 'X'; } else if (dataIn == 'x') { determinant = 'x'; } } return determinant; }