佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

楼主: syin84

LM3915->PIC???

[复制链接]
 楼主| 发表于 13-11-2007 04:38 PM | 显示全部楼层

回复 #20 pic 的帖子

只是这样而已。。。

set_adc_channel(1);
b=read_adc();
b=(b/255)*3;
if(b>1){
output_high(pin_b0);}
else{
output_low(pin_b0);}
回复

使用道具 举报


ADVERTISEMENT

发表于 13-11-2007 06:32 PM | 显示全部楼层
请放完整的code,  包括 #fuse。。。


还有, 为什么
b=(b/255)*3;  ?


还有, 你的图有更好的画法,
X1, C3, C4 不需要,(如要,C3 C4 要用CAP, 不是ECAP)
B2 可以用linear POT 来代替, 可以变。

你U2是什么目的作用?

[ 本帖最后由 pic 于 13-11-2007 06:42 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 13-11-2007 11:03 PM | 显示全部楼层

回复 #22 pic 的帖子

我再尝试后没有那个的问题了。

“b=(b/255)*3”,这样的Analog-to-Digital Conversion对吗?因为sound detector的输出是3V。

program要怎样写才可以量到不同的level?比如说当输出小的时候只亮一个灯,中等时亮两个灯,很大时亮三个灯,以此类推,是用那个if,else if,else statement吗?

我知道X1, C3, C4在这里是可以省略。也谢谢告知这些资料。
其实我没有基础,但是却觉得这些东西很有趣,想学一学。

U2的输出是另一个ADC输入,以测试电池的电力,D1用来显示,当电力少过4V,D1会亮。而这里的Analog-to-Digital Conversion我用 a=(a/255)*5,因为7805的输出是5V。

DC motor应该要怎样接?有没有例子?
回复

使用道具 举报

发表于 14-11-2007 11:05 AM | 显示全部楼层
原帖由 syin84 于 13-11-2007 11:03 PM 发表
“b=(b/255)*3”,这样的Analog-to-Digital Conversion对吗?因为sound detector的输出是3V。

小心注意你是用8bit 或 10bit。

program要怎样写才可以量到不同的level?比如说当输出小的时候只亮一个灯,中等时亮两个灯,很大时亮三个灯,以此类推,是用那个if,else if,else statement吗?

Switch case 也可以。


我知道X1, C3, C4在这里是可以省略。也谢谢告知这些资料。
其实我没有基础,但是却觉得这些东西很有趣,想学一学。

在论坛发表的话,我们要就画对的, 不然初学的人以为是对的就不好。


U2的输出是另一个ADC输入,以测试电池的电力,D1用来显示,当电力少过4V,D1会亮。而这里的Analog-to-Digital Conversion我用 a=(a/255)*5,因为7805的输出是5V。

不可以。
为什么不可以呢?那里不可以呢?大家来动动脑筋。。


DC motor应该要怎样接?有没有例子?

Proteus 有Motor的modal, 看Example。
回复

使用道具 举报

发表于 14-11-2007 04:39 PM | 显示全部楼层
如果input 是 4V , 4/255x5 , 那么就拿不到答案的。
a=(a/5)x256 ??
乱撞得, 我不会用 ADC .... 乱来的

[ 本帖最后由 chan1314 于 14-11-2007 05:20 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 15-11-2007 01:49 AM | 显示全部楼层
原帖由 pic 于 14-11-2007 11:05 AM 发表

小心注意你是用8bit 或 10bit。


我用PIC16F877A。8bit 对吗?


在论坛发表的话,我们要就画对的, 不然初学的人以为是对的就不好。


哦,对不起,请原谅我是论坛新人,以后会多注意的了。


不可以。
为什么不可以呢?那里不可以呢?大家来动动脑筋。。



是不是还要接Vrefh,Vrefl?
我也不会的。。。
回复

使用道具 举报

Follow Us
发表于 15-11-2007 09:51 AM | 显示全部楼层
如果input 是 4V , 4/255x5 , 那么就拿不到答案的。
a=(a/5)x256 ??
乱撞得, 我不会用 ADC .... 乱来的

撞不对~~
只有“乱来”是对的。。。

原帖由 syin84 于 15-11-2007 01:49 AM 发表
我用PIC16F877A。8bit 对吗?
  1. #include <16F877A.h>
  2. #device ADC=10
复制代码
就是10bit, default是8bit。

是不是还要接Vrefh,Vrefl?

如是接Vref, 为什么?
如不是接Vref, 又为什么?
来, 想想, logical thinking。
回复

使用道具 举报

发表于 15-11-2007 09:51 AM | 显示全部楼层
如果input 是 4V , 4/255x5 , 那么就拿不到答案的。
a=(a/5)x256 ??
乱撞得, 我不会用 ADC .... 乱来的

撞不对~~
只有“乱来”是对的。。。

原帖由 syin84 于 15-11-2007 01:49 AM 发表
我用PIC16F877A。8bit 对吗?
  1. #include <16F877A.h>
  2. #device ADC=10
复制代码

就是10bit, default是8bit。

是不是还要接Vrefh,Vrefl?

如是接Vref, 为什么?
如不是接Vref, 又为什么?
来, 想想, logical thinking。
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 15-11-2007 12:07 PM | 显示全部楼层
原帖由 pic 于 15-11-2007 09:51 AM 发表

如是接Vref, 为什么?


因为built-in的ADC需要电流供应?


如不是接Vref, 又为什么?


这个就不知道了。。
回复

使用道具 举报

发表于 16-11-2007 04:19 PM | 显示全部楼层
原帖由 syin84 于 13-11-2007 11:03 PM 发表
“b=(b/255)*3”,这样的Analog-to-Digital Conversion对吗?因为sound detector的输出是3V。

你的Formula是错的。

你用8bit, 那Value 是0~255.
从电路和coding里看,你是用Internal Vref 5V.

就是说 :
如input是5V, Internal Vref=5V
5V=255 (full scale)

如input是3V, Internal Vref=5V
(255 × 3V)/5V
= 153

所以, 你可以用的range是0~153, 如果你的input max 是3V的话。

“b=(b/255)*3”---》 错!


program要怎样写才可以量到不同的level?比如说当输出小的时候只亮一个灯,中等时亮两个灯,很大时亮三个灯,以此类推,是用那个if,else if,else statement吗?
  1. #include <16F877a.h>
  2. #device ADC=8
  3. #fuses HS,NOWDT,PROTECT,NOLVP
  4. #use delay(clock=20000000)
  5. int b;
  6. void main()
  7. {
  8.    
  9.    setup_adc_ports( ALL_ANALOG );
  10.    setup_adc(ADC_CLOCK_INTERNAL );
  11.    set_adc_channel( 0 );

  12.   while( TRUE )
  13.   {
  14.       b = read_adc();
  15.       
  16.       if (b>=153) //3V
  17.       {
  18.          output_high(pin_b0);
  19.          output_Low(pin_b1);
  20.          output_Low(pin_b2);
  21.       }   
  22.       else if (b>=102) //2V
  23.       {
  24.          output_Low(pin_b0);
  25.          output_High(pin_b1);
  26.          output_Low(pin_b2);
  27.       }
  28.       else if (b>=51) //1V
  29.       {
  30.          output_Low(pin_b0);
  31.          output_Low(pin_b1);
  32.          output_High(pin_b2);
  33.       }
  34.       else
  35.       {
  36.          output_Low(pin_b0);
  37.          output_Low(pin_b1);
  38.          output_Low(pin_b2);
  39.       }
  40.       
  41.   }
  42.   
  43. }
复制代码
U2的输出是另一个ADC输入,以测试电池的电力,D1用来显示,当电力少过4V,D1会亮。而这里的Analog-to-Digital Conversion我用 a=(a/255)*5,因为7805的输出是5V。

concept 错到完。。。
回复

使用道具 举报

 楼主| 发表于 16-11-2007 06:15 PM | 显示全部楼层

回复 #30 pic 的帖子

哦,原来是这样。

我的路还有很长很长。。。要和大家好好学习。
回复

使用道具 举报

 楼主| 发表于 18-11-2007 04:30 PM | 显示全部楼层

回复 #30 pic 的帖子

"U2的输出是另一个ADC输入,以测试电池的电力,D1用来显示,当电力少过4V,D1会亮。而这里的Analog-to-Digital Conversion我用 a=(a/255)*5,因为7805的输出是5V。"


concept 错到完。。。



不能用这样的方法测试电池的电力?还有什么方法?
回复

使用道具 举报

发表于 18-11-2007 04:56 PM | 显示全部楼层
原帖由 syin84 于 18-11-2007 04:30 PM 发表



不能用这样的方法测试电池的电力?还有什么方法?


有个问题要问你,
你要量的"电池的电力"过了7805后也是有分给PIC的对吗?
再想想PIC输入电压少过 5V (就是你说的电池不够力,7805 input < 5V,所以output <5V)会发生什么事?

结论:只是量电池的电压,(前提:PIC的电源一定要5V)可以用这个方法...


[ 本帖最后由 mwl_86 于 18-11-2007 05:00 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 18-11-2007 05:42 PM | 显示全部楼层

回复 #33 mwl_86 的帖子

哦,这样啊。。。
谢谢。

如果要量声音的频率,应该要用什么?
op amp + 555 timer?
回复

使用道具 举报

发表于 18-11-2007 07:25 PM | 显示全部楼层
原帖由 syin84 于 18-11-2007 05:42 PM 发表
哦,这样啊。。。
谢谢。

如果要量声音的频率,应该要用什么?
op amp + 555 timer?



声音有很多 freq , 看你要量什么的。
但是最简单的, 一定要用 mic

你要有一个 generate freq 得东西, 555 timer 应该ok .
你的 555 要能 generate freq 要最少你能量的 5 倍。
回复

使用道具 举报

发表于 18-11-2007 09:29 PM | 显示全部楼层
原帖由 syin84 于 18-11-2007 05:42 PM 发表
哦,这样啊。。。
谢谢。

如果要量声音的频率,应该要用什么?
op amp + 555 timer?

其实,你真正想要作的是什么?
你的project是什么题目?

你本来是要量声音强度,现在要量频率?
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 18-11-2007 10:05 PM | 显示全部楼层

回复 #36 pic 的帖子

其实,你真正想要作的是什么?
你的project是什么题目?

你本来是要量声音强度,现在要量频率?


如果可以的话,我是想要分别主要的几种声音,如电话铃声(铃-铃铃),火警(铃。。。。),门铃(叮咚)。因为声音可以用强度和频率量嘛,想看看那一个比较适用。我找到的资料都好像很复杂,所以就问问看有没有简单实用的方法咯。

其实我是要探测声音,如果可以的话,就分辨不同的声音,然后灯光随着不同的声音而有不同的闪法,LCD就显示那是什么声音。
回复

使用道具 举报

发表于 18-11-2007 11:13 PM | 显示全部楼层
原帖由 syin84 于 18-11-2007 10:05 PM 发表
如果可以的话,我是想要分别主要的几种声音,如电话铃声(铃-铃铃),火警(铃。。。。),门铃(叮咚)。因为声音可以用强度和频率量嘛,想看看那一个比较适用。我找到的资料都好像很复杂,所以就问问看有 ...

那种是Sound Recognition, 初学者应该没有这个能力作。。。
如硬要做,要用dsPIC或其他的DSP。
回复

使用道具 举报

 楼主| 发表于 19-11-2007 12:11 AM | 显示全部楼层

回复 #38 pic 的帖子

那种是Sound Recognition, 初学者应该没有这个能力作。。。
如硬要做,要用dsPIC或其他的DSP。


我找到的就是关于DSP的资料。
那就没有办法啦,就用回之前那个设计先咯。

dsPIC很难用的吗?
回复

使用道具 举报

发表于 19-11-2007 08:31 AM | 显示全部楼层
原帖由 syin84 于 19-11-2007 12:11 AM 发表


我找到的就是关于DSP的资料。
那就没有办法啦,就用回之前那个设计先咯。

dsPIC很难用的吗?


先声明,digital signal processing 我不会,我没学过。

不过,如有好的开发工具,数学好,又明白原理的话,又有写便的sound recognition code modal,其实并不难。
回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


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

GMT+8, 25-12-2024 12:45 PM , Processed in 0.116290 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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