佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

12
返回列表 发新帖
楼主: 人无完人

pic来控制电梯?

[复制链接]
发表于 14-8-2006 09:46 AM | 显示全部楼层
原帖由 fritlizt 于 13-8-2006 11:00 PM 发表
根据前辈讲的。。。大概是这样, 才会isolate掉noise对吗??
请多多指点, 哈。。谢谢。

很报歉的说,你画的电路的隔离(Isolation)功能= 0%。(没有isolated ground,没有isolated power  )
电路直接用Relay控制好了, 不用搞opto-coupler。0.1uF也不需要 (因为是Output), 在这个应用来说。

这些都不重要, 你要知道是什么原因促使你的PIC MCU reset, 你才能对症下药。
三种 reset 重置:
1。Brownout reset
2。Power Up reset
3。MCLR reset。

你没很详细的讲是什么情况下reset,用什么电源, code怎样写,电路怎样接, 所以这里我不建议什么。
回复

使用道具 举报


ADVERTISEMENT

发表于 14-8-2006 09:51 AM | 显示全部楼层
原帖由 南极星 于 14-8-2006 12:25 AM 发表
PIC 还不够好。 使用更精准的MCU吧,比如 motorola 68 HC11 或 ARM, ATMEL etc....

呵呵。。。是什么让你觉得PIC MCU 还不够好,不够精准呢?你听说的?老师说的?或亲身体验?  你这样说会可能会让人误会PIC MCU 不好哦。。。

告诉大家, Microchip PIC 在全世界的MCU销售市场排名第二,第一名是Motorola,Atmel 好像是第4,5名以外。(Atmel的排名可能有错, 我会查证。)
回复

使用道具 举报

发表于 14-8-2006 11:56 AM | 显示全部楼层
原帖由 pic 于 14-8-2006 09:46 AM 发表

很报歉的说,你画的电路的隔离(Isolation)功能= 0%。(没有isolated ground,没有isolated power  )
电路直接用Relay控制好了, 不用搞opto-coupler。0.1uF也不需要 (因为是Output), 在这个应用来说。

...

嗯。。。。。这里我是用pic来画, 哈。。。因为觉得都是一样的吧。。不过看起来case是不一样的。。

我现在用的是at89s51.我之前就只是用relay来控制24vmotor., 不过时常都会有reset问题. 电路就像我画的一样,只是没有optoisolator,还有input那边没有0.1uF的cap.
我就怀疑是relay那边有noise,就用optoisolator来控制relay,然后再用relay来控制24v motor.然后还是有问题。 过后我就连power 都seperate了, 问题减少了, 不过还是有reset问题。。。
at89s51本身只有一个reset,就是master reset.到现在我都还不动是什么问题。+_+
回复

使用道具 举报

发表于 14-8-2006 11:59 AM | 显示全部楼层
原帖由 pic 于 14-8-2006 09:46 AM 发表

很报歉的说,你画的电路的隔离(Isolation)功能= 0%。(没有isolated ground,没有isolated power  )
电路直接用Relay控制好了, 不用搞opto-coupler。0.1uF也不需要 (因为是Output), 在这个应用来说。

...


有时候, 基于电路设计上的limitation,我不能seperate power.只能用一个power source, , 就是说mcu ground到最后还是会和motor的ground common 那我要怎样才能避免这个问题呢〉??
回复

使用道具 举报

发表于 14-8-2006 12:08 PM | 显示全部楼层
原帖由 pic 于 14-8-2006 09:51 AM 发表

呵呵。。。是什么让你觉得PIC MCU 还不够好,不够精准呢?你听说的?老师说的?或亲身体验?  你这样说会可能会让人误会PIC MCU 不好哦。。。

告诉大家, Microchip PIC 在全世界的MCU销售市场排名第二, ...



对。我老师说的。 他说虽然很多人用pic,但是多人用的未必是最好的。在用于military这领域上,必需用很precise的MCU, 比如我所说过的。
回复

使用道具 举报

发表于 14-8-2006 04:42 PM | 显示全部楼层
原帖由 南极星 于 14-8-2006 12:08 PM 发表



对。我老师说的。 他说虽然很多人用pic,但是多人用的未必是最好的。在用于military这领域上,必需用很precise的MCU, 比如我所说过的。

呵呵。。。早在几年前的话,我是会同意你老师说的, 但是。。。你的老师可能要update一下了。。。

迷思:
所谓Military (军用),用的其实是一样的晶片(silicon),只是测试很严格, full test, Hi temperature (150degC), low temperature  (-40degC), 较高和低的输入/工作电压,如能一一通过测试,pass 了, 就可以Mark成军用 (Military Application)。

商用的, 0~80degC, 工业用 -40degC~ 125degC。

像fritlizt 的问题,用任何的MCU都可以,Atmel也没问题,问题只是他的外围电路没有作好。
就算他用最precise的MCU,还是有问题的。好像开车技术不好的人, 开多么精良的汽车还是会出事的。
回复

使用道具 举报

Follow Us
发表于 14-8-2006 04:46 PM | 显示全部楼层
我现在用的是at89s51.我之前就只是用relay来控制24vmotor., 不过时常都会有reset问题. 电路就像我画的一样,只是没有optoisolator,还有input那边没有0.1uF的cap.
我就怀疑是relay那边有noise,就用optoisolator来控制relay,然后再用relay来控制24v motor.然后还是有问题。

因为你没有对症下药。

过后我就连power 都seperate了, 问题减少了, 不过还是有reset问题。。。
at89s51本身只有一个reset,就是master reset.到现在我都还不动是什么问题。+_+
有时候, 基于电路设计上的limitation,我不能seperate power.只能用一个power source, , 就是说mcu ground到最后还是会和motor的ground common 那我要怎样才能避免这个问题呢〉??

这些问题, 就算是用single power,common ground, 也可以解决的。
老实说, 是有技巧, 有密技的,是很简单,书里有教过,但很多人都忽略了。
也很对不起, 我不想公开,那是我的饭碗,吃饭的本钱, 请见谅。
但你可以问, 我会提示。

我设计过很多汽车的accessory产品, 告诉你, 汽车的noise多的很呢。。。但都能解决的。。。
我的忠告是:对症下药
回复

使用道具 举报

发表于 14-8-2006 06:41 PM | 显示全部楼层
原帖由 pic 于 14-8-2006 04:46 PM 发表

因为你没有对症下药。


这些问题, 就算是用single power,common ground, 也可以解决的。
老实说, 是有技巧, 有密技的,是很简单,书里有教过,但很多人都忽略了。
也很对不起, 我不想公开,那是我 ...

现在啊,最大的问题还是---〉我不懂问题出在哪里。trial and error很多次了。。。到现在还没有solve到这个问题。
我还是新手啦。。。。刚踏进degree第三年, 设计经验不足,可能还没学到吧.
不过, 对于你的回复, 谢谢
回复

使用道具 举报


ADVERTISEMENT

发表于 16-8-2006 10:35 AM | 显示全部楼层
原帖由 fritlizt 于 13-8-2006 10:34 PM 发表

不太懂。。。
为什么呢??
opto 都已经isolate io pins和motor driver那边了。。为何noise还会flow back 呢??


fritlizt,

inductive noise = 磁场干扰

你用的 motor  是 DC motor。 DC motor 的构造有个 brush 接到 rotor armature coil。 当 motor 旋转时, brush 及 armature coil 的电路以高速 断 接 断 接 断 接,而在电路断时产生非常强的 electromagnetic noise, 从而干扰 MCU 的操作。

如果不信,把 DC motor 移到距离 MCU 5 meter 以上, 就发现 MCU 没那么多干扰了。

请问, motor 及 MCU 距离多远?




建议:
1。 circuit 里的 motor +/- 脚 没有 ceramic capacitor。 加一个 100nF~220nF 的 ceramic capacitor 在 motor +/- 脚会有很大的帮助。
2。 motor 如果不必 reverse direction, 那么,就加一个 diode (free-wheeling)在 motor 脚, 正如你在 relay 12V coil 加的 diode。
3。 MCU 没有用到的 I/O pin, 全接到 gnd。
4。 加 pull-up resisotr 在所有 有用到的 input/output pin。
5。 把所有 MCU 及 其他 component circuit 接到一个 ground plane。 (叫 GND1)
6。 把所有 power circuit(如 reply,motor) 接到第二个 ground。 (叫 GND2)
7。 用 ferrite beed 接 GND1 及 GND2。 (一条电线穿过 ferrite beed)

其中1,2,3,4 非常重要。

*这是我在我 final year project 里的一些经验。希望能帮到你。
(我将没有 internet 至 24/08, 有什么可以帮忙的也要等到25/08)
回复

使用道具 举报

发表于 16-8-2006 11:02 AM | 显示全部楼层
原帖由 GeMan 于 16-8-2006 10:35 AM 发表


fritlizt,

inductive noise = 磁场干扰

你用的 motor  是 DC motor。 DC motor 的构造有个 brush 接到 rotor armature coil。 当 motor 旋转时, brush 及 armature coil 的电路以高速 断 接 断 接 断 ...

99% 赞成你的观点。

如果不信,把 DC motor 移到距离 MCU 5 meter 以上, 就发现 MCU 没那么多干扰了。

不一定, 我的遥控直升机(电动),Motor离MCU 只有几寸, 小小的motor, 拉4~5Amp的电 (12V)也没问题。

磁场干扰, 只是间接的问题。

[ 本帖最后由 pic 于 16-8-2006 11:16 AM 编辑 ]
回复

使用道具 举报

发表于 16-8-2006 12:01 PM | 显示全部楼层
1。 circuit 里的 motor +/- 脚 没有 ceramic capacitor。 加一个 100nF~220nF 的 ceramic capacitor 在 motor +/- 脚会有很大的帮助。

3粒cap会更好,Motor + 去 motor 金属壳, Motor - 去 motor 金属壳, Motor +  和  motor - 。






3。 MCU 没有用到的 I/O pin, 全接到 gnd。
4。 加 pull-up resisotr 在所有 有用到的 input/output pin。

另一个方法是把没用的I/O set 成Output (TRIS), 然后set 成Low。
(节省成本。)
回复

使用道具 举报

发表于 16-8-2006 01:08 PM | 显示全部楼层
原帖由 GeMan 于 16-8-2006 10:35 AM 发表


建议:
1。 circuit 里的 motor +/- 脚 没有 ceramic capacitor。 加一个 100nF~220nF 的 ceramic capacitor 在 motor +/- 脚会有很大的帮助。
2。 motor 如果不必 reverse direction, 那么,就加一个 diode (free-wheeling)在 motor 脚, 正如你在 relay 12V coil 加的 diode。
3。 MCU 没有用到的 I/O pin, 全接到 gnd。
4。 加 pull-up resisotr 在所有 有用到的 input/output pin。
5。 把所有 MCU 及 其他 component circuit 接到一个 ground plane。 (叫 GND1)
6。 把所有 power circuit(如 reply,motor) 接到第二个 ground。 (叫 GND2)
7。 用  接 GND1 及 GND2。 (一条电线穿过 ferrite beed)

谢谢指导。。我去试试看。还有, 请问,为什么要加pull up resistor在有用到的io??
对了, 什么是ferrite beed??

我的motor离mcu大概是4-5inchs
回复

使用道具 举报

发表于 16-8-2006 01:09 PM | 显示全部楼层
原帖由 pic 于 16-8-2006 12:01 PM 发表

3粒cap会更好,Motor + 去 motor 金属壳, Motor - 去 motor 金属壳, Motor +  和  motor - 。





http ...

那三个cemaric cap都有接。。。不过dioe就没有, 因为要bidirectional.
回复

使用道具 举报

发表于 16-8-2006 01:10 PM | 显示全部楼层
原帖由 pic 于 16-8-2006 12:01 PM 发表

3粒cap会更好,Motor + 去 motor 金属壳, Motor - 去 motor 金属壳, Motor +  和  motor - 。





http ...

那三个cemaric cap都有接。。。不过dioe就没有, 因为要bidirectional.
8051没有的set tris啊。。。。全部pin可以直接用as  input/output除了port0要加pull up resistor才可以当作 io.

[ 本帖最后由 fritlizt 于 16-8-2006 01:12 PM 编辑 ]
回复

使用道具 举报

发表于 16-8-2006 02:28 PM | 显示全部楼层
原帖由 fritlizt 于 16-8-2006 01:08 PM 发表

谢谢指导。。我去试试看。还有, 请问,为什么要加pull up resistor在有用到的io??
对了, 什么是ferrite beed??

我的motor离mcu大概是4-5inchs



--为什么要加pull up resistor在有用到的io??
##因为 electromagnetic noise (也就是 electromagnetic wave = radio frequency wave) 会经过空间 (不是电路), 干扰所有 close-loop circuit , 产生/形成 inductive current。 pull-up resistor 可以消耗大部分的 inductive current。


我以前的 final year project 要做一艘船, 4 个 12V DC motor。  MCU 距离 motor 3~5寸。 起初 MCU 一直 reset,后来加了以上的 modification 就没问题了。

final note: 很肯定 program code 没问题?
回复

使用道具 举报

发表于 16-8-2006 02:32 PM | 显示全部楼层
pic ,

你也有 rc heli ?

我到现在还不控制 rc heli 飞。
回复

使用道具 举报


ADVERTISEMENT

发表于 16-8-2006 04:47 PM | 显示全部楼层
原帖由 GeMan 于 16-8-2006 02:28 PM 发表



--为什么要加pull up resistor在有用到的io??
##因为 electromagnetic noise (也就是 electromagnetic wave = radio frequency wave) 会经过空间 (不是电路), 干扰所有 close-loop circuit ,  ...

谢谢解答。

en.....program肯定没问题。
回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


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

GMT+8, 23-12-2024 01:07 PM , Processed in 0.124969 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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