文号
827453
阅读
10068
回复
7
收藏
7
关于电击器升压部分的一个问题
2016/11/06
IP:湖北

它里面的升压部分,结构上是一个类似boost的结构。

能产生100多v的电压

只不过并不需要连续的高压输出,所以只是震荡升压对电容充电再放电的过程。

然后我想改造一下它的控制方式,于是我做了两件事:

  1. 在上面引了几条线出来,用自己的arduino来产生pwm波形和控制信号。这可以让它正常工作。
  2. 把升压部分用相同的元件也做一份,还是用自己的arduino控制。

但是2. 的时候却出现了奇怪的情况,我自己做的电路,在同样的信号下,只能产生大概100v的输出(相比起1. 中的还是小了有50~80v)。

而且,有的还只有30v。(这个更奇怪了…… )(解决了,三极管不知道为啥boom了)

我目前使用的参数是:

  1. 电感 1500mH
  2. 电容 0.1uF 500v
  3. 二极管 RS1G
  4. PWM频率 大约13kHz,占空比75%
  5. 单次升压时间 2~10ms

其中这个PWM频率和升压时间直接输入到x宝上买来的电击器是可以正常工作的…… 但是我想让它更小一些……

整个PWM信号产生和升压的电路目前是这样的 gen1.png

而attiny13的程序是这样的,不要问我为啥不用硬中断…… 我画错线了……

#include <avr io.h>
#include <avr delay.h>

long ticking;

int main(){
	// setup PWM/Timer
	// !!! set frequency to ~13kHz
 	asm volatile("push %0"::"r" ("__sreg__"):);
  	asm volatile("cli"::);
  	CLKPR = (1<<clkpce); clkpr="(1<<CLKPCE);" | (0<<clkps2) (0<<clkps1) (0<<clkps0); asm volatile("pop %0"::"r" ("__sreg__"):); tccr0b &="~(_BV(CS00)" _bv(cs02) _bv(wgm02)); tccr0a tcnt0="0;" ticking="0;" ocr0a="90;" i say this would be 13khz, dont ask me why!!! setup io ddrb _bv(2); output input for (;;) { if (!!(pinb _bv(3))) (!ticking){ portb } (tcnt0 <="63)" else (ticking){ _delay_us(200); code></clkpce);></avr></avr>

PS: 初步可以断定,不是电容的问题 不是二极管的问题 不是信号的问题……

电感我是读的它的电感,感觉不大应该有问题才对…… 除非被x宝的电感坑了……

电路的结构我反复核对了好多遍,应该是一致的……

PPS: 我试着换了电感,还是不行…… 这很尴尬了……

[ 修改于10年1个月前 - 2016/11/17 12:52:27 ]
7
yangff作者
10年1个月前IP:湖北
827462
2楼
引用 三水合番:
电感1500mH?1.5H的电感……表示十分害怕……
噗,写错了,1.5mH,1500uH
引用
评论
yangff作者
10年1个月前IP:湖北
827496
3楼
似乎是被劣质三极管坑了…… 再买一波试试……
引用
评论
yangff作者
10年1个月前IP:湖北
827509
5楼
引用 1211:
用大功率三极管的话驱动电阻似乎有点偏大。
并不需要大功率…… 应该是没问题的…… 要么就是这个G1不是2n5551,要么就是我买到的是劣质产品
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的