论坛首页 > 创客天地 > 往届立创商城电子制作节 > [调试记录贴] 温湿度气压万年历
查看:3989  |  回复:45
[调试记录贴] 温湿度气压万年历 本帖主对外承接开发,联系作者
JNCK
23
主题
125
回复
发表于Thu Oct 06 11:55:20 CST 2016   |  只看该作者 1# 电梯直达

因为国庆差点把电子制作节的事给忘了,昨天赶紧开始做。

最近对Arduino感兴趣,所以MCU使用Atmega328。请大家帮忙看一下原理图,提些建议。

----------------------------------------------------------------------

补充电路板功能:

  • OLED显示
  • 时钟显示
  • 温湿度显示(电路板上放了2个温湿度传感器,主要是为了对比测试芯片效果)
  • 气压显示
  • USB转串口,增加上位机功能,增加可玩性,可在OLED上显示更多内容。
  • MCU使用Atmega328,可以玩Arduino

以上借本次机会学习的主要功能,其中重点是测试温湿度传感器性能,手边有现成的设备,到时会公布测试数据。

另外,该电路板最终会做成下图效果,可以放在办公桌上使用。有通讯、有显示、可使用Arduino,配合上位机,可玩性非常大,这就是本设计最大的亮点。

----------------------------------------------------------------------

PDF版本:THPC.zip

该帖子已被JNCK于Wed Oct 19 20:59:14 CST 2016编辑过
回复 收藏
  举报
红尘客
51
主题
2748
回复
发表于Thu Oct 06 15:30:20 CST 2016   |  只看该作者 2#

没有时钟IC?锂电ib 可以直接充?串个二极管,在小电流时也有4.5V吧?


没电了,充好电再重新设时间?

◆爱浦电源模块, 网线, 水晶头, 语音合成(SYN6288), 电源滤波器(ACM7060), 万用表(UT890C+), 旋转编码开
立创商城赵...
【官方工作人员】
121
主题
1242
回复
发表于Thu Oct 06 17:05:08 CST 2016   |  只看该作者 3#


楼主最好能简单介绍一下这PCBA板的功能、目的、产品亮点、原理图的相关介绍(如器件组成有哪些、工作过程或工作原理如何等等?)

《立创快报》总编辑、立创电子公共实验室建设者,企业QQ:2355740879
JNCK
23
主题
125
回复
发表于Thu Oct 06 17:34:16 CST 2016   |  只看该作者 4#
红尘客 发表于 Thu Oct 06 15:30:20 CST 2016  2# 没有时钟IC?锂电ib 可以直接充?串个二极管,在小电流时也有4....

多谢提醒。

该板子是Arduino基础上设计的,时钟使用swRTC(Arduino软件时钟)。现在这样开关一断时间就没了,需要将开关移到USB与锂电池之间。

锂电池那块是按照最简单的方式来,只要能用就行。这个电路是我从别的电路板上抄下来的,还不知道能否工作。

JNCK
23
主题
125
回复
发表于Thu Oct 06 17:50:08 CST 2016   |  只看该作者 5#
立创商城赵工 发表于 Thu Oct 06 17:05:08 CST 2016  3# 楼主最好能简单介绍一下这PCBA板的功能、目的、产品亮点、原理...
多谢提醒,已更新
红尘客
51
主题
2748
回复
发表于Thu Oct 06 18:22:41 CST 2016   |  只看该作者 6#
其实PM2.5 比气压有用多了,就是传感器太大!
◆爱浦电源模块, 网线, 水晶头, 语音合成(SYN6288), 电源滤波器(ACM7060), 万用表(UT890C+), 旋转编码开
JNCK
23
主题
125
回复
发表于Thu Oct 06 20:56:07 CST 2016   |  只看该作者 7#
红尘客 发表于 Thu Oct 06 18:22:41 CST 2016  6# 其实PM2.5 比气压有用多了,就是传感器太大!
好主意,以后再考虑吧
葫芦狗熊
3
主题
80
回复
发表于Thu Oct 06 21:31:32 CST 2016   |  只看该作者 8#

我做过相关的万年历,增加阴历,星期显示,可能会更好一点!


模仿+改良=创新
安能电子科...
0
主题
2
回复
发表于Thu Oct 06 21:50:25 CST 2016   |  只看该作者 9#
个人愚见,外观设计的的还不是那么靓。楼主是否考虑过修改外观?
JNCK
23
主题
125
回复
发表于Thu Oct 06 23:44:58 CST 2016   |  只看该作者 10#
安能电子科技 发表于 Thu Oct 06 21:50:25 CST 2016  9# 个人愚见,外观设计的的还不是那么靓。楼主是否考虑过修改外观?

这版估计外观是完成不了了,外观要与板子结合,现在板子还没达到想象中的要求。先把功能实现再说。

吃过晚饭开始布局,一晚上总算搞的差不多了,下图是自动布线的效果,明天再修改一下布线就投板。

JNCK
23
主题
125
回复
发表于Thu Oct 06 23:48:04 CST 2016   |  只看该作者 11#
葫芦狗熊 发表于 Thu Oct 06 21:31:32 CST 2016  8# 我做过相关的万年历,增加阴历,星期显示,可能会更好一点!
水平、精力都有限,为了不设计不难产,功能就不增加了,后面再完善
ER
0
主题
11
回复
发表于Fri Oct 07 10:18:54 CST 2016   |  只看该作者 12#

锂电池没有充电管理,可能上电保险丝就会断。

立创商城赵...
【官方工作人员】
121
主题
1242
回复
发表于Fri Oct 07 10:40:12 CST 2016   |  只看该作者 13#
ER 发表于 Fri Oct 07 10:18:54 CST 2016  12# 锂电池没有充电管理,可能上电保险丝就会断。

嗯,加上锂电池的充电管理电路估计更实用了

《立创快报》总编辑、立创电子公共实验室建设者,企业QQ:2355740879
好大的风
4
主题
52
回复
发表于Fri Oct 07 16:19:33 CST 2016   |  只看该作者 14#

据我所知,328只有一路硬件I2C,电路图中引出了三路I2C,是要用软件模拟实现么?

 I2C本身就可以寻址复用,不明白你这样做的目的。

好大的风
4
主题
52
回复
发表于Fri Oct 07 16:21:36 CST 2016   |  只看该作者 15#
根据328的Datasheet,在3V3电压下跑16Mhz是不稳定的,建议改为8Mhz晶振。
好大的风
4
主题
52
回复
发表于Fri Oct 07 16:23:31 CST 2016   |  只看该作者 16#
驱动OLED的SPI也是用软件bitbang实现?
CDzHgL
0
主题
1
回复
发表于Sat Oct 08 09:43:40 CST 2016   |  只看该作者 17#
好大的风 发表于 Fri Oct 07 16:19:33 CST 2016  14# 据我所知,328只有一路硬件I2C,电路图中引出了三路I2C,是要用...
同问。IIC不是可以挂很多设备吗,地址码区分啊。
麻将只打一...
0
主题
2
回复
发表于Sat Oct 08 09:58:20 CST 2016   |  只看该作者 18#
加一颗电池充电管理芯片吧,类似于TP4055之类的,自带充电保护和LDO,对电池没有损伤;如果只加二极管或者保险丝的话, 锂电池一般最高4.2v,USB是5V,很容易过充;
JNCK
23
主题
125
回复
发表于Sat Oct 08 18:05:06 CST 2016   |  只看该作者 19#
好大的风 发表于 Fri Oct 07 16:19:33 CST 2016  14# 据我所知,328只有一路硬件I2C,电路图中引出了三路I2C,是要用...
I2C还不熟悉,所以没用,每个I2C接口到MCU串了电阻,到时飞线再试一下
JNCK
23
主题
125
回复
发表于Sat Oct 08 18:12:10 CST 2016   |  只看该作者 20#
好大的风 发表于 Fri Oct 07 16:21:36 CST 2016  15# 根据328的Datasheet,在3V3电压下跑16Mhz是不稳定的,建议改为8M...

刚才看了一 下Arduino原理图,那是5V的,我只看晶振是16MHz就照搬了。

昨晚把PCB画完,今天已经投板了。感谢各位的建议,让我学到了新知识。

JNCK
23
主题
125
回复
发表于Sat Oct 08 18:12:55 CST 2016   |  只看该作者 21#
ER 发表于 Fri Oct 07 10:18:54 CST 2016  12# 锂电池没有充电管理,可能上电保险丝就会断。

看来锂电池是用不了,

JNCK
23
主题
125
回复
发表于Sat Oct 08 18:18:41 CST 2016   |  只看该作者 22#
PCB来了,下单时选了SMT,结果审核后显示电阻电容都没办法贴,仔细一下原来还有那么多规则,懒得看了又重新下单把SMT取消了。这板子器件也不多,准备回来手焊

THPC.zip

立创商城赵...
【官方工作人员】
121
主题
1242
回复
发表于Sun Oct 09 10:46:57 CST 2016   |  只看该作者 23#


外观还挺COOL!

《立创快报》总编辑、立创电子公共实验室建设者,企业QQ:2355740879
JNCK
23
主题
125
回复
发表于Thu Oct 13 07:10:26 CST 2016   |  只看该作者 24#

板子昨天下午到了,焊上USB、电源和MCU,发现好多失败的地方啊

问题1,是电源,到仓库一看只有5.0V和3.0V,选了个5.0V的焊上,结果电脑上显示有串口,但是发送数据时CH340B与MCU连接的TX、RX信号灯不闪,一查资料,原来CH340B的3.3V与5.0V硬件设计不一样,可能是这个原因,后面再查。

问题2,使用Arduino Nano给这块板子下载bootloader,一开始想当然将两块板子ISP接口连在一起,结果不行,上网一搜索发现原来需要将Nano的PB2(SS)连接到被下载的板子上的RESET;

问题3,下载时,被下载的板子的D0 D1(RX TX)是不能连接任何设备的,去掉后终于可以下载了。

立创商城赵...
【官方工作人员】
121
主题
1242
回复
发表于Thu Oct 13 09:36:25 CST 2016   |  只看该作者 25#
JNCK 发表于 Thu Oct 13 07:10:26 CST 2016  24# 板子昨天下午到了,焊上USB、电源和MCU,发现好多失败的地方啊 ...
调试,乐在其中!
《立创快报》总编辑、立创电子公共实验室建设者,企业QQ:2355740879
鸿芯电子
1
主题
26
回复
发表于Thu Oct 13 10:46:32 CST 2016   |  只看该作者 26#
USB外壳没有接地,底部也没有敷铜。可能与自动布线有关吧。
JNCK
23
主题
125
回复
发表于Thu Oct 13 20:12:52 CST 2016   |  只看该作者 27#
鸿芯电子 发表于 Thu Oct 13 10:46:32 CST 2016  26# USB外壳没有接地,底部也没有敷铜。可能与自动布线有关吧。
这个有讲究吗,图中故意这样做的
JNCK
23
主题
125
回复
发表于Tue Oct 18 20:34:48 CST 2016   |  只看该作者 28#

今天郁闷了,板子下载完Bootloarder后只能使用ArduinoIDE下载一次程序,可能真的是楼上所说3.3V 16MHz时Atmega328不稳定,明天把电源割了试一下。看来重新打样是必须的。

下面记录一下今天调试内容:

-----------------------------------------

之前使用5.0V LDO板子无法工作,已经重买了RT9193-3.3V焊上。

之前已经使用ArduinoNano给板子成功下载过Bootloader,但是发现数据时串口RX、TX上的蓝色LED闪烁不明显,误以为下载失败,所以又买了USB ISP回来下载。

免驱USB ISP插上电脑后是不显示COM,第一次用不知道,还请教了商家了。使用USB ISP下载时需要设置熔丝位,网上搜索后操作步骤如下:

使用工具软件:
USB ISP
progisp1.72
Arduino Nano
操作步骤:
在Arduino安装目录下找到boards.txt(C:\Program Files (x86)\Arduino\hardware\arduino\avr);

见下图方框所示:

Arduino Nano ATmega328 对应的熔丝位需要设置为:
熔丝低位=0xFF
熔丝高位=0xDA

熔丝扩展位=0x05(实际操作时扩展侠的高位无法设置,所以没有按照文件中设置为0x05)


方框中最后一行显示Bootloader文件是atmega\ATmegaBOOT_168_atmega328.hex,progisp1.72 中调入该文件下载即可。
---------------------------------------------------------------------------------------

有BMP180和HDC1080都是淘宝买的,好贵。三颗传感器的封装使用烙铁都没焊好,改用热风枪才搞定,祈祷芯片没吹坏了。下面show一下焊好传感器的实物:

立创商城赵...
【官方工作人员】
121
主题
1242
回复
发表于Wed Oct 19 11:20:45 CST 2016   |  只看该作者 29#
JNCK 发表于 Tue Oct 18 20:34:48 CST 2016  28# 今天郁闷了,板子下载完Bootloarder后只能使用ArduinoIDE下载一...
U2,U3 手工焊接好不容易哦!呵呵
《立创快报》总编辑、立创电子公共实验室建设者,企业QQ:2355740879
JNCK
23
主题
125
回复
发表于Wed Oct 19 20:50:21 CST 2016   |  只看该作者 30#

割了板子电源,USB进来防反接的二极管压降太大(0.7V),也去掉了,MCU改成5V供电,烧写Bootloader后通过串口还是只能下载一次,RX、TX引出使用外部USB转TTL还是不行。找出官方原理一对,发现USB转串口芯片的DTR串着一个电容连接到MCU的RESET引脚上,改之,OK了。技术不精啊。板子已被改的面目全非了。还好,赶在出差前把下载程序搞定。

JNCK
23
主题
125
回复
发表于Wed Oct 19 23:19:48 CST 2016   |  只看该作者 31#
11点了,SHT31还未访问成功,后悔使用普通IO模拟I2C了,SHT31代码还得重新写。得洗洗睡了,明晚继续吧。
立创商城赵...
【官方工作人员】
121
主题
1242
回复
发表于Fri Oct 21 10:42:09 CST 2016   |  只看该作者 32#
JNCK 发表于 Wed Oct 19 23:19:48 CST 2016  31# 11点了,SHT31还未访问成功,后悔使用普通IO模拟I2C了,SHT31代...

楼主辛苦了!

SHT31 的驱动例子,楼主需要的话,我可以跟这个芯片的代售作者拿,需要吗?

《立创快报》总编辑、立创电子公共实验室建设者,企业QQ:2355740879
JNCK
23
主题
125
回复
发表于Fri Oct 21 12:38:12 CST 2016   |  只看该作者 33#
立创商城赵工 发表于 Fri Oct 21 10:42:09 CST 2016  32# 楼主辛苦了! SHT31 的驱动例子,楼主需要的话,我可以跟这个芯...

谢谢,不用了。芯片应用示例已经有了,I2C的问题才卡住的,由于没有使用硬件自带的I2C,Arduino的I2C库没法使用了,所以得使用IO模拟I2C。现在已经解决了。

---------------------------------------------------

板子上传感器都没有使用硬件I2C口,所以需要使用软件模拟I2C,又是一个没做的,得重头造轮子了。从昨晚折腾到现在,资料看了N篇N遍,网上例程试了若干种,终于有眉目了,现在已经可以读取BMP180的温度了,解决一个其它的都好解决了。马上得赶紧去吃午饭,下午还得去客户现场了。

这次有两点收获:

  • Arduino同一文件中函数不需要声明,少写若干代码;
  • 安装的第三方库的代码可以直接调用,只需要在文件头包含头文件即可;
这两点真是太方便使用了,这也是Arduino的优点,不需要关心太多内容即可玩起来。
看下面简洁的代码吧:

主程序

Adafruit_BMP085 bmp;
void setup() {
  Serial.begin(115200);
  if (!bmp.begin()) {
  Serial.println("Could not find a valid BMP085 sensor, check wiring!");
  while (1) {}
  }
}
  
void loop() {
    Serial.print("Temperature = ");
    Serial.print(bmp.readTemperature());
    Serial.println("'C");
    Serial.println();
    delay(500);
}
BMP180与BMP085代码通用,这个是找的第三方库。普通IO模拟I2C也是找的第三方库。

所有代码我只添加两行代码,在BMP085应用代码中包含头文件和定义了myWire():

#include <SoftwareWire.h>
SoftwareWire myWire( 5, 4);
然后把BMP085应用代码中原来使用Wire的全部修改成myWire。这么长时间的努力换来了So Easy的方法。

下图是实际效果,手捏传感器可以看到温度变化。



JNCK
23
主题
125
回复
发表于Fri Oct 21 12:50:25 CST 2016   |  只看该作者 34#
立创商城赵工 发表于 Fri Oct 21 10:42:09 CST 2016  32# 楼主辛苦了! SHT31 的驱动例子,楼主需要的话,我可以跟这个芯...
再感慨一下,Arduino真的是非常非常好用,不过支持的MCU非常少,真的希望能有支持热门MCU芯片的“Arduino”。
JNCK
23
主题
125
回复
发表于Fri Oct 21 17:32:39 CST 2016   |  只看该作者 35#
HDC1080、BMP180、SHT31均可以读出数据了。还是要赞一下Arduino,SoftwareWire竟然可以复用,只需要重新定义一下引脚。
调试中遇到一个问题没搞明白:
hdcWire.write((uint8_t)0x00);
hdcWire.write((uint8_t)0x00);

hdcWire.write(0x00);
hdcWire.write(0x00);

write参数是uint8_t类型,前两行那种格式可以,后两行就会报错。而且数值改成0x02也没有报错。错误信息:

\ClosedCube_HDC1080\src\ClosedCube_HDC1080.cpp: In member function 'void ClosedCube_HDC1080::begin(uint8_t)':
\ClosedCube_HDC1080\src\ClosedCube_HDC1080.cpp:47:19: error: call of overloaded 'write(int)' is ambiguous  hdcWire.write(0x0);


  现在出差在外,无法将OLED焊上调试,下一步先把modbus搞定,然后再整个上位机。


JNCK
23
主题
125
回复
发表于Mon Nov 14 21:40:05 CST 2016   |  只看该作者 36#

最近把数据库给跑通了,详见 http://club.szlcsc.com/article/details_904_0_1_0_1_1.html

有个问题暂时还未解决,启动时从template表复制结构新建表,模板中字段类型为数字时,复制到新表中写入带小数的数值最终都会变成整数

红尘客
51
主题
2748
回复
发表于Mon Nov 14 21:58:25 CST 2016   |  只看该作者 37#
没遇到过,没有复制过表!
◆爱浦电源模块, 网线, 水晶头, 语音合成(SYN6288), 电源滤波器(ACM7060), 万用表(UT890C+), 旋转编码开
就看好万物...
0
主题
4
回复
发表于Sun Jun 25 17:01:23 CST 2017   |  只看该作者 38#
请教下,我想将mega 2560跟w5500做在一块板子上,这个难么
JNCK
23
主题
125
回复
发表于Fri Jun 30 11:25:18 CST 2017   |  只看该作者 39#
就看好万物互联 发表于 Sun Jun 25 17:01:23 CST 2017  38# 请教下,我想将mega 2560跟w5500做在一块板子上,这个难么
不难,网上资料很丰富的
就看好万物...
0
主题
4
回复
发表于Wed Sep 06 13:17:12 CST 2017   |  只看该作者 40#
JNCK 发表于 Fri Jun 30 11:25:18 CST 2017  39# 不难,网上资料很丰富的

加下微信 b08070324,详细了解下,可以么

JNCK
23
主题
125
回复
发表于Fri Sep 08 14:14:34 CST 2017   |  只看该作者 41#
就看好万物互联 发表于 Wed Sep 06 13:17:12 CST 2017  40# 加下微信 b08070324,详细了解下,可以么

不好意思,这个我也没做过。arduino有w5500的库,所以才觉得做起来不难。

实在不行,网上买个W5500的模块回来抄个原理图也能解决

就看好万物...
0
主题
4
回复
发表于Sat Sep 16 11:59:48 CST 2017   |  只看该作者 42#
JNCK 发表于 Fri Sep 08 14:14:34 CST 2017  41# 不好意思,这个我也没做过。arduino有w5500的库,所以才觉得做...

我不懂电路,Arduino官方有相关资料,可以找到w5500的原理图,都是eagle格式的,我也不会弄图,要不你帮忙看看,回头付费也行,或者大家一起弄

JNCK
23
主题
125
回复
发表于Sat Sep 16 14:59:48 CST 2017   |  只看该作者 43#
就看好万物互联 发表于 Sat Sep 16 11:59:48 CST 2017  42# 我不懂电路,Arduino官方有相关资料,可以找到w5500的原理图,...
提个具体需求我看看
就看好万物...
0
主题
4
回复
发表于Mon Sep 18 11:02:22 CST 2017   |  只看该作者 44#
将Arduino MEGA与Arduino Ethernet shield v2两个板子组合在一块板子上,32路作为输入、32路作为输出,输入与输出端口都需要做电压转换。输入部分12v输入或者无电压输入、输出部分12v或者无电压输出,对应接口为RJ45网口
ljfceo
11
主题
34
回复
发表于Tue Sep 19 15:25:01 CST 2017   |  只看该作者 45#
get le !  看起来设计还行!
W5500 DaiLiShang 深圳炜世科技WISIOE--13316931709
JNCK
23
主题
125
回复
发表于Fri Sep 29 11:33:17 CST 2017   |  只看该作者 46#
就看好万物互联 发表于 Mon Sep 18 11:02:22 CST 2017  44# 将Arduino MEGA与Arduino Ethernet shield v2两个板子组合在一块...
还需要做吗,费用一万,含一套硬件调试好的板子
  • 温馨提示:标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考:社区发帖规则
  • 您当前输入了 0个文字。还可以输入8000个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

顶部