Arduino Bluetooth RC Car. , , ( ). Continuous Stream (F, B, L, R) 50 , . switch, :
switch (command) { // case 'F': // analogWrite(In1, speed); analogWrite(In2, 0); analogWrite(In3, speed); analogWrite(In4, 0); break; case 'B': // analogWrite(In1, 0); analogWrite(In2, speed); analogWrite(In3, 0); analogWrite(In4, speed); break; case 'L': // analogWrite(In1, speed); analogWrite(In2, 0); analogWrite(In3, 0); analogWrite(In4, speed); break; case 'R': // analogWrite(In1, 0); analogWrite(In2, speed); analogWrite(In3, speed); analogWrite(In4, 0); break; case 'S': // analogWrite(In1, 0); analogWrite(In2, 0); analogWrite(In3, 0); analogWrite(In4, 0); break; case 'U': // speed = speed + 10; break; case 'u': // speed = speed + 10; break; case 'W': // speed = speed - 10; break; case 'w': // speed = speed - 10; break; default: // - - analogWrite(In1, 0); analogWrite(In2, 0); analogWrite(In3, 0); analogWrite(In4, 0); break; } |
, , - (, , , ) . , .
, loop, , , forward(). , , , analogWrite(In1, 0). , Arduino IDE. .
int, float .., (, float arcsin(x)). , , , void ()
:
void forward () { // , ( ), () , , analogWrite(In1, speed); analogWrite(In2, 0); analogWrite(In3, speed); analogWrite(In4, 0); } |
|
|
switch . switch :
switch (command) { // case 'F': // forward(); break; case 'B': // backrward(); break; case 'L': // left(); break; case 'R': // right(); break; case 'S': // stop_motors(); break; case 'U': // speed = speed + 10; break; case 'u': // speed = speed + 10; break; case 'W': // speed = speed - 10; break; case 'w': // speed = speed - 10; break; default: // - - stop_motors(); break; } |
, - , switch , . switch,
1: Arduino Bluetooth RC Car , . -
2.
, . , . , . , :
float k_speed_right = 1; // , ( ) float k_speed_left = 1; // , ( = 1, 1) void forward () { float speed_left = k_speed_left * speed; float speed_right = k_speed_right * speed; analogWrite(In1, 0); analogWrite(In2, speed_left); analogWrite(In3, 0); analogWrite(In4, speed_right); } |
(backward, left, right). , (, k_speed_right = 1, k_speed_left = 0,95) , . ,
-, .. .
. : forward (200), , , . :
void forward (int time) { // ( ), (200 ). ( ) float speed_left = k_speed_left * speed; float speed_right = k_speed_right * speed; analogWrite(In1, 0); analogWrite(In2, speed_left); analogWrite(In3, 0); analogWrite(In4, speed_right); delay (time); stop_motors (); } |
(backward, left, right) . - (, , , , , ..), loop . ( ): , , , - .
|
|