牧夫天文网

QQ登录

只需一步,快速开始

发新帖

0

收听

26

听众

51

主题
发表于 2015-3-19 11:43 | 查看: 8301| 回复: 35来自: 江苏省南京市 联通
本帖最后由 yuersthe1 于 2015-3-19 19:52 编辑

如题,实现的功能为:开机时以地球旋转速率追星,当按下P3.2管脚的按键时,P0.4的脉冲速率加快,P0.5电平拉低,赤道仪快速反转。本实例配合42步进电机,100:1减速箱和128细分驱动来用,若细分数和减速比不同,请各位大神们自行修改参数。。。继续附上本人使用的单片机:http://item.taobao.com/item.htm? ... 0801&_u=i3knvfu353f
本人使用的128驱动:http://item.taobao.com/item.htm? ... &abbucket=13#detail
以及本人使用的减速箱:http://item.taobao.com/item.htm? ... &abbucket=13#detail
还有protel连线图:
Snap1.jpg
代码如下:
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int
#define FOSC  12000000L
#define TSTEP0  (65536-FOSC*16875/12000000)//16875*1us计时

sbit KEY0=P3^2;//反向加速按键
//sbit KEY2=P3^3;
sbit POUT=P0^4;
sbit POUT1=P0^5;
uchar Count0 = 0;
uint s;
uint s1;
//uchar Count1 = 0;

void delay500ms(void)
{
    uchar i,j,k;
    for(i=15;i>0;i--)
      for(j=202;j>0;j--)
         for(k=81;k>0;k--);
}

void delay1(uint del1)//延时del1X0.1ms 函数
{
    uint i,j;
    for(i=0;i<del1;i++)
        {
            for(j=0;j<10;j++);
        }
}

/*void Time0_Init()
{
        TMOD = 0x01;          //定时器0选用方式1
        TH0  = TSTEP0;          //初值的计算
        TL0  = TSTEP0>>8;        
        TR0  = 1;                  //启动定时器
        ET0  = 1;                  //打开定时器中断允许位
}

void Time0_Int() interrupt 1
{
        TH0 = TSTEP0;
        TL0 = TSTEP0>>8;
        Count0++;                        //长度加1
}*/

void Time1_Init()
{
//        TMOD = 0x10;          //定时器1选用方式1
        TH1  = TSTEP0;          //初值的计算
        TL1  = TSTEP0>>8;        
        TR1  = 1;                  //启动定时器
        ET1  = 1;                  //打开定时器中断允许位
}

void Time1_Int() interrupt 3
{
        TH1 = TSTEP0;
        TL1 = TSTEP0>>8;
        Count0++;                        //长度加1
}

void Outside_Init0(void)
{
        IT0 = 0;  //低电平触发
        EX0 = 1;  //外部中断0允许
//        IT1 = 0;  //低电平触发
//        EX1 = 1;  //外部中断1允许
}

void Outside_Int0(void) interrupt 0           //高速反转中断函数
{
    delay500ms();//延时500ms给步进电机反向旋转缓冲
        POUT1=0;//反向
        s=250;
        s1=1;//改s1可以修改反转速率
    while(1)
    {
            if(KEY0==0&&25000/s>s1)
        {                          
                    delay1(25000/s);//缓慢加速至高速
                        s++;
                    POUT=!POUT;
                }
                else if        (KEY0==0&&(25000/s<=s1))
                {
                    delay1(s1);
                    POUT=!POUT;
                }
                else
                {
                        delay500ms();
                        POUT1=1;
                        return;
                }
    }                               
}

void Main(void)
{
    Time1_Init();
        Outside_Init0();
        EA = 1;                //打开总中断
        POUT1=1;//正向
        while(1)
    {
        if(Count0==10)
        {
            Count0=0;
                        POUT=!POUT;
        }
    }
}




已有 2 人评分牧夫币 理由
沸腾的冰川 + 10 很给力!
有内涵的豆沙包 + 5 很给力!

总评分: 牧夫币 + 15   查看全部评分

发表于 2015-8-22 09:51 来自: 浙江省嘉兴市海宁市 电信
楼主,你的单片机链接挂了,更新下呗,想模仿做一个

回复 显示全部楼层 道具 举报

发表于 2015-8-20 09:39 来自: 北京市 中石化石油化工科学研究院
强贴,强赞,学习了,谢谢细致的分享。玩天文会附带学习电子编程机械呀。我编程太弱了,还是多花点钱用arduino吧。

回复 显示全部楼层 道具 举报

发表于 2015-3-26 06:58 来自: 英国
感谢楼主分享!学习了!

回复 显示全部楼层 道具 举报

发表于 2015-3-24 19:58 来自: 广东省深圳市 电信
目测楼主是技术宅啊

回复 显示全部楼层 道具 举报

发表于 2015-3-22 18:08 来自: 浙江省杭州市 电信
码一个

回复 显示全部楼层 道具 举报

v2500 该用户已被删除
发表于 2015-3-22 14:19 来自: 广东省深圳市 天威视讯
提示: 作者被禁止或删除 内容自动屏蔽

回复 显示全部楼层 道具 举报

发表于 2015-3-21 19:46 来自: 广东省肇庆市 电信
yuersthe1 发表于 2015-3-20 18:19
0.9的电机哪里有卖?

淘宝虽然不多,但还是有的。0.45的就搜不到了

回复 显示全部楼层 道具 举报

发表于 2015-3-21 14:55 来自: 江苏省南京市 联通
v2500 发表于 2015-3-20 23:55
你的谐波器买的有些贵

仅100的减速比,星野仪运转起来,有无抖动?

还有128细分驱动,跑起来一点也不抖。

点评 回复 显示全部楼层 道具 举报

v2500 发表于 2015-3-22 14:19 详情  回复
细分太大的话,电机力矩会降低的,有没有加载试过?
v2500 该用户已被删除
发表于 2015-3-20 23:55 来自: 广东省深圳市 天威视讯
提示: 作者被禁止或删除 内容自动屏蔽

点评 回复 显示全部楼层 道具 举报

yuersthe1 发表于 2015-3-21 14:55 详情  回复
还有128细分驱动,跑起来一点也不抖。
发表于 2015-3-20 18:19 来自: 江苏省南京市 联通
xiaoguilink 发表于 2015-3-20 16:24
0.9°步进角搭配64细分会不会好一点

0.9的电机哪里有卖?

点评 回复 显示全部楼层 道具 举报

xiaoguilink 发表于 2015-3-21 19:46 详情  回复
淘宝虽然不多,但还是有的。0.45的就搜不到了
发表于 2015-3-20 16:24 来自: 广东省广州市 电信
0.9°步进角搭配64细分会不会好一点

点评 回复 显示全部楼层 道具 举报

yuersthe1 发表于 2015-3-20 18:19 详情  回复
0.9的电机哪里有卖?
发表于 2015-3-19 21:18 来自: 河北省秦皇岛市 联通
yuersthe1 发表于 2015-3-19 19:50
没有锯掉啊,在铝板中间开了个和中轴一样大的孔让它穿过去

哦,这样,我还是找人加工套件好了

回复 显示全部楼层 道具 举报

发表于 2015-3-19 20:00 来自: 江苏省南京市 联通
马铃鼠 发表于 2015-3-19 17:36
谐波减速可以用,但是在星野赤道仪这里就有点大材小用,毕竟不是goto,不用考虑回差的问题,就算是谐波减 ...

看起来蛮不错!

回复 显示全部楼层 道具 举报

发表于 2015-3-19 19:53 来自: 江苏省南京市 联通

是在keil下写的

回复 显示全部楼层 道具 举报

发表于 2015-3-19 19:50 来自: 江苏省南京市 联通
马铃鼠 发表于 2015-3-19 17:22
锯掉了?好锯吗,看着材料挺硬的。。。

没有锯掉啊,在铝板中间开了个和中轴一样大的孔让它穿过去

点评 回复 显示全部楼层 道具 举报

马铃鼠 发表于 2015-3-19 21:18 详情  回复
哦,这样,我还是找人加工套件好了
发表于 2015-3-19 18:26 来自: 湖北省武汉市 联通
真不错,收藏了!谢谢!

回复 显示全部楼层 道具 举报

发表于 2015-3-19 17:46 来自: 广东省珠海市 联通
马铃鼠 发表于 2015-3-19 17:36
谐波减速可以用,但是在星野赤道仪这里就有点大材小用,毕竟不是goto,不用考虑回差的问题,就算是谐波减 ...


这个好,有空了试试。

回复 显示全部楼层 道具 举报

发表于 2015-3-19 17:36 来自: 河北省秦皇岛市 联通
火星蒙面侠 发表于 2015-3-19 14:49
一般都是100减速比的谐波减速,加上128细分的驱动器,加上最小单片机系统,加上材料,至少300以上。我曾 ...

谐波减速可以用,但是在星野赤道仪这里就有点大材小用,毕竟不是goto,不用考虑回差的问题,就算是谐波减速,也不可能没有空程,只是比较小罢了,更何况是这种二手的。减速步进电机很多人不喜欢估计是考虑到了齿轮箱的空程问题,我也挺忌讳,加上速度太慢,所以在goto系统中不用。星野赤道仪中精度最好的据说是剪刀脚,其实原因很简单,一般用蜗轮减速的,都有周期误差,这是蜗轮的加工精度决定的,也是几乎不可避免的。细分模块可以软件操作这点在goto中特别重要,程序可以随时设置细分达到变速,这是齿轮减速箱不具备的优点,所以,用在星野赤道仪这里感觉也是有点大材小用了。
我感觉性价比最高的,业余条件也最容易加工的,就是类似剪刀脚(门板)结构的赤道仪,毕竟星野拍摄时间不会太长,那个螺纹行程足够了,软件配合操作,达到行程让电机回转很容易实现。
北京天文同好会有一篇文章专门介绍了改良版的“剪刀脚”,可以减小剪刀脚为了精度而增大的臂长,可以找来看下,感觉做星野非常合适,而且投入应该非常小。如果为了提高精度,可以采用廉价的16细分模块,某宝5块钱搞定。。。
cmpctm1.gif

点评 回复 显示全部楼层 道具 举报

yuersthe1 发表于 2015-3-19 20:00 详情  回复
看起来蛮不错!
火星蒙面侠 发表于 2015-3-19 17:46 详情  回复
这个好,有空了试试。
发表于 2015-3-19 17:22 来自: 河北省秦皇岛市 联通
yuersthe1 发表于 2015-3-19 15:13
我用铝板做了一个平衡套件安在谐波减速箱法兰盘上面,那根中轴都不用锯掉了,嘿嘿
...

锯掉了?好锯吗,看着材料挺硬的。。。

点评 回复 显示全部楼层 道具 举报

yuersthe1 发表于 2015-3-19 19:50 详情  回复
没有锯掉啊,在铝板中间开了个和中轴一样大的孔让它穿过去

APP下載|爱牧夫天文淘宝店|牧夫天文网 ( 公安备案号21021102000967 )|网站地图|辽ICP备19018387号

GMT+8, 2024-9-22 16:44 , Processed in 0.033396 second(s), 22 queries , Gzip On, Redis On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表