佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 2061|回复: 24

超音波 circuit 问题 还是 source code (PIC16F877A)问题 (急)

[复制链接]
发表于 18-2-2008 01:15 PM | 显示全部楼层 |阅读模式
各位大大,这是我的 final year project .... 下面是我的综合超音波系统路线。



红色的是连接放大器部分
蓝色的是连接接受器部分
青色的是连接switches部分
紫色的是连接LCD
我是用PIC generate clock pulse 40 kHz,出 Pin 35.

首先这个系统的路线行得通吗??
如有什么不明白,请大家提出来。。。 我会讲解清楚。过后一些我会把更完整的资料全交上来。。。谢谢大家的帮忙。
回复

使用道具 举报


ADVERTISEMENT

发表于 18-2-2008 07:55 PM | 显示全部楼层
原帖由 养猴人 于 18-2-2008 01:15 PM 发表
各位大大,这是我的 final year project .... 下面是我的综合超音波系统路线。

红色的是连接放大器部分
蓝色的是连接接受器部 ...


我要先声明我没有用过超音波零件。

你为什么不解释清楚你要做的 project 构思?  还要等人家问呢?

你是做发射还是接收器,我没用过,接收是要与发射讯号连接才能用的吗?

你的 MCU 第六支脚是用来检查讯号是从 TRx-L 或 TRx-R 对吗?所以这个脚最好接上一个电阻下地,以防止当切换是不稳定状态。不要直接进入 MCU 脚,再加上一个串联电阻更理想。

看来你的 U2:B 将永远无法被选中,且MCU 第六支脚将只会读到 0V。 原因是电流将通过Q3 下地,而无法得到5V。

[ 本帖最后由 rothmans 于 18-2-2008 08:09 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 19-2-2008 12:45 AM | 显示全部楼层
# 你为什么不解释清楚你要做的 project 构思?  还要等人家问呢?
不好意思,由于当时我赶时间。。erm, 我前年已经有讲解过我project 构思。 就是 "ultrasonic find range"

http://chinese3.cari.com.my/myfo ... 4667&extra=page%3D7
这个其实是用来做 car parking ultrasonic sensor 的。
一开始,我先由PIC,从 pin 35 send 出 pulse 的信号, 然后通过transmitter 的 circuitry 把它发送到其中一粒的transceiver sensor.   至于那一粒会收到,那就要看switch 选择那一粒 sensor 了。 之后通过同一个sensor 从 4066 的output 进入receiver part. 最后由MCU  算出它的时间,把 detect 到固体的距离呈现在LCD 的板上

#你是做发射还是接收器,我没用过,接收是要与发射讯号连接才能用的吗?
当然是有发射器和接收器。发射讯号与接收连接,有什么问题吗?有何意见?

#你的 MCU 第六支脚是用来检查讯号是从 TRx-L 或 TRx-R 对吗?所以这个脚最好接上一个电阻下地,以防止当切换是不稳定状态。不要直接进入 MCU 脚,再加上一个串联电阻更理想。

是的。 要用多少的才有效呢?? 用大概 2kohm 就好吧。

#看来你的
U2:B 将永远无法被选中,且MCU第六支脚将只会读到
0V
原因是电流将通过Q3 下地,而无法得到5V

Q3 是用于做 inverter configuration 的,当 switch 选择的是 upper position 的话,base 会有 current, 那么C 就有current 去 E,所以这个是 处于 saturation mode,电流将从C 去 E 直接下地。所以  那么 TRx L 不会被启动,反而 current 会从 B 那边分叉线通去 4066 的 control (pin 12)。。就这样 TRx R 被选了。
但是如果 switch 选择的是 lower position 的话,那么 Q3 是 off 。。。很明显的 b 那边没有current,所以 Q3 是Off 的,当voltage 来时就会 通过 C 的 分叉线,进入了 4066 (pin 13) 启动了 TRx R。
酱的解释对吗?如有不对请纠正我。  
但是,可能你说的是对的。
现在全部的 part 都装在 test  board 了。但是不成功,trouble shoot 了,也装了几遍,还是一样面对同样的问题。。那LCD  screen 一直没有反应,无论我 switch 去left 还是 right。。。
所以现在只好求求各位大大帮帮忙,看我的路图是否行的通吗?  再来看看 别的问题的存在。

[ 本帖最后由 养猴人 于 19-2-2008 03:12 AM 编辑 ]
回复

使用道具 举报

发表于 19-2-2008 01:11 AM | 显示全部楼层
我想4。7K 咯。。。
回复

使用道具 举报

 楼主| 发表于 19-2-2008 04:57 PM | 显示全部楼层
这两个 1N4148 diode  -|《——  
                                     ——》|-     放相反在 transmitter part 的是不是用来 ignore noise?                        

如果放那个倒转       ——》|-   
                               -|《——     是不是也行?
回复

使用道具 举报

 楼主| 发表于 20-2-2008 09:40 AM | 显示全部楼层
define osc 20                               
               
DEFINE LCD_DREG PORTD               
DEFINE LCD_DBIT 4               
DEFINE LCD_RSREG PORTD               
DEFINE LCD_RSBIT 2               
DEFINE LCD_EREG PORTD                       
DEFINE LCD_EBIT 3                       
DEFINE LCD_BITS 4                       
DEFINE LCD_LINES 2                       
DEFINE LCD_COMMANDUS 2000               
DEFINE LCD_DATAUS 50                       

T1_LowerBYTE var word                       
T1_UpperBYTE var word                       
TOF var word                               
Distance var word                       
Sensor_old var byte                       
Sensor_new var byte                       
Loop_cnt var byte               

TRISA = %11111011               
TRISB = %00000000               
CMCON = %00000101                       
CVRCON = %11000110                       

INTCON = 0                       
LCDOUT $FE, 1                       
pause 500                               

Main:                                         
T1CON = %00000000               
PIR1.0 = 0                               
                                       
                               
if CMCON.7 = 1 then PORTA.1 = 1                       
                               
                             

Sensor_old = PORTA.4               
T1CON = %00000001                       
Gosub Send40k                       
TMR1L = 0                               
TMR1H = 0                       
pauseus 1200                       

Sensor_new = PORTA.4                       
if Sensor_new != Sensor_old then Main
repeat                               
        if CMCON.7 = 1 then               
        T1CON = %00000000               
        goto Calculate_Dist               
        endif
until PIR1.0 = 1                       
        if PORTA.4 = 0 then               
        LCDOUT $FE, 1, "Object is out of range from right sensor!"       
else
        LCDOUT $FE, 1, "Object is out of range from LEFT SENSOR!"               
       
        endif
pause 1000                       
Goto Main                       

Calculate_Dist:                               
        T1_LowerByte = TMR1L       
        T1_UpperByte = TMR1H                
        TOF = T1_LowerByte + (T1_UpperByte * 256)       
        DISTANCE = TOF/29                       
        if PORTA.4 = 0 then                        
        LCDout "Ditance from the Right sensor (in mm) = ", dec distance       

else
        LCDout "Distance from RIGHT sensor (in mm) = ", dec Distance       
       
        endif
pause 1000                       
Goto Main                               

Send40k :                               

for Loop_cnt = 10 to 0 step -1       
PORTB = %00000100               
pauseus 11                               
PORTB = %00000000                       
pauseus 10                               
next Loop_cnt                       
return
回复

使用道具 举报

Follow Us
发表于 21-2-2008 12:05 PM | 显示全部楼层
建议你在Crystal的两端加上两个1pF的ceramic cap.让你的clock更稳~
回复

使用道具 举报

 楼主| 发表于 21-2-2008 12:52 PM | 显示全部楼层
原帖由 SMD 于 21-2-2008 12:05 发表
建议你在Crystal的两端加上两个1pF的ceramic cap.让你的clock更稳~



不好意思,我华语不够好,是不是这样呢?  
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 21-2-2008 01:01 PM | 显示全部楼层
原帖由 rothmans 于 18-2-2008 19:55 发表


我要先声明我没有用过超音波零件。

你为什么不解释清楚你要做的 project 构思?  还要等人家问呢?

你是做发射还是接收器,我没用过,接收是要与发射讯号连接才能用的吗?

你的 MCU 第六支脚是用来检查讯 ...


听了你的意见,在 Q3 的 emmitter 加了一个 resistor , 果然见效。。。LCD 可以show left 和 right 了。。谢谢你

可是还是很不stable, sensor 方面,  detect object 很不 stable,(例如: 无论有没有detect 到 object,LCD  都会出现distance= XXX)
回复

使用道具 举报

发表于 21-2-2008 01:31 PM | 显示全部楼层
原帖由 养猴人 于 21-2-2008 01:01 PM 发表


听了你的意见,在 Q3 的 emmitter 加了一个 resistor , 果然见效。。。LCD 可以show left 和 right 了。。谢谢你

可是还是很不stable, sensor 方面,  detect object 很不 stable,(例如: 无论有没有detect  ...


呵呵!我可没说在 Q3 的 emmitter 加上一个电阻哦 。再说这种加法也是不正确的。其实我根本没给你任何指示如何做啊!
因为我没用过超音波零件,对我来说你的图有几处是错的。我没看过接收是要与发射讯号连接的。还有你在第八楼震荡器的接法也是错误的。去看看 PIC16F877A  的 datasheet, 它有教你怎么接。其实我没用过,所以不敢再次回答你。不知道你图是哪里取得。

你有参考曾经 pic 介绍给你的网站吗?是个很好的知识点,去看看先。

还有你在第六楼给的程序是什么用途呢?
回复

使用道具 举报

 楼主| 发表于 21-2-2008 02:21 PM | 显示全部楼层
[quote]原帖由 rothmans 于 21-2-2008 13:31 发表

## 呵呵!我可没说在 Q3 的 emmitter 加上一个电阻哦 。再说这种加法也是不正确的。其实我根本没给你任何指示如何做啊!
这种加法不正确 , 可是,事实是能走啊。。

## 因为我没用过超音波零件,对我来说你的图有几处是错的。我没看过接收是要与发射讯号连接的。还有你在第八楼震荡器的接法也是错误的。去看看 PIC16F877A  的 datasheet, 它有教你怎么接。其实我没用过,所以不敢再次回答你。不知道你图是哪里取得。

erm...由于我用的 ultrasonic sensor 不同,它同时是可以用来 transmitt 和 received  signal, 。。。transmitt 和 received 的 讯息都用于一个 ultra sensor 里,所以接收与发射讯号连接的。 不然要如何 hehe...
http://www.sendspace.com/file/rk07s3   这个是 sensor 的 datasheet...



还有几处是错的呢?? 尽管说出来听听。。。

你有参考曾经 pic 介绍给你的网站吗?是个很好的知识点,去看看先。

有啊。。。看了。可是我用了别的。网上因该找不到。。如果你有兴趣,可以考虑给你参考整份files。


## 还有你在第六楼给的程序是什么用途呢?
erm。。。是用于detect object, 所以有用到 pic internal  comparator 来  比较,  然后用 TIMER 1 来 算出 distance。 关于 source code 发面,有何意见?

http://www.sendspace.com/file/rk07s3


[ 本帖最后由 养猴人 于 21-2-2008 02:24 PM 编辑 ]
回复

使用道具 举报

发表于 22-2-2008 03:28 AM | 显示全部楼层
对不起。。。
第六楼=PIN 6 是吗??
如是哪
养猴人 expland 有点wrong..
PIN 6我们使用来choose to function Right sensor or LEFT sensor.

养猴人
expland 的是PIN 3 的东西 来的。。。
回复

使用道具 举报

 楼主| 发表于 22-2-2008 05:27 PM | 显示全部楼层

回复 12# 电动舞 的帖子

什么啦!第六楼,是上面 6# 的啦。 不是pin 6啦。。。。 那么请问你住几楼? 四楼还是住在 pin4 里面。。?

[ 本帖最后由 养猴人 于 22-2-2008 05:29 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 29-2-2008 12:05 AM | 显示全部楼层
我有试过有 OSC check PIC是否send out 40 kHz (check from RB2), 可是只测量到50 Hz 罢了。。。
我想是我的code有问题吧。。。
请大家帮帮忙,看有什么地方要更改的
。。。谢谢

SEND40K:                                         'Function that generates 10 cycles of 40k Hz ultrasonic pulses at PORTB.2
For LOOP_CNT = 10 To 0 Step -1                  'Count from 10 to 0 by 1
PORTB=%00000100                                      'First half of the cycle
PAUSEUS 11                                         'Create delay of 11 us (ON Time)
PORTB=%00000000                              'Second half of the cycle
PAUSEUS 10                                     'Create delay of 10 us (OFF Time) next count
Next LOOP_CNT
Return

[ 本帖最后由 养猴人 于 29-2-2008 11:36 AM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 29-2-2008 12:06 AM | 显示全部楼层
SEND40K:                                         'Function that generates 10 cycles of 40k Hz ultrasonic pulses at PORTB.2
For LOOP_CNT = 10 To 0 Step -1                  'Count from 10 to 0 by 1
PORTB=%00000100                                      'First half of the cycle
PAUSEUS 11                                         'Create delay of 11 us (ON Time)
PORTB=%00000000                              'Second half of the cycle
PAUSEUS 10                                     'Create delay of 10 us (OFF Time) next count
Next LOOP_CNT
Return

[ 本帖最后由 养猴人 于 29-2-2008 11:35 AM 编辑 ]
回复

使用道具 举报

发表于 29-2-2008 12:36 PM | 显示全部楼层
原帖由 养猴人 于 29-2-2008 12:06 AM 发表
SEND40K:                                         'Function that generates 10 cycles of 40k Hz ultrasonic pulses at PORTB.2
For LOOP_CNT = 10 To 0 Step -1                  'Count from 10 to 0 by 1
P ...

为什么不用内建的PWM呢?
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 29-2-2008 03:29 PM | 显示全部楼层

回复 16# pic 的帖子

请问PIC 大大 什么是内建的PWM? 可以教我和讲解吗?
回复

使用道具 举报

发表于 29-2-2008 09:42 PM | 显示全部楼层
877A里有Pulse Wave Modulation的function...
请参考它的datasheet...
回复

使用道具 举报

 楼主| 发表于 1-3-2008 03:45 PM | 显示全部楼层
求跪了。。。有没有一些例子可以给我参考的。因为看了真的不知该从如何下手。。而且期限就快到了。请大家帮帮忙
回复

使用道具 举报

发表于 2-3-2008 05:01 PM | 显示全部楼层
原帖由 养猴人 于 29-2-2008 03:29 PM 发表
请问PIC 大大 什么是内建的PWM? 可以教我和讲解吗?


我不会PICbasic , 但从PICbasic的help来看, 是以下的command
HPWM 1,127,40000 ' Send a 50% duty cycle PWM signal at 40kHz

40Khz 的方波会从16F877A 的Pin C2 输出。
回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 26-12-2024 12:05 PM , Processed in 0.114582 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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