先上程序……
#include <Servo.h>
Servo servo1;
Servo servo2;
int a,b;
int m,n;
int pos1 = 90;
int pos2 = 90;
void setup() {
// put your setup code here, to run once:
servo1.attach(3);
servo2.attach(4);
Serial.begin(9600); //波特率为9600bps
servo1.write(pos1);
servo2.write(pos2);
}
void loop() {
// put your main code here, to run repeatedly:
a = analogRead(2); //521
b = analogRead(5); //503
digitalWrite(13,LOW);
m = compute(a);
n = compute(b);
pos1 = pos1 + m;
pos2 = pos2 + n;
if(pos1 >= 180)
{
pos1 = 180;
}
if(pos1 < 0)
{
pos1 = 0;
}
if(pos2 >= 180)
{
pos2 = 180;
}
if(pos2 < 0)
{
pos2 = 0;
}
servo1.write(pos1);
servo2.write(pos2);
Serial.print(a);
Serial.print(" , ");
Serial.println(b);
delay(1000);
}
int compute( int input)
{
int k;
if(input > 600)
{
k = ( input - 500 )/100;
}
if(input < 400)
{
k =( input - 500 )/100;
}
else
{
k = 0;
}
return k;
}
下面的子函数输出值只有负值是怎么回事呀,数据类型错了吗? |