完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
不连接直流电机,舵机可以正常工作。只要连接舵机就不能正常工作。(是电压不够吗?)#include
typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; ***it IRIN=P3^2; u8 IrValue[6]; u8 time,s1,s2,aa,bb,cc,dd,v,z=1; u16 aaa,bbb; void delay(u16 i) { while(i--); } void IrInit() { IT0=1;//下降沿触发 EX0=1;//打开中断0允许 EA=1; //打开总中断 IRIN=1;//初始化端口 } void ReadIr() interrupt 0 { u8 j,k; u16 err; Time=0; delay(700); //7ms if(IRIN==0) //确认是否真的接收到正确的信号 { err=1000; //1000*10us=10ms,超过说明接收到错误的信号 /*当两个条件都为真是循环,如果有一个条件为假的时候跳出循环,免得程序出错的时 侯,程序死在这里*/ while((IRIN==0)&&(err>0)) //等待前面9ms的低电平过去 { delay(1); err--; } if(IRIN==1) //如果正确等到9ms低电平 { err=500; while((IRIN==1)&&(err>0)) //等待4.5ms的起始高电平过去 { delay(1); err--; } for(k=0;k<4;k++) //共有4组数据 { for(j=0;j<8;j++) //接收一组数据 { err=60; while((IRIN==0)&&(err>0))//等待信号前面的560us低电平过去 { delay(1); err--; } err=500; while((IRIN==1)&&(err>0)) //计算高电平的时间长度。 { delay(10); //0.1ms Time++; err--; if(Time>30) { return; } } IrValue[k]>>=1; //k表示第几组数据 if(Time>=8) //如果高电平出现大于565us,那么是1 { IrValue[k]|=0x80; } Time=0; //用完时间要重新赋值 } } } if(IrValue[2]!=~IrValue[3]) { return; } } } void dinit() { TMOD=0x11; EA=1; ET0=1; ET1=1; TL0 = 0x30; TH0 = 0xfe; TL1 = 0x87; TH1 = 0xD6; TR1=1; TR0=1; dd=0; cc=0; aa=3; bb=0; PT0=1; v=10; } void qwer()interrupt 1 { TR0=0; TL0 = 0x00; TH0 = 0xfe; if(bb P0_1=1; else P0_1=0; bb++; bb=bb%40; if(s1==1) { aaa++; if(aaa==1000) {aa=3; s1=0; aaa=0;} } TR0=1; } void ert()interrupt 3 { TR1=0; TL1 = 0x87; TH1 = 0xD6; if(dd P1_0=1; else P1_0=0 ; dd++; dd=dd%40; if(s2==1) { bbb++; if(bbb==50) {s2=0;cc=0;bbb=0;} } TR1=1; } void main() { dinit(); IrInit(); P1_0=0; while(1) { if(IrValue[2]==0x08) {s1=1; aa=2; IrValue[2]=0; } if(IrValue[2]==0x5a) {s1=1; aa=4; IrValue[2]=0; } if(IrValue[2]==0x18) { cc=v; s2=1; IrValue[2]=0; } if(IrValue[2]==0x1c) { v=v+10; if(v>40) v=v-40; IrValue[2]=0; } } } |
|
相关推荐
3个回答
|
|
电压不够是一个可能,另外舵机需要持续稳定的PWM进行控制,如果使用定时器之类的模拟PWM进行控制,当模拟的PWM被打断时,舵机就会动作错误,所以舵机最好用硬件PWM进行控制
最佳答案
|
|
2 条评论
|
|
上原理图
|
|
|
|
最好查看一下控制舵机的PWM输出是否正常,然后在做判断
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
158 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
237 浏览 0 评论
655 浏览 1 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
563 浏览 0 评论
862 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12033 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 15:59 , Processed in 0.648228 second(s), Total 86, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号