完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 烈焰123 于 2016-3-26 15:50 编辑
我用的是360度舵机(注意不是180度的),想编个程序来控制舵机实现功能如下: 输入一个圈数(程序里赋值),使得单片机能控制舵机转对应的圈数,并且转到对应的圈数后能停住 拜托各位大神给来个程序,C语言的就行, |
|
相关推荐
2个回答
|
|
我现在自己改了一个程序,通过更改t1的数的大小来控制360度舵机旋转圈数,但是我现在有个问题就是,舵机是顺时针转的,怎么让它逆时针转啊。C语言程序如下
#include #define uint unsigned int ***it pwm=P1^0; //***it PIS=P1^1; uint t1=0x200; //7s 顺时针转7s uint PWM_W=0,PWM_T=0,PWM_data[]={13,4}; uint k=0,i=1,h=0 ; /*******************************************/ /* 中断初始化 */ /*******************************************/ void InitTimer() //初值在运行过程中计数器不断加1 ,直到溢出时产生中断,因为这种定时方式 { //(有的方式可以自动重置的),单片机不能重置初值,所以进入中断后必须人工重置初值, TMOD=0X01; //为下一次中断做准备。 //sec=0.00085069 TH0=(65536-78)/256; //TH0=FF; TL0=(65536-78)%256; //TL0=B2; EA=1; //定时78=20ms/255 TR0=0; ET0=1; } //sec=0.00086046 void delay_ms(uint x) //延时函数 { uint K; while(x--)for(K=0;K<125;K++); } /*******************************************/ /* 中断初始化 */ /*******************************************/ void DropLitter() { //if(PIS==0) //检测到按键 舵机开始工作 //{ if(t1>0) // delay_ms(10); { TR0=1; t1--; // {TR0=1; //h=0; } // while(PIS==0); else // } TR0=0; // } // else TR0=0; } void main() { InitTimer(); //主函数里的是初始化的初值,因为有的定时方式,定时器溢出时,单片机没有重装初值的功能。所以定时函数里要重装初值。可以设置不同的值,但定时时间主要是以重装的来计了。 while(1) //while语句的原型是while(表达式)语句,当表达式为非0值时,执行while语句中的嵌套语句。那么while(1)其中1代表一个常量表达式,他永远不会等于0。所以,循环会一直执行下去。除非你设置break等类似的跳出循环语句循环才会中止. //while(i--)其中i是一个变量,因此表达式i--有不同的值,依次递减,i--是先取值后减,--i先加后取值,所以i--的值同未执行该自减运算时的i相等。因此当i为0时,循环会跳出. { DropLitter(); } } void T0_time() interrupt 1//100微秒中断一次 这个是定时中断,在执行主程序时候,当定时到后,就会触发定时中断,执行完返回断点。很多大型程序都是这样编的。 { //sec=0.00096246 TH0=(65536-78)/256; TL0=(65536-78)%256; PWM_W++; //pwm_w=0, PWM_T++; //pwm_t=0 i++; //i=1 //k++; //k=0 if(PWM_T<200) //是否小于20MS //sec=0.00099284 { if(PWM_W pwm=1; } else pwm=0; } if(PWM_T==200) { //delay_ms(2500); PWM_W=0; PWM_T=0; //TR0=0; //h++; } if(i==25000) //延时2.5s后再转个角度 { //i=0; //delay_ms(2500); //PWM_T=0; //PWM_W=0; h=1; //if(h==2)//转向-90度 //h=0; } if(i>=26500) { i=0; TR0=0; h=0; } } //sec=0.00103733 |
|
|
|
谢谢楼主分享。。。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备组织架构
536 浏览 0 评论
531 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备树组成和结构
794 浏览 0 评论
【敏矽微ME32G070开发板免费体验】点亮WS2812B灯板
922 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核启动流程
879 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12160 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 20:31 , Processed in 0.385728 second(s), Total 41, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号