我想问一下,如何给舵机单独供电。我是这么认为的,单片机只能提供3.3和5v的电压,要提供更高的电压

我想问一下,如何给舵机单独供电。我是这么认为的,单片机只能提供3.3和5v的电压,要提供更高的电压,第1张

舵机单独供电,不但能提高电压,增大电流,以提供大的驱动功率,而且能改善单片机体统供电质量,提高抗干扰能力,是一比较优化的供电方案。
要提供更高的电压给舵机单独供电,要把舵机的vcc端用线引出来,接到电源上,同时将两电源的地线连接到一起。需要注意的是,单独供电的电源电压要保证舵机电路安全,单片机驱动部分,如果需要还要进行电平转换。

以后程序记得写清楚点,规范化一点,还有,需要有必要的注释好不好,不然人家怎么知道你的d1是干嘛的?
这里我当做是你的笔误吧

// duoji1();


前面的“//”应该没有的吧
你的意思应该是:
不断执行duoji1();
同时不断检测按键之类的。
你想想,你进入了duoji1();
当你按下d1后,它怎么能停下来呢,因为d1放在了duoji1();的后面
而且你想要实现及时反应的话,你的算法本身就有问题。
想过另外一个算法吧。
要不就把问题补充详细点,我帮你想一个。
对了我这里有个自己以前做巡线小车的程序,拿去看看吧
#include<reg52h> //头文件
#define uchar unsigned char //宏定义
#define uint unsigned int
sbit infl1=P3^4; //inf代表红外对管,1为外,2为内。
sbit infl2=P3^5;
sbit infr2=P3^6;
sbit infr1=P3^7;
sbit pwm=P1^0; //信号线
uchar jd,count;
void time_init() //中断初始化
{
TMOD=0x01;
TH0=0xff; //高电平单位脉冲时间定为方式1,晶振频率为110592,01ms
TL0=0xa3;
IE=0x82;
TR0=1;
}
void time_ini()interrupt 1 //中断函数
{
TH0=0xff; //重新赋新值
TL0=0xa3;
if(count<jd)
pwm=1;
else pwm=0;
count++;
count=count%200; //脉冲周期20ms
}
void keyscan() //按键扫描
{
if(infr1==0)
{
jd=11;
count=0;
while(infr1==0);
}
if(infr2==0)
{
jd=13;
count=0;
while(infr2==0);
}
if(infl1==0)
{
jd=19;
count=0;
while(infl1==0);
}
if(infl2==0)
{
jd=17;
count=0;
while(infl2==0);
}
}
void main()
{
jd=15; //舵机初始角度为90度,自己定义为0度
count=0;
time_init();
while(1)
{
keyscan();
}
}

nano扩展板能接8个舵机。使用一个TLC5940芯片即可。可以产生16路高速PWM,4096级,控制舵机非常有效。有arduino库文件,支持多片级联。最多可控制1000多个9g舵机组成阵列墙。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/10328148.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存