1. #define speeds 150 //宏定义speeds
    2. //--------------------------------电机部分------------------------------//
    3. //32左前,45右前,67左后,89右后
    4. void _M_Init() { //电机初始化
    5. for (int i = 2; i <= 9; i++)
    6. {
    7. pinMode(i, OUTPUT);
    8. analogWrite(i, 0);
    9. }
    10. }
    11. void _M_Front(int pin1, int pin2, int _speed) {
    12. analogWrite(pin1, _speed);
    13. analogWrite(pin2, 0);
    14. }
    15. void _M_Back(int pin1, int pin2, int _speed) {
    16. analogWrite(pin2, _speed);
    17. analogWrite(pin1, 0);
    18. }
    19. void _M_Stop(int pin1,int pin2) {
    20. analogWrite(pin1,255);
    21. analogWrite(pin2,255);
    22. }
    23. //-----------------------------前进---------电机全部正转-----------------------//
    24. //左前76,右前45,左后89,右后23
    25. void _M_GoFront(int _speed) {
    26. //右后23,
    27. //直行时四个轮子全部正转
    28. _M_Front(7, 6, _speed + 0);//左前
    29. _M_Front(8, 9, _speed + 0);//左后
    30. static int i=0;
    31. if(i=0)
    32. {i++;
    33. delay(375);
    34. }
    35. _M_Front(4, 5, _speed + 10);//右前
    36. _M_Front(2, 3, _speed + 0);//右后
    37. }
    38. //-----------------------------后退---------电机全部反转------------------------//
    39. void _M_GoBack(int _speed) {
    40. _M_Back(7, 6, _speed + 0);
    41. _M_Back(4, 5, _speed + 0);
    42. _M_Back(8, 9, _speed + 0);
    43. _M_Back(2, 3, _speed + 0);
    44. }
    45. //--------------------------------------左横行-------------------------------//
    46. void _M_GoLeft(int _speed){
    47. _M_Back(7, 6, _speed +0 );
    48. _M_Front(4, 5,_speed +0);
    49. _M_Front(8, 9,_speed +0);
    50. _M_Back(2, 3,_speed +0);
    51. }
    52. //--------------------------------------右横行-------------------------------//
    53. void _M_GoRight(int _speed){
    54. _M_Front(7, 6, _speed +0);
    55. _M_Back(4, 5, _speed +0);
    56. _M_Back(8, 9, _speed +0);
    57. _M_Front(2, 3, _speed +0);
    58. }
    59. //--------------------------------------右前走------------------------------//
    60. void _MGo_youqian(int _speed){
    61. _M_Front(7, 6, _speed +0);
    62. _M_Stop(4,5);
    63. _M_Front(8, 9, _speed +0);
    64. _M_Stop(2,3);
    65. }
    66. //---------------------------------------左前走-----------------------------//
    67. void _MGo_zuoqian(int _speed){
    68. _M_Stop(7,6);
    69. _M_Front(4, 5, _speed +0);
    70. _M_Stop(8,9);
    71. _M_Front(2, 3, _speed +0);
    72. }
    73. //---------------------------------------左后走----------------------------//
    74. void _MGo_zuohou(int _speed){
    75. _M_Back(7, 6, _speed +0);
    76. _M_Stop(4,5);
    77. _M_Back(8, 9, 255);
    78. _M_Stop(2,3);
    79. }
    80. //--------------------------------------右后走----------------------------//
    81. void _MGo_youhou(int _speed){
    82. _M_Stop(7,6);
    83. _M_Back(4, 5,_speed +0 );
    84. _M_Back(8, 9,_speed +0);
    85. _M_Stop(2,3);
    86. }
    87. void setup() {
    88. _M_Init() ;
    89. }
    90. void loop() {
    91. _M_GoFront(speeds);
    92. }