本人是新人小白,学校比赛做的一个监控小车,用的二自由度的云台,需要通过Arduino控制云台的两个舵机还有小车的舵机,小车的舵机(程序里为舵机1)通过程序,蓝牙发送到手机单独可以使用,但是云台上的舵机(舵机2)没有反应,哪位大神可以帮我看一下程序哪里出错了吗?
- #include <SoftwareSerial.h>
- #include <Servo.h>
- Servo myservo1;
- Servo myservo2;
- SoftwareSerial mySerial(10, 11); // RX, TX
- char tmp1;
- int pos1 = 0;
- void setup() {
- pinMode(3, OUTPUT);
- pinMode(4, OUTPUT);
- pinMode(5, OUTPUT);
- myservo1.attach(9);
- delay(50);
- myservo2.attach(7);
- delay(50);
-
-
- myservo1.write(40);
- delay(50);
- myservo2.write(30);
- delay(50);
- digitalWrite(5, LOW);
- digitalWrite(4, LOW);
- mySerial.begin(9600);
- mySerial.println("我是大傻瓜");
-
-
- }
- void loop()
- {
- qianjin( );
- houtui();
- shache();
- songyoumen();
- zuozhuan();
- huizheng();
- youzhuan();
- huizheng2();
- d2();
-
- if (mySerial.available()) {
- tmp1 = mySerial.read();
- }
- }
- void qianjin( ) //前进
- {
- if (tmp1 == 'a')
- {
- tmp1 = 0;
- myservo1.write(43);
- analogWrite(3, 55);//255 85/255*5
- digitalWrite(5, LOW);
- digitalWrite(4, HIGH);
- }
- }
- void houtui() //后退
- {
- if (tmp1 == 'b')
- {
- tmp1 = 0;
- myservo1.write(43);
- analogWrite(3, 55);//255 85/255*5
- digitalWrite(5, HIGH);
- digitalWrite(4, LOW);
- }
- }
- void shache() //刹车
- {
- if (tmp1 == 'c')
- {
- tmp1 = 0;
- analogWrite(3, 0);//255 85/255*5
- }
- }
- void songyoumen() //松油门
- {
- if (tmp1 == 'd')
- {
- tmp1 = 0;
- analogWrite(3, 0);//255 85/255*5
- digitalWrite(5, HIGH);
- digitalWrite(4, HIGH);
- }
- }
- void zuozhuan() //舵机1左转
- {
- if (tmp1 == 'e')
- {
- tmp1 = 0;
- for (pos1 = 45; pos1 <= 75; pos1 += 1)
- {
- myservo1.write(pos1);
- delay(15);
- }
- }
- }
- void huizheng() //舵机1回正
- {
- if (tmp1 == 'f')
- {
- tmp1 = 0;
- for (pos1 = 75; pos1 >= 45; pos1 -= 1)
- {
- myservo1.write(pos1);
- delay(15);
- }
- }
- }
- void youzhuan() //舵机1右转
- {
- if (tmp1 == 'g')
- {
- tmp1 = 0;
- for (pos1 = 45; pos1>=20; pos1 -= 1)
- {
- myservo1.write(pos1);
- delay(15);
- }
- }
- }
- void huizheng2() //舵机1右转的回正
- {
- if (tmp1 == 'h')
- {
- tmp1 = 0;
- for (pos1 =20; pos1 <= 49; pos1 += 1)
- {
- myservo1.write(pos1);
- delay(15);
- }
- }
- }
- void d2() //舵机2号右转
- {
- if (tmp1 == '1')
- {
- tmp1 = 0;
- for (pos1 =20; pos1 <= 49; pos1 += 1)
- {
- myservo2.write(pos1);
- delay(15);
- }
- }
- }
-
复制代码
|