- /*
- 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
- 实验二:输入“1-9”串口命令控制舵机旋转角度
- 使用SG90 9g之180°舵机
- 实验接线:舵机S端接Uno的A0,同时也接入LED作为有控制信号的指示灯
- */
-
- int servopin = A0; //定义舵机接口A0
- int myangle;//定义角度变量
- int pulsewidth;//定义脉宽变量
- int val;
-
- void servopulse(int servopin, int myangle) //定义一个脉冲函数
- {
- pulsewidth = (myangle * 11) + 500; //将角度转化为500-2480的脉宽值
- digitalWrite(servopin, HIGH); //将舵机接口电平至高
- delayMicroseconds(pulsewidth);//延时脉宽值的微秒数
- digitalWrite(servopin, LOW); //将舵机接口电平至低
- delay(20 - pulsewidth / 1000);
- }
-
- void setup()
- {
- pinMode(servopin, OUTPUT); //设定舵机接口为输出接口
- Serial.begin(9600);//连接到串行端口,波特率为9600
- Serial.println("舵机准备就绪,请输入1-9" ) ;
- }
-
- void loop()//将0到9的数转化为0到180角度
- {
- val = Serial.read(); //读取串行端口的值
- if (val > '0' && val <= '9')
- {
- val = val - '0'; //将特征量转化为数值变量
- val = val * (180 / 9); //将数字转化为角度
- Serial.print("舵机旋转度数为: ");
- Serial.print(val, DEC);
- Serial.println();
- for (int i = 0; i <= 50; i++) //给予舵机足够的时间让它转到指定角度
- {
- servopulse(servopin, val); //引用脉冲函数
- }
- }
- }
复制代码
|