传感器厂家
免费服务热线

Free service

hotline

010-00000000
传感器厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

AVR单片机可控直流电源

发布时间:2020-06-30 21:13:09 阅读: 来源:传感器厂家

介绍:单片机可控的直流电源使用ATMEL单片机 AT90S4433单片机可控。它有一个Lcd显示,你可以从你的Linux服务器通过RS232串口发送命令给它。 它设计的很棒。虽然是Linux下的作品,但是它真的很棒!

这个单片机可控的直流电源不是一个简单的电路。但是我能保证你用到它时, 如果你没有,你会后悔的。它很稳定可靠,而且在技术上它也是很有趣的, 因为你会学到如何在没有一个模/数转换芯片的情况下如何产生一个模拟直流电源。

主电路图(点击可放大): 接近高电压部分的电路图(点击可放大): 如何在矩阵中连接一个按键(点击可放大): 主电路板,顶视图(点击可放大): 这个板子很适合业余电子爱好者。蓝色的层是要被腐蚀掉后留下的铜箔。红色的表示连线。 这个单面板的制作很容易,不需要太精确的。你可以在板上布线最短的线(红色的)。 但是我在eagle上可不成。 在高压电路中只有很少的元器件,它可以用一个面包板来做(这种板子有很多的过孔)。 主板和电源板通过JP2和JP3插头的连线连接。 你会注意到主板的地线连接到了直流电源的输出。 这也是我们需要2个变压器的原因(一个是在电源板上,一个是和单片机和运放在一起)。

工作原理看一下主板的原理图你可以看到它从逻辑上分为2个部分,一个部分在电路图中标有 “电流控制”,另一个部分标有“电压控制”。它们是2个独立的控制回路。 一个回路控制输出电压另一路电流流过0.275欧姆的电阻上,压降等于电流。这2个部分通过二极管D2和D3“联系”到一起。这些二级管在电路中的作用就象数字电路中的或门一样。如果电流过大那么电流控制电路会降低电压直到某个限定值,否则(在电流不大的情况下) 电压控制部分会控制整流输出的直流电压。 这个或逻辑是成立的,因为三极管T3通过R19连到了+5V。 如果这里没有D2和D3后面的运放电路存在,你可以得到最大的输出。 控制电路是通过减小T3基极电压(最小可接地)来控制输出电压的。 电压控制回路通过调整IC6B的5脚的电平来实现调压。换句话来讲, 脚5的电压等于由R15,R10和R16决定的放大系数乘电压输出。 电流控制也是一样,不同的是在R30上的压降等于最大的输出电流。 为了把输出电压或者电流调整到某个的值,我们需要控制2个点的电压 (IC6B脚5和R30上的压降)。这就是单片机要做的事.... 但是,单片机怎么产生和整流一个直流电源呢?看下图:

你会看到一个脉冲信号如何变成一个直流信号的。 你做到这点,需要把(脉冲)信号通过一个截止频率是信号频率1/100 (或者比100更大)的低通滤波器。 由于我们的单片机运行在4Mhz,它做到这么一个低通滤波器不成问题的。即使我们使用软件成生信号,我们仍可以得到很小的khz的信号并且滤波器会依旧很小。 在图片上方和下方中间的电路图部分叫做脉冲宽度调制。 通过改变脉冲的长度我们可以控制滤波器后的直流电压。 酷吗?我们可以使用数字信号产生额外的直流电压。 AT90S4433 单片机有2个内部的计数器。一个16位宽,一个8位宽。 16位的计数器有PWM(脉冲宽度调制)的能力,它在单片机内部由硬件实现了10bit精度脉冲宽度调制。 8位的没有但是我们可以使用软件模拟实现。它的速度还是够快。我们使用16位的计数器来实现电压调制,可以实现10位精度,1023等分输入电压。 8位计数器负责控制电流,它是8位精度,可以255等分1-3000mA的电流,就是说可以得到12mA(或者更少)的电流。这对于电流控制来说是足够了。 电流剩下的部分是电源供应部分,参考电压部分(7805的输出是我们参考点) 还有保证当开关电源时,电源保持不跳动部分。

软件:这里我们关注的是软件的PWM(脉冲宽度调制)。 在软件PWM中,用到了变量ipwm_phase和变量ipwm_h。我们使8位的计数器运行在中断模式下,每当中断溢出,中断处理程序 “SIGNAL(SIG_OVERFLOW0)”会被调用。在中断处理程序里,我们检查变量ipwm_phase 来决定是产生1还是0。之后,重启动计数器。很简单。 软件不复杂但是如果你想搞懂这些东西,你需要阅读4433的手册(看下面的参考)。 4433是8位的单片机并且它的计算能力有限。决定用户给定电压大小的精确的脉冲宽度 需要24位的除法和乘法。我们的电源有7个按键。6个按键步进电流和电压大小,另一个按键是“待命”。 使用待命按键时,你可以以暂时停掉电源的同时调节电压和电流的上限。这些按键的状态在主程序中被”上拉“了。变量ignorebutton用于按键去抖。你用手指按动按键时,它会上下跳动的。人是感觉不到的,但是单片机运行很快, 它会读到到开,关,开,关...这些状态的,变量ignorebutton计数到一定值再去读,这样就去抖动了。

象任何的电路一样你把它焊好后,不要直接连接电源而是应该一步一步的测试它, 这样做才好。这样你可以找到你做电路时的错误。

把主电路板的所有元器件装齐但是不要把IC芯片装到插座上。 拿一个9伏的电池,正极连接电路图中标注“AC_POWER”接头的脚2和负极连接脚1。 用一个电压表检查在max232的脚8和脚16之间的和单片机脚7和脚8的电压。 在运放上你会发现它的正电源达到9伏。 把9伏电池1脚接正,脚2接负。检查一下运放的负电源你会发现是负9伏的样子。 如果前面的测试通过了,电源检测就通过了。这样, 就可以把max232和单片机芯片插到插座里了。 再次使用9伏电池连接。这样,正5伏电源就有供应了。 连接编程线一连接端计算机并口,一端连接电流板上的编程插座。 更新软件包(下载地址见参考)。 进入解包的目录并且键入:make avr_led_lcd_xmake testloadmake ttydevinit这样测试软件在板子上运行了。lcd上会显示“hello”。红色的led会闪烁。 如果你连接了串口到你的计算机上,你可以看到“ok”打印在屏幕上。(使用ttydevinit初始化串口,如果用串口1, 键入cat /dev/ttyS0;如果使用串口2,键入cat /dev/ttyS1)。 现在组装电源部分但是不要装主变压器。 把9伏电池连接到变压器连的地方。 无论连接的极性,在4700uF的电容总会被稳压到9伏。 用电压表量一下。 所有的测试都通过后,最后检查一下连线。 然后,连接变压器,上电。 因为运放没有插到插座里,所以你会得到电源的最大的输出电压。 量一下它,但是要注意不要短路否则会烧电路板的, 因为没有短路保护。 断电。把运放插到插座里,连接编程电缆,上电,键入: makemake load这样电源供应就有了所有的功能。注意的是编程电缆连接的时候, 输出电压有一点下降。如果你想得到精确的输出电流和电压的话, 不要连接它

临沂制作防静电工服

内蒙古定做西装

石家庄西服定做