windseeker 发表于 2014-12-5 16:18:13

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

前些天,搞了一个64x32的点阵时钟,由于温湿度读取时导致闪屏,所以就用了一块nano作为农历运算和温湿度采集,两块anrudino采用串口通信,时钟的2560发送数据请求给nano,nano返回农历数据和温湿度数据,但目前的通讯研究很不稳定,而苦于2560上的I2C口被时钟芯片占用无法使用,所以无法按照网上的I2C方式通讯。所以请搞过类似通讯的给与指点。另发一个目前做的时钟效果图。

Cupid 发表于 2014-12-5 18:13:02

这种方块点阵在哪儿能买到?

cj8510 发表于 2014-12-5 19:06:15

新手来学习的,这个点阵屏漂亮

Super169 发表于 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 的連接, 要加上 網路模塊, 程式亦相對複雜得多了.


如有其他好方法, 請提供研究一下

davidce 发表于 2014-12-5 23:35:35

字体不错   

rick_hou 发表于 2014-12-6 21:40:21

I2C可以多片连接啊,为什么不可以?我就是用一个328做主控,连接6片328做分控,中间通过I2C总线连接的。

rick_hou 发表于 2014-12-6 21:41:42

IIC通讯如果使用率不是很高的情况,可以连接多片,你看看具体的情况。SPI有点麻烦,用的针脚比较多,我个人认为IIC比较方便,用的线少。

szpapas 发表于 2014-12-7 14:10:22

直接串口转发就可以了, 简单实用。温湿度读取应该不会闪屏的吧?

windseeker 发表于 2014-12-7 23:11:39

Super169 发表于 2014-12-5 22:22 static/image/common/back.gif
兩片 arduino 通訊, 以我所知, 比較簡單的通訊方式有幾種:
1) 串口 : 一般情況下, 串口是最簡單的了.
2)...

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

windseeker 发表于 2014-12-7 23:13:49

szpapas 发表于 2014-12-7 14:10 static/image/common/back.gif
直接串口转发就可以了, 简单实用。温湿度读取应该不会闪屏的吧?

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

windseeker 发表于 2014-12-7 23:15:15

rick_hou 发表于 2014-12-6 21:41 static/image/common/back.gif
IIC通讯如果使用率不是很高的情况,可以连接多片,你看看具体的情况。SPI有点麻烦,用的针脚比较多,我个人 ...

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

Super169 发表于 2014-12-8 00:10:34

rick_hou 发表于 2014-12-6 21:40 static/image/common/back.gif
I2C可以多片连接啊,为什么不可以?我就是用一个328做主控,连接6片328做分控,中间通过I2C总线连接的。

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

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

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

szpapas 发表于 2014-12-8 13:54:42

本帖最后由 szpapas 于 2014-12-8 15:27 编辑

看起来是单色的屏,不知道双色的怎么搞。双色的闪得太厉害了。

szpapas 发表于 2014-12-8 13:55:08

本帖最后由 szpapas 于 2014-12-8 13:57 编辑

windseeker 发表于 2014-12-7 23:13 static/image/common/back.gif
因为温湿度探头没次读取需要大概200ms左右吧,我尝试修改库文件,但是如果延迟时间短的话无法读取数据。我 ...

如果用Timer函数去更新呢?

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

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

void setup() {

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

}

ranqingfa 发表于 2014-12-8 19:59:44

字体设计不错,请问是什么体? 粗细两种都很赞
页: [1] 2
查看完整版本: 两块arduino之间的串口通信问题