今天早上在做小实验中,偶然发现Arduino的所有20个输入输出端口都能控制舵机(实验中使用SG90 9g之180°舵机),原来的观念是只有带~ 符号的PWM引脚能够控制舵机,而在实际测试中,发现数字端D0-D13,模拟端A0-A5均可以正常使用舵机。也就是说,Arduino有可能直接控制20路舵机。
实验场景图
/* 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验一:不用舵机库,驱动舵机旋转到不同角度 使用SG90 9g之180°舵机 实验接线:舵机S端接Uno的D8,同时也接入LED作为有控制信号的指示灯 注意:上传时尽量不要接入舵机,防止烧毁USB接口*/ int servopin = 8; //定义舵机接口数字接口8 也就是舵机的橙色信号线。 void servopulse(int angle)//定义一个脉冲函数{ int pulsewidth = (angle * 11) + 500; //将角度转化为500-2480的脉宽值 digitalWrite(servopin, HIGH); //将舵机接口电平至高 delayMicroseconds(pulsewidth); //延时脉宽值的微秒数 digitalWrite(servopin, LOW); //将舵机接口电平至低 delayMicroseconds(20000 - pulsewidth);} void setup(){ pinMode(servopin, OUTPUT); //设定舵机接口为输出接口} void loop(){ //把值的范围映射到0到165左右 for ( int angle = 0; angle < 165; angle += 10) { for (int i = 0; i < 50; i++) //发送50个脉冲 { servopulse(angle); //引用脉冲函数 } delay(1000); }}
使用D0端的实验视频(15秒)
https://v.youku.com/v_show/id_XNTExMDgxOTExMg==.html?spm=a2hzp.8244740.0.0
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验一:不用舵机库,驱动舵机旋转到不同角度(使用D0端口)
使用A5端的实验视频(15秒)
https://v.youku.com/v_show/id_XNTExMDgxODE4NA==.html?spm=a2hzp.8244740.0.0
实验动态图
动图 https://mc.dfrobot.com.cn/data/attachment/forum/202102/26/080659gijj9srpnr53nsp6.gif