111252 发表于 2018-9-16 22:20 上拉电阻 |
谢谢大家了,学到了跟多![]() |
| 强烈建议你先查接线方式,算一下你的时钟,再看看你的delays函数看看输出频率对不对,最好找个示波器看一下!!! |
111252 发表于 2018-9-17 21:15 我是说,那个IO口的电流可能驱动不了驱动器的信号开关(光藕)。 并不是说驱动器输出的电流不够。 |
111252 发表于 2018-9-18 09:05 搜索了一下该驱动器的手册,PUL+与PUL-(包括EN+ EN- DIR+ DIR-)之间是一个光耦串一个200多欧的电阻,直接用上拉开漏的IO口驱动肯定不行,应该用IO口驱动三极管扩流,你参考下该驱动的手册,里面描述的很详细. |
cjm82 发表于 2018-9-17 22:15 这个是共阴接法,我在网上查的是共阳会接一个5v电源,这个单片机p0口有外部上拉电阻,可以直接用,还有那个驱动器电源和单片机电源为什么要共地呢,昨天实验的时候用的是中断,但是还不转 |
|
驱动器两个EN都悬空了吗?虽然没用过这款驱动器,但两个EN都悬空感觉不对,画的草图驱动器脉冲输入引脚好像是共阴接法,没有5V输入,如果是光耦隔离,开漏的P0口上拉电流肯定不能驱动一个光耦,还有你驱动器电源跟单片机电源是否共地? 另外程序里只有FX = 1,SN = 1没看到置0. FX SN当然只能是1 用的是什么型号的51,如果是老型号的,P0只能开漏并且没有内部上拉,需要外接上拉电阻 新型号的,IO模式有没有设置成浮空? 还有DELAY函数里面就1个变量自减,时间较短,会不会频率过高? 类似功能建议使用中断,像DELAY函数在学习的时候可以用用,真正的项目尽量不要用. |
|
看你代码,里面只有MC会高低切换,FX、SN置位代码虽然也在循环里,但是始终只会是高。 步进电机一般都是两组脉冲控制的,根据脉冲数来决定转过的角度,根据两组脉冲的相位来决定转的方向。 你这个还需要提供更详细的资料大家才能帮你。比如电机的相关资料、接线图等等。 |
111252 发表于 2018-9-16 22:20 IO口默认情况下,输出的电流都很小(弱上拉),可能不足以推动步进电机驱动器。 所以要增加输出电流: 1, 可以外接一个上拉电阻,具体值要根据实际算出,要更大的电流,可以加管子。 2,你用的单片机是STC的吧,它的IO口可以配置成强上拉(推挽输出), 开启后,输出电流相对(弱上拉)比较大,可能要根据实际情况串联一个限流电阻。 |
| 检测一下单片机是否正常可用;各个IO口及接线端是否都接正确且牢固了。 |
| 仔细检查检查,io口和接线端是否都接正确且牢固了,上拉电阻很重要,注意哦!还有单片机是否已损坏或插反了,建议你编个小灯的程序,检测一下。 |
diy1997 发表于 2018-9-16 19:40 开启强上拉是什么意思啊,还有为什么要串个电阻呢 求解。 |
| 进入调试模式,看看单片机发的信号对不对。用示波器看下波形 |
|
不知道你的线路接得对不对。 如果你是由IO口直接输出控制信号,那可能要开启强上拉,最好串个1K左右的电阻。 |