极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 49205|回复: 22

两块arduino之间的串口通信问题

[复制链接]
发表于 2014-12-5 16:18:13 | 显示全部楼层 |阅读模式
前些天,搞了一个64x32的点阵时钟,由于温湿度读取时导致闪屏,所以就用了一块nano作为农历运算和温湿度采集,两块anrudino采用串口通信,时钟的2560发送数据请求给nano,nano返回农历数据和温湿度数据,但目前的通讯研究很不稳定,而苦于2560上的I2C口被时钟芯片占用无法使用,所以无法按照网上的I2C方式通讯。所以请搞过类似通讯的给与指点。另发一个目前做的时钟效果图。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-12-5 18:13:02 | 显示全部楼层
这种方块点阵在哪儿能买到?
回复 支持 反对

使用道具 举报

发表于 2014-12-5 19:06:15 | 显示全部楼层
新手来学习的,这个点阵屏漂亮
回复 支持 反对

使用道具 举报

发表于 2014-12-5 22:22:53 | 显示全部楼层
兩片 arduino 通訊, 以我所知, 比較簡單的通訊方式有幾種:
1) 串口 : 一般情況下, 串口是最簡單的了.
2) NRF24L01 : 這裡有不少教學, 可以試試 (我自己沒試過, 但早前有不少人使用, 相信不錯的)
3) 藍牙 : 基本上可以看成是無線的串口吧
4) I2C : 如果要連接多片, I2C 也可以, 但 arduino 板子就可能不可以再接其他 i2c 了.
5) SPI : SPI 可接受多片 arduino, 有 master, 佔用的 IO 比 其他的多 (這個我沒試過, 不知是否容易).
6) Network : 可以實現多片 arduino 的連接, 要加上 網路模塊, 程式亦相對複雜得多了.


如有其他好方法, 請提供研究一下
回复 支持 反对

使用道具 举报

发表于 2014-12-5 23:35:35 | 显示全部楼层
字体不错     
回复 支持 反对

使用道具 举报

发表于 2014-12-6 21:40:21 | 显示全部楼层
I2C可以多片连接啊,为什么不可以?我就是用一个328做主控,连接6片328做分控,中间通过I2C总线连接的。
回复 支持 反对

使用道具 举报

发表于 2014-12-6 21:41:42 | 显示全部楼层
IIC通讯如果使用率不是很高的情况,可以连接多片,你看看具体的情况。SPI有点麻烦,用的针脚比较多,我个人认为IIC比较方便,用的线少。
回复 支持 反对

使用道具 举报

发表于 2014-12-7 14:10:22 | 显示全部楼层
直接串口转发就可以了, 简单实用。温湿度读取应该不会闪屏的吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-7 23:11:39 | 显示全部楼层
Super169 发表于 2014-12-5 22:22
兩片 arduino 通訊, 以我所知, 比較簡單的通訊方式有幾種:
1) 串口 : 一般情況下, 串口是最簡單的了.
2)  ...

多谢指点,因为只传输很少的数据量,不超过20byte,所以,应该串口没问题,可能是我的程序有问题,明天再研究一下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-7 23:13:49 | 显示全部楼层
szpapas 发表于 2014-12-7 14:10
直接串口转发就可以了, 简单实用。温湿度读取应该不会闪屏的吧?

因为温湿度探头没次读取需要大概200ms左右吧,我尝试修改库文件,但是如果延迟时间短的话无法读取数据。我不会修改我的显示程式,所以只能在读取期间等,会导致屏幕闪烁
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-7 23:15:15 | 显示全部楼层
rick_hou 发表于 2014-12-6 21:41
IIC通讯如果使用率不是很高的情况,可以连接多片,你看看具体的情况。SPI有点麻烦,用的针脚比较多,我个人 ...

多谢指点,我看网上的教程I2C需要使用SCL,SDL口,而我的主控板上的口被时钟占用了,不知道您的硬件连接如何实现,望指点
回复 支持 反对

使用道具 举报

发表于 2014-12-8 00:10:34 | 显示全部楼层
rick_hou 发表于 2014-12-6 21:40
I2C可以多片连接啊,为什么不可以?我就是用一个328做主控,连接6片328做分控,中间通过I2C总线连接的。

如果 i2c 只用作通訊, 當然沒問題, 但樓主還有別的用途:

而苦于2560上的I2C口被时钟芯片占用无法使用


用 i2c 作 arduino 之間通訊的話, 還可以有其他 i2c 模塊嗎?
我之前也研究過用 i2c 作 多片 arduino 之間的通訊, 但就是因為這個原因, 而放棄了 i2c 通訊.
回复 支持 反对

使用道具 举报

发表于 2014-12-8 13:54:42 | 显示全部楼层
本帖最后由 szpapas 于 2014-12-8 15:27 编辑

看起来是单色的屏,不知道双色的怎么搞。双色的闪得太厉害了。
回复 支持 反对

使用道具 举报

发表于 2014-12-8 13:55:08 | 显示全部楼层
本帖最后由 szpapas 于 2014-12-8 13:57 编辑
windseeker 发表于 2014-12-7 23:13
因为温湿度探头没次读取需要大概200ms左右吧,我尝试修改库文件,但是如果延迟时间短的话无法读取数据。我 ...


如果用Timer函数去更新呢?

定义一个Timer, 定时去刷新,这样就会好一点吧。

void timer_isr() {
   // scan 的代码
}

void setup() {

    Timer1.initialize(1360);
    Timer1.attachInterrupt(timer_isr);

}
回复 支持 反对

使用道具 举报

发表于 2014-12-8 19:59:44 | 显示全部楼层
字体设计不错,请问是什么体? 粗细两种都很赞
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 00:43 , Processed in 0.040561 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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