基于TDC-GP22和Arduino UNO的超声波流量计-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: dyn002000

[未解决] 基于TDC-GP22和Arduino UNO的超声波流量计

[复制链接]
 楼主| 发表于 2019-7-8 22:06 | 显示全部楼层
klh123456 发表于 2019-7-8 21:48
这几个我连了,不过我是直接联的,不能直接联吗?我的电子技术真的太渣了~~
...

不行的。 GP22是3.3V的设备,直接连5V的arduino是没用的,,要么分压要么找个小片子去转换一下。。加油咯
 楼主| 发表于 2019-7-8 22:09 | 显示全部楼层
klh123456 发表于 2019-7-8 22:04
不能使用5v供电吗?
arduino里面有个3.3v可以用吗?

也不行的。。我之前也试过 发现那个还是5V的。。
发表于 2019-7-8 22:15 | 显示全部楼层
dyn002000 发表于 2019-7-8 22:06
不行的。 GP22是3.3V的设备,直接连5V的arduino是没用的,,要么分压要么找个小片子去转换一下。。加油咯 ...

arduino里面有个3.3V,可以直接用吗?
发表于 2019-7-10 23:38 | 显示全部楼层
大神你好,这个板子上的DIS要接线吗?从原理图上看好像是开始的使能端
 楼主| 发表于 2019-7-11 14:57 | 显示全部楼层
klh123456 发表于 2019-7-10 23:38
大神你好,这个板子上的DIS要接线吗?从原理图上看好像是开始的使能端

emm咱也是新手啦,,我接了个电阻准备了个口子备用,不过目前没用上。按道理应该是要接到高电平的,但是我不管接不接读数都不变 =。=
发表于 2019-7-14 17:08 | 显示全部楼层
dyn002000 发表于 2019-7-11 14:57
emm咱也是新手啦,,我接了个电阻准备了个口子备用,不过目前没用上。按道理应该是要接到高电平的,但是 ...

串口打印结果如下:
[mw_shl_code=arduino,true]
Go !
attached pinChangeISR_debug

Register 0:        0x430be800
Register 1:        0x21444000
Register 2:        0xa0138800
Register 3:        0xd0a24800
Register 4:        0x30004000
Register 5:        0x40000000
Register 6:        0xc0c06100

0
Test communication:
Test took 144 us
00
0
0
[/mw_shl_code]

大神,按你的代码运行一直都是这个,里面有几个问题要请教一下:
第一个问题是 串口打印结果中 Register 4:        0x30004000 结果跟你的不一样呀

第二个问题是
Test communication: 上一行的那个 0 是运行
[mw_shl_code=arduino,true]  
byte a = tdc.readRegister(READ_REG_1);            
Serial.println(a,HEX);
[/mw_shl_code]
之后的结果,结果是0,想请问,是否是tdc.readRegister(READ_REG_1) 运行不成功

第三个问题
在运行   Serial.print(tdc.testCommunication()); 的结果是 0 ,能够请教一下,要怎么做调整才能做到像你一样的串口打印结果。

Ardunio 和 GP22都是刚买的,接线也检查过了,转换片子也接上了。 应该硬件环境是没有问题的。
目前卡在这里了,
 楼主| 发表于 2019-7-15 14:50 | 显示全部楼层
klh123456 发表于 2019-7-14 17:08
串口打印结果如下:
[mw_shl_code=arduino,true]
Go !

你好,

第一个问题的话你去gp22.h文件里改,应该是347行左右 有个  CFG_KEEP_DEFAULT_BITMASKS[7]
第五行对应register4的你改成0x00000000应该就可以了(过了好久了也不知道是不是这里。。反正应该就是在.h文件里)

后面两个其实可以算是一个问题吧。。就是寄存器的写入读取。 你有试过把RTN(reset) Pin接到高电平嘛?
 楼主| 发表于 2019-7-26 15:39 | 显示全部楼层
对DEMO-KIT 用了 Logic Analyzer:
1START_TOF_RESTART.PNG
发现每次读数前都要重新设置一下Register 1,而且读0xB0 (RES_0)的话还要再发送四次0xFF。。。。
11.PNG
然后我在GP22.cpp里找到:
code3.png
我就把SPI.transfer里面的改成了0xFF, 代码里发送 0x05(START_TOF_RESTART)前也再设置了Register 1:0x21444000

但还是没用呀。。郁闷。。求助各位大佬。。


发表于 2019-7-27 20:42 | 显示全部楼层
我也做的是类似的项目,楼主能分享一下资料吗?
 楼主| 发表于 2019-7-29 14:56 | 显示全部楼层
本帖最后由 dyn002000 于 2019-7-29 14:57 编辑
wangyirun 发表于 2019-7-27 20:42
我也做的是类似的项目,楼主能分享一下资料吗?

我用的基本也都是网上找的那些。
library: https://github.com/leokoppel/GP22
Application Note:https://ams.com/documents/20143/36005/TDC-GP22_GP30_AN000283_1-00.pdf/b93ea868-e82a-4c8b-2c71-d8f602b2a102

我还有个GP22 的 DEMO-KIT。你如果也有的话可以看看
DEMO-KIT User Guide: https://ams.com/documents/20143/36005/TDC-GP22_UG000291_1-00.pdf/d31e2311-27dd-b3e3-4a6d-a08346209626
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 00:44 , Processed in 0.267132 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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