查看:
3362
|
回复:
45
|
[调试记录贴] 温湿度气压万年历
本帖主对外承接开发,
联系作者
|
|||
JNCK
2
主题
131
回复 |
该帖子为嘉立创认证过的开发案例,案例是对作者实际开发产品的介绍,您可以通过这些案例去找到和自己产品相关的一些方案或解决途径。
查看更多案例 >>
发表于2016-10-06 11:55:20
|
显示全部楼层
1#
电梯直达
因为国庆差点把电子制作节的事给忘了,昨天赶紧开始做。 最近对Arduino感兴趣,所以MCU使用Atmega328。请大家帮忙看一下原理图,提些建议。 ---------------------------------------------------------------------- 补充电路板功能:
以上借本次机会学习的主要功能,其中重点是测试温湿度传感器性能,手边有现成的设备,到时会公布测试数据。 另外,该电路板最终会做成下图效果,可以放在办公桌上使用。有通讯、有显示、可使用Arduino,配合上位机,可玩性非常大,这就是本设计最大的亮点。 ---------------------------------------------------------------------- PDF版本:THPC.zip |
|||
JNCK
2
主题
131
回复 |
发表于2016-10-06 17:34:16
|
显示全部楼层
4#
多谢提醒。 该板子是Arduino基础上设计的,时钟使用swRTC(Arduino软件时钟)。现在这样开关一断时间就没了,需要将开关移到USB与锂电池之间。 锂电池那块是按照最简单的方式来,只要能用就行。这个电路是我从别的电路板上抄下来的,还不知道能否工作。 |
|||
JNCK
2
主题
131
回复 |
发表于2016-10-06 17:50:08
|
显示全部楼层
5#
多谢提醒,已更新
|
|||
JNCK
2
主题
131
回复 |
发表于2016-10-06 20:56:07
|
显示全部楼层
7#
好主意,以后再考虑吧
|
|||
JNCK
2
主题
131
回复 |
发表于2016-10-06 23:44:58
|
显示全部楼层
10#
这版估计外观是完成不了了,外观要与板子结合,现在板子还没达到想象中的要求。先把功能实现再说。 吃过晚饭开始布局,一晚上总算搞的差不多了,下图是自动布线的效果,明天再修改一下布线就投板。 |
|||
JNCK
2
主题
131
回复 |
发表于2016-10-06 23:48:04
|
显示全部楼层
11#
水平、精力都有限,为了不设计不难产,功能就不增加了,后面再完善
|
|||
JNCK
2
主题
131
回复 |
发表于2016-10-08 18:05:06
|
显示全部楼层
19#
I2C还不熟悉,所以没用,每个I2C接口到MCU串了电阻,到时飞线再试一下
|
|||
JNCK
2
主题
131
回复 |
发表于2016-10-08 18:12:10
|
显示全部楼层
20#
刚才看了一 下Arduino原理图,那是5V的,我只看晶振是16MHz就照搬了。 昨晚把PCB画完,今天已经投板了。感谢各位的建议,让我学到了新知识。 |
|||
JNCK
2
主题
131
回复 |
发表于2016-10-08 18:12:55
|
显示全部楼层
21#
看来锂电池是用不了, |
|||
JNCK
2
主题
131
回复 |
发表于2016-10-08 18:18:41
|
显示全部楼层
22#
PCB来了,下单时选了SMT,结果审核后显示电阻电容都没办法贴,仔细一下原来还有那么多规则,懒得看了又重新下单把SMT取消了。这板子器件也不多,准备回来手焊
|
|||
JNCK
2
主题
131
回复 |
发表于2016-10-13 07:10:26
|
显示全部楼层
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)是不能连接任何设备的,去掉后终于可以下载了。 |
|||
JNCK
2
主题
131
回复 |
发表于2016-10-13 20:12:52
|
显示全部楼层
27#
这个有讲究吗,图中故意这样做的
|
|||
JNCK
2
主题
131
回复 |
发表于2016-10-18 20:34:48
|
显示全部楼层
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一下焊好传感器的实物: |
|||
JNCK
2
主题
131
回复 |
发表于2016-10-19 20:50:21
|
显示全部楼层
30#
割了板子电源,USB进来防反接的二极管压降太大(0.7V),也去掉了,MCU改成5V供电,烧写Bootloader后通过串口还是只能下载一次,RX、TX引出使用外部USB转TTL还是不行。找出官方原理一对,发现USB转串口芯片的DTR串着一个电容连接到MCU的RESET引脚上,改之,OK了。技术不精啊。板子已被改的面目全非了。还好,赶在出差前把下载程序搞定。 |
|||
JNCK
2
主题
131
回复 |
发表于2016-10-19 23:19:48
|
显示全部楼层
31#
11点了,SHT31还未访问成功,后悔使用普通IO模拟I2C了,SHT31代码还得重新写。得洗洗睡了,明晚继续吧。
|
|||
JNCK
2
主题
131
回复 |
发表于2016-10-21 12:38:12
|
显示全部楼层
33#
谢谢,不用了。芯片应用示例已经有了,I2C的问题才卡住的,由于没有使用硬件自带的I2C,Arduino的I2C库没法使用了,所以得使用IO模拟I2C。现在已经解决了。 ---------------------------------------------------
板子上传感器都没有使用硬件I2C口,所以需要使用软件模拟I2C,又是一个没做的,得重头造轮子了。从昨晚折腾到现在,资料看了N篇N遍,网上例程试了若干种,终于有眉目了,现在已经可以读取BMP180的温度了,解决一个其它的都好解决了。马上得赶紧去吃午饭,下午还得去客户现场了。
这次有两点收获:
这两点真是太方便使用了,这也是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
2
主题
131
回复 |
发表于2016-10-21 12:50:25
|
显示全部楼层
34#
再感慨一下,Arduino真的是非常非常好用,不过支持的MCU非常少,真的希望能有支持热门MCU芯片的“Arduino”。
|
|||
JNCK
2
主题
131
回复 |
发表于2016-10-21 17:32:39
|
显示全部楼层
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
2
主题
131
回复 |
发表于2016-11-14 21:40:05
|
显示全部楼层
36#
最近把数据库给跑通了,详见 http://club.szlcsc.com/article/details_904_0_1_0_1_1.html 有个问题暂时还未解决,启动时从template表复制结构新建表,模板中字段类型为数字时,复制到新表中写入带小数的数值最终都会变成整数 |
|||
JNCK
2
主题
131
回复 |
发表于2017-06-30 11:25:18
|
显示全部楼层
39#
不难,网上资料很丰富的
|
|||
JNCK
2
主题
131
回复 |
发表于2017-09-08 14:14:34
|
显示全部楼层
41#
不好意思,这个我也没做过。arduino有w5500的库,所以才觉得做起来不难。 实在不行,网上买个W5500的模块回来抄个原理图也能解决 |
|||
JNCK
2
主题
131
回复 |
发表于2017-09-16 14:59:48
|
显示全部楼层
43#
提个具体需求我看看
|
|||
JNCK
2
主题
131
回复 |
发表于2017-09-29 11:33:17
|
显示全部楼层
46#
还需要做吗,费用一万,含一套硬件调试好的板子
|
|