打印
[STM32]

单片机实现室外BPC电波码转发到室内给电波表对时

[复制链接]
4738|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 haroldharold 于 2015-5-16 08:40 编辑

最近买了个电波表,型号西铁城AT8020-54L,本来开开心心的,以为永远不用对时也不会有误差了。用了几天后发现不对,每天睡觉时都无法自动对时,对时需要到窗户边手动对时,这个就不爽了,对强迫症的我来说是不可以接受的。不过再想,既然窗台上有信号,为什么不引进室内呢?淘宝买了电波接收模块,玩了几天,已经把电波接收下来,并用51单片机解析出来,但是没用啊,我的表收不到信号。没事,自有办法。单片机可以发出方波型号,可以把接收的电平信号重新以方波信号发出来。刚开始用51单片机尝试发出方波,不过51的频率太低,无法精确发出68.5K的方波,不是大了就是小了,后来选了STM32单片机,终于可以了,室外电波模块电平为低的时候不发方波,电平为高的时候发送方波,方波信号68.49KHz,误差0.01KHz。电波表放在单片机附近,几分钟后自动对时就成功了,以前在室内是绝对无法对时成功的。

68.5KHz高精度方波


需要对时的西铁城AT8020-54L光动能电波表

室内接收单片机电波的测试模块,测试单片机发出的频率是否正确。

主要代码如下
    while (1)
    {
        gpio_b_data = GPIO_ReadInputData(GPIOB);//输入电波电平信号,室外模块输入到单片机

        if((gpio_b_data&0x0001) == 0)//如果是低电平,发出68.5K方波
        {
            gpio_a_data++;
            GPIO_Write(GPIOA , gpio_a_data);//68.5K方波
            for(i = 0; i < 50; i++)//精确延时,使用keil C优化级别需要调到0,否则无法精确到68.5KHz
            {
                j++;
                j++;
            }
                j++;
                j++;
                j++;
                j++;
                j++;
                j++;
                j++;
                j++;
                j++;
                j++;
                j++;
                j++;
                j++;
                j++;

        }
        else
        {
            GPIO_Write(GPIOA,0x0000); //初始化PA端口让 LED处于熄灭状?  
        }
    }


P50516-012929.jpg (2.05 MB )

P50516-012929.jpg

P50516-012920.jpg (1.71 MB )

P50516-012920.jpg

P50516-012917.jpg (1.66 MB )

P50516-012917.jpg

P50516-012912.jpg (1.89 MB )

P50516-012912.jpg

P50516-012909.jpg (1.68 MB )

P50516-012909.jpg

P50516-012905.jpg (1.74 MB )

P50516-012905.jpg

P50516-012900.jpg (1.32 MB )

P50516-012900.jpg

P50516-012848.jpg (4 MB )

P50516-012848.jpg

P50516-012829.jpg (2.04 MB )

P50516-012829.jpg

QQ图片20150516013821.jpg (415.32 KB )

QQ图片20150516013821.jpg

QQ图片20150516015106.jpg (948.03 KB )

QQ图片20150516015106.jpg

电波表对时.rar

319.37 KB

相关帖子

沙发
dirtwillfly| | 2015-5-16 08:43 | 只看该作者
不错,感谢分享

使用特权

评论回复
板凳
zrb5688| | 2015-5-23 13:49 | 只看该作者
楼主真牛

使用特权

评论回复
地板
单点接地| | 2015-12-15 14:58 | 只看该作者
本帖最后由 单点接地 于 2015-12-15 15:17 编辑

前辈,输出方波后还要转为正弦波吗?方波不是不能直接发射吗,而且没看见有天线,是怎么发射出去的?

使用特权

评论回复
5
单点接地| | 2015-12-15 15:03 | 只看该作者
本帖最后由 单点接地 于 2015-12-15 15:15 编辑

如果stm32要用到RTC产生时间,用一个定时器产生68.5khz的波输出,再用一个定时器定时产生PWM输出,可以设置吗?如果可以要怎么设置呢?

使用特权

评论回复
6
haroldharold|  楼主 | 2016-4-4 14:55 | 只看该作者
单点接地 发表于 2015-12-15 14:58
前辈,输出方波后还要转为正弦波吗?方波不是不能直接发射吗,而且没看见有天线,是怎么发射出去的? ...

不是正弦波,就是方波,没有天线,就引了一根导线,发射距离很近,20cm左右

使用特权

评论回复
7
haroldharold|  楼主 | 2016-4-4 14:56 | 只看该作者
单点接地 发表于 2015-12-15 15:03
如果stm32要用到RTC产生时间,用一个定时器产生68.5khz的波输出,再用一个定时器定时产生PWM输出,可以设置 ...

可以的,我试过定时器,,不过很难算68.5Khz这么精确。我是用示波器一点点调延时调到68.5Khz的

使用特权

评论回复
8
jj8431| | 2016-5-12 20:18 | 只看该作者
请问电波表对时的原理是什么阿?哪位能给个链接么?谢谢啦

使用特权

评论回复
9
hhl666| | 2017-11-7 09:42 | 只看该作者
楼主,太厉害了,能不能做几个接收及转发装置放在T宝上卖,我正好需要,家里的电波表已经废在那里几年了,收不到电波啊

使用特权

评论回复
10
alanthinker| | 2019-2-7 21:36 | 只看该作者
本帖最后由 alanthinker 于 2019-2-7 21:39 编辑

没看明白, 当前的正确时间是怎么获取到的呢. 时间又是按照什么格式编码呢?要是能实现用usb连接电脑, 然后把电脑的时间编码为电波, 就方便了. 就不用依赖外部的电波信号了. 因为家里信号不好. 也可以节省了接收器.

使用特权

评论回复
11
你瞅啥| | 2019-2-8 13:01 | 只看该作者
典型的瞎扯淡,长波穿墙能力特别强。就是白天没信号,要等太阳落山后2小时才有,我这里BPC和JJY60都能收到,在钢筋混凝土森林里也没任何问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

32

帖子

1

粉丝