Questions tagged «pwm»

脉宽调制通常在恒定频率下改变矩形波的占空比。

4
通过MOSFET通过PWM控制加热器
我正在尝试使用MOSFET通过PWM控制加热器线圈(电阻〜0.9欧姆)。PWM调制器基于LM393,MOSFET为IRFR3704(20V,60A)。 如果我用1k电阻代替加热器,则一切运行良好,测试点CH1和CH2处的波形几乎为正方形。但是,当我在方案中放置一个实际的加热器时,在电压超过Vth时(脉冲在此处混合:黄色示波器通道连接到测试点CH2,青色通道连接到CH1)时,脉冲的下降沿会发生振荡。振荡幅度略大于电池电压,并且最大达到16V。我主要是微控制器专家,对这种电路的了解很差。是加热器电感的影响还是其他?怎么反对呢?

3
通过将PWM应用于驱动器的使能输入,可以安全地降低步进电机的功耗吗?
我有一个基于Allegro A4988芯片的步进电机驱动器分线板。我注意到,当电动机静止时,它的保持转矩要比运动时好得多。我有电池供电的配置,并且在大多数情况下,步进电机仅用于保持位置。极限设置电位器已经在分线板上,因此我无法使用微控制器进行更改。 我是否可以将PWM信号施加到电机驱动器的使能引脚上,以改变流入电机的电流,以便在主动运动时可以较高的电流水平驱动电机并减小保持位置的电流? 我对PWM信号对驱动器电路寿命的影响最感兴趣。数据表上没有任何地方表明您可以或不能做这样的事情。

3
混合2轴模拟输入以控制差动电动机驱动的算法
我正在寻找有关如何使用uC(在我的情况下为ATMega328p)正确混合2个模拟操纵杆信号(X轴和Y轴)以控制双差动电机驱动器(“类似油箱的”驱动器)的信息,但是同样适用于任何具有ADC输入和PWM输出的uC): 我有一个模拟摇杆,可提供2个模拟值: (方向)X:0至1023 (油门)Y:0至1023 静止位置是(方向和节气门中立)512,512 节气门前进/方向左为0,0 全前进-全右为1023,0,依此类推 。 电机由2个H桥驱动器控制,每个都有2个PWM引脚(正向,反向)控制,例如: 左电机:-255至255 右电机:-255至255 (正值启用正向PWM引脚,负启用反向PWM引脚,0均禁用) 目的是将操纵杆模拟信号混合以达到以下响应: a)节气门前进,空档方向=车辆向前行驶 b)节气门前进,左方向=车辆向前行驶并向左转弯 c)油门空档,左方向=车辆向左转弯 ...以及类似的其他组合。当然,输出应为“模拟”,即应允许从例如选项a)到b)到c)的逐步过渡。 这个概念是:

2
PIC12F675 GP4不起作用
我正在为一个项目使用PIC12F675,除一件事情外,其他所有东西都工作正常。GP4不能用作数字IO。我已经看了很多配置和代码,但是找不到任何东西。 配置: #pragma config FOSC = INTRCCLK #pragma config WDTE = OFF #pragma config PWRTE = OFF #pragma config MCLRE = OFF #pragma config BOREN = ON #pragma config CP = OFF #pragma config CPD = OFF 码: #include <xc.h> #include <math.h> #include "config.h" #define _XTAL_FREQ 4000000 void delay(unsigned int …
9 pic  c  embedded  programming  audio  oscillator  spark  dc-dc-converter  boost  charge-pump  eagle  analog  battery-charging  failure  humidity  hard-drive  power-supply  battery-charging  charger  solar-energy  solar-charge-controller  pcb  eagle  arduino  voltage  power-supply  usb  charger  power-delivery  resistors  led-strip  series  usb  bootloader  transceiver  digital-logic  integrated-circuit  ram  transistors  led  raspberry-pi  driver  altium  usb  transceiver  piezoelectricity  adc  psoc  arduino  analog  pwm  raspberry-pi  converter  transformer  switch-mode-power-supply  power-electronics  dc-dc-converter  phase-shift  analog  comparator  phototransistor  safety  grounding  current  circuit-protection  rcd  batteries  current  battery-operated  power-consumption  power-electronics  bridge-rectifier  full-bridge  ethernet  resistance  mosfet  ltspice  mosfet-driver  ftdi  synchronous  fifo  microcontroller  avr  atmega  atmega328p  verilog  error  modelsim  power-supply  solar-cell  usb-pd  i2c  uart 


2
ATtiny13A-无法使用CTC模式生成软件PWM
我正在尝试使用ATtiny13A制作遥控RGB LED灯。 我知道ATtiny85更适合于此目的,并且我知道我最终可能无法适应整个代码,但是现在我主要关心的是使用CTC模式下的中断生成软件PWM。 我不能在任何其它模式中操作(除了用快速PWM OCR0A作为TOP这基本上是相同的东西),因为我使用的IR接收器的代码需要它产生使用四氯化碳和38 kHz的频率OCR0A=122。 因此,我试图(并且我已经在互联网上看到人们提到了这一点)使用Output Compare A和Output Compare B中断来生成软件PWM。 OCR0A,IR代码也使用,它确定频率,我不在乎。并且OCR0B,确定将用于更改LED颜色的PWM的占空比。 我期待能够通过改变来获得具有0-100%占空比的PWM OCR0B从价值0到OCR0A。这是我对应该发生的事情的理解: 但是实际上是这样的(这是来自Proteus ISIS仿真): 正如您在下面看到的那样,我能够获得大约25%-75%的占空比,但是对于〜0-25%和〜75-100%,波形只是被卡住了并且不会改变。 黄线:硬件PWM 红线:具有固定占空比的软件PWM 绿线:占空比变化的软件PWM 这是我的代码: #ifndef F_CPU #define F_CPU (9600000UL) // 9.6 MHz #endif #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> int main(void) { cli(); TCCR0A = 0x00; // Init to zero TCCR0B = 0x00; …
8 avr  pwm  interrupts  attiny 


4
即使使用PWM调暗了明亮的LED也会对眼睛造成伤害吗?
我有一个非常亮的LED,它是如此明亮,以至于在全亮度时我都不想看它。我正在使用PWM(脉冲宽度调制)将其调暗至其原始亮度的1/256。在1/256的占空比下,LED会显得暗淡。(仍然很明显,但不会令人眼花bright乱。) 我的问题是:由于LED实际上实际上是在发出1/256的超高亮度脉冲,所以这些明亮的脉冲是否会比假设的LED持续点亮并保持1/256的亮度更严重地伤害眼睛? 我使用的是TLC5947 LED驱动器,因此,如果我的计算正确,则PWM的频率约为1 kHz。(芯片的内部时钟为4 MHz,一个PWM周期为4096个内部时钟周期。) 我正在驱动的LED是RGB 7段显示器。每个段的亮度分别为:红色为244 mcd,绿色为552 mcd,蓝色为100 mcd。因此,在所有7个细分都被照亮的情况下,它将是原来的7倍。
8 led  pwm 

3
我可以循环AC SSR多快?
我有使用arduino驱动的PID /加热器设置。我正在使用Opto 22 MP240D4固态继电器来切换约1A 120V 60 Hz(电阻加热器)。从产品表或数据表中不清楚是否为零交叉导通。而且,仅在上下文中,该应用是一种非常低质量的加热元件,因此从典型的PID设备的角度来看,它有点不寻常。 我想最小化脉冲宽度/密度调制的粒度,以便从系统中获得最佳性能。 显然,我的绝对上限是120 Hz,因为那是零交叉的数量。但是,以高脉冲速度运行它是否有任何危害(在热疲劳,芯片应力等方面)? 此外,脉冲宽度或脉冲密度调制是否有任何优势?

4
用运算放大器放大PWM信号。压摆率有问题吗?
我需要将PWM信号从5V放大到24V,以驱动mosfet,该MOSFET又驱动小型DC电动机。输入信号的频率为500Hz,来自Arduino uno(引脚9)。 为了放大信号,我想到了使用典型的同相放大器配置 模拟此电路 –使用CircuitLab创建的原理图 如果使用TL071等运算放大器,则典型的压摆率为16伏/微秒。这意味着运算放大器将需要24/16 = 1.5微秒才能达到PWM的高输出。这对于我来说是可以接受的,因为在500 Hz PWM频率下,PWM周期应为2000微秒,因此2000上的1.5可以忽略不计。 我还有其他考虑吗?例如,我是否应该考虑mosfet需要给门充电的时间?有没有更好的方法来放大PWM信号? 此外,假设我想增加PWM频率。例如高达2.5kHz。在这种情况下,PWM周期应为380微秒。考虑到1.5在380上,压摆率对于我来说还是可以接受的。

2
使用晶体管的逻辑电平转换器
我正在尝试使用晶体管BC547制作一个逻辑电平转换器。这是将Rpi Gpio的电压电平从3.3转换为5V。我已根据此图为电路接线: 我这样做是为了将3.3V转换为5V以用于PWM应用。我已将电路连接到GPIO No 17并将其设置为高电平 问题: 1)为什么电路中没有接地? 2)我试图测量另一端接地的电压,什么也没显示。是什么问题? 谢谢。

2
伺服响应伺服测试仪,而不响应微控制器。信号看起来一样
我有一个TowerPro MG90D伺服器(制造商链接)(ServoDatabase Link)。 它具有180度范围(非连续)。 它对我的伺服测试仪反应很好: 在测试仪上观察以下7%的占空比(大约90度): 伺服响应良好。 但是,当我servo.write()与Arduino Mega 2560克隆一起使用时,伺服器不会响应任何角度输出。我还有其他几个伺服器,它们在相同的引脚上使用相同的代码也可以正常工作。 使用以下命令在Arduino上观察以下7%的占空比servo.write(90): 没有反应。伺服是“一跳”;它没有担任任何职务。 在写这个问题时,我想到了尝试servo.writeMicroseconds()。 这里是servo.writeMicroseconds(1450): 伺服响应! 这是servo.writeMicroseconds(1472)(工作中),其时间间隔与prevoius非工作中相同servo.write(90)! servo.writeMicroseconds(1550) (工作中): 有什么区别? 伺服测试仪的工作频率servo.write()为49.5Hz ,而失败的频率为49.9Hz。我想知道0.4Hz是否会有所不同,但是后来我看到它servo.writeMicroseconds()也以49.9Hz起作用。 在上面的范围捕获中,可以看出两者servo.write(90)和servo.writeMicroseconds(1472)具有相同的时间间隔: 1,474,560ns HIGH 18,544,640ns LOW 信号是如此相似... 是什么原因导致servo.write()无法工作? 我的代码是尽可能基本的: #include <Servo.h> Servo serv1; void setup() { serv1.attach(3); // Pin 3 } void loop() { serv1.write(90); // No response delay(3000); serv1.writeMicroseconds(1472); …
8 arduino  pwm  signal  servo 

2
用PWM控制非常小的直流电动机?
我有一个非常小的直流电机(来自Walkman),我想通过微控制器控制速度。为此,我想串联一个MOSFET并将PWM信号施加到其栅极,以改变电动机的速度。 我测量了电动机的L&R = 4.7mH,11.5Ohm(Tao 0.41msec)。 从使用台式电源的电动机上进行的一些实验中,我可以看到它在0.2V电压至0.4V左右(这是我所要求的所有范围)内运行良好。 我为此使用的电源设置为1.8V(用于电路的数字部分),因此这使使用标准MOSFET有点困难,因为我无法提供栅极饱和所需的电压。我买了几个P沟道MOSFET像这样。 因此,即使我曾以为这种设置会起作用(Vcc->电动机-> FET-> GND),但我似乎无法在控制上获得良好的分辨率,而且电动机所获得的扭矩也没有达到我使用的水平从直流电源运行时获得。 我不确定是什么频率。我应该使用并且不确定要检查其他哪些参数才能使其按预期工作。任何帮助,将不胜感激。 *更新* 按照奥林的回答,我建立了他建议的电路。我使用了2N3904晶体管,180Ω电阻器和4.7nF电容并联。从PWM代码100(共256个)运行时,集电极电压已连接。Vcc为1.8V。
8 mosfet  motor  pwm 

1
PWM模式:居中对齐和左对齐
我正在使用Atmel AT32UC3C2512C,并在数据表中查找了两种PWM模式:居中对齐和左对齐。 我想知道何时应该使用这些模式中的每一种,以及它们的优缺点。
8 avr  pwm  atmel 

4
晶体管和PWM
我对此不太困惑,也不知道从哪里开始。这个想法是让微控制器或FPGA输出PWM信号(PWM为100%时为5V或3.3V),然后使用晶体管为需要12V运行的通风机供电。 我知道我需要将呼吸机电源的接地端与FPGA(或μC)的电源端连接在一起。之后,我将电阻与晶体管的集电极串联以限制电流。 困扰我的部分是如何连接基座和PWM输出引脚?如果要使3.3V为100%,我需要选择哪个电阻值?如果我希望5V为100%,则需要哪个值?我的意思是,当需要以100%的容量为呼吸机供电时,我该如何“告诉”一个3.3V(或我正在运行的任何其他电压)的晶体管? 希望你能理解我的问题。谢谢您的任何回答!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.