タグ付けされた質問 「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)への段階的な移行を可能にする必要があります。 コンセプトは:

3
RCアプリケーションがこのような小さいPWMデューティサイクルを使用するのはなぜですか?
ドローンなどのRCアプリケーションは、モーターを駆動するためにPWM信号を使用することを知っています。このPWM信号は主に50 Hz(0.02 s)です。パルス自体は1 msから2 msまで変化します。したがって、1 msパルスは最小モーター回転に対応し、2 msパルスは最大モーター回転に対応します。したがって、基本的には、信号がアイドル状態のままである期間の残りの18ミリ秒です。 なぜPWM信号はこのようなフォーマットを持っているのですか?信号のアクティブ部分が1ミリ秒と10ミリ秒に分散しないのはなぜですか?そのような小さなパルスを使用する利点は何ですか?

4
MOSFETを介したPWMによるヒーターの制御
MOSFETを使用してPWMでヒーターコイル(抵抗〜0.9オーム)を制御しようとしています。PWM変調器はLM393に基づいており、MOSFETはIRFR3704(20V、60A)です。 ヒーターの代わりに1kの抵抗を配置すると、すべて正常に動作し、テストポイントCH1とCH2の波形はほぼ正方形になります。しかし、実際のヒーターをスキームに配置すると、電圧がVthを超える瞬間にパルスの立ち下がりエッジで発振が発生します(チャネルはここで混合されます。黄色のオシロスコープチャネルがテストポイントCH2に接続され、シアンチャネルがCH1に接続されています)。発振振幅は電池電圧よりやや大きく、最大で16Vに達します。私は主にマイクロコントローラーの専門家であり、この種の回路に関する私の知識は乏しいです。ヒーターのインダクタンスなどの影響ですか?それに反対する方法は?

2
PIC12F675 GP4が機能しない
プロジェクトにPIC12F675を使用していますが、1つの点を除いてすべて正常に動作します。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受信コードは、それがCTCを使用して生成する38 kHzの周波数を必要とするため、基本的に同じものです)OCR0A=122。 だから私は(そしてインターネットでこれが言及されているのを見たことがあります)、ソフトウェアPWMを生成するために割り込みOutput Compare AとOutput Compare B割り込みを使用しようとしています。 OCR0AIRコードでも使用されるは、周波数を決定しますが、これは気にしません。そしてOCR0B、LEDの色を変更するために使用するPWMのデューティサイクルを決定します。 OCR0B値をから0に変更することで、デューティサイクルが0〜100%のPWMが得られると期待していますOCR0A。これは何が起こるべきかについての私の理解です: しかし実際に起こっていることはこれです(これはProteus ISISシミュレーションからです): 以下を見るとわかるように、約25%〜75%のデューティサイクルを取得できますが、〜0-25%および〜75-100%の場合、波形はスタックし、変化しません。 黄色の線:ハードウェアPWM REDライン:固定デューティサイクルのソフトウェア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; TCCR0A |= …
8 avr  pwm  interrupts  attiny 


4
明るいLEDは、PWMで調光されていても目の損傷を引き起こす可能性がありますか?
非常に明るいLEDを使用しているので、明るすぎて見たくありません。元の明るさの1/256までPWM(パルス幅変調)で調光しています。1/256デューティサイクルでは、LEDはかなり暗く見えます。(まだかなり見えますが、目がくらむほど明るくはありません。) 私の質問はこれです:LEDは実際には1/256の時間の非常に明るいパルスを送信しているので、これらの明るいパルスは、常時オンで1/256の明るさであった仮想のLEDよりも目を傷つけることができますか? TLC5947 LEDドライバーを使用しているので、計算が正しければ、PWMの周波数は約1 kHzです。(チップの内部クロックは4 MHzで、1 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信号を増幅します。スルーレートは問題ですか?
小型のDCモーターを駆動するMOSFETを駆動するために、PWM信号を5Vから24Vに増幅する必要があります。入力信号の周波数は500Hzで、Arduino uno(ピン9)から供給されます。 典型的な非反転増幅器構成を使用することを考えた信号を増幅するため この回路のシミュレーション – CircuitLabを使用して作成された回路図 TL071などのオペアンプを使用する場合、一般的なスルーレートは16ボルト/マイクロ秒です。これは、オペアンプがPWMの高出力に到達するのに24/16 = 1.5マイクロ秒かかることを意味します。500 HzのPWM周波数では、PWM周期は2000マイクロ秒である必要があるため、これは私には受け入れられそうです。したがって、2000を超える1.5は無視できます。 他に考慮すべきことはありますか?たとえば、MOSFETがゲートを充電するのに必要な時間を考慮する必要がありますか?PWM信号を増幅するより良い方法はありますか? さらに、PWM周波数を高くしたいとします。例えば2.5kHzまで。この場合、PWM周期は380マイクロ秒でなければなりません。380を超える1.5を考慮すると、スルーレートはまだ許容できるようです。

2
トランジスタを使用したロジックレベルコンバーター
トランジスタBC547を使ってロジックレベルコンバータを作ろうとしています。これは、Rpi Gpioの電圧レベルを3.3から5Vに変換するためのものです。次の図に従って回路を配線しました。 PWMアプリケーション用に3.3Vを5Vに変換するためにこれを行いました。回路をGPIO no 17に接続し、高に設定しました 質問: 1)回路にグランドがないのはなぜですか? 2)アースの反対側で電圧を測定しようとしましたが、何も表示されません。問題は何ですか。 ありがとうございました。

2
サーボはマイクロコントローラーではなく、サーボテスターに​​応答します。信号は同じに見えます
TowerPro MG90Dサーボ(Manufactuer Link)(ServoDatabase Link)を持っています。 範囲は180度です(非連続)。 それは私のサーボテスターに​​素晴らしく反応します: テスターで次の7%デューティサイクル(約90度)を確認します。 サーボは正常に応答します。 ただし、servo.write()Arduino Mega 2560クローンを使用すると、サーボが角度出力に反応しません。同じピンの同じコードで問題なく動作する他のいくつかのサーボがあります。 Arduinoで次の7%デューティサイクルを観察しますservo.write(90)。 応答なし。サーボは「リンプ」です。それはいかなるポジションも保持していません。 私がこの質問を書いている間、私はしようと考えましたservo.writeMicroseconds()。 ここにありservo.writeMicroseconds(1450)ます: サーボが反応! これがservo.writeMicroseconds(1472)(working)で、これはprevoius non-working と同じ時間間隔servo.write(90)です! servo.writeMicroseconds(1550) (ワーキング): 違いはなんですか? サーボテスターは49.5Hzで動作しましたが、49.9Hzでservo.write()失敗しました。どういうわけかその0.4Hzが違いを生んだのかと思ったのですが、それでも49.9Hzで動作することがservo.writeMicroseconds()わかります。 上記のスコープキャプチャでは、両方が同じ時間間隔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 …
8 arduino  pwm  signal  servo 

2
PWMで非常に小さいDCモーターを制御しますか?
ウォークマン製の非常に小さなDCモーターを持っているので、マイクロコントローラーから速度を制御したいと思います。そのため、モーターの速度を変更するために、MOSFETを直列に接続し、そのゲートにPWM信号を適用します。 モーターのL&R = 4.7mH、11.5Ohm(Tao 0.41msec)を測定しました。 ベンチ電源を使用してモーターでいくつかの実験を実行したところ、0.2Vの電圧から約0.4Vのどこかまで、それが十分に動作していることがわかります。 私が持っている電源は1.8V(回路のデジタル部分に使用)に設定されているため、ゲート飽和に必要な電圧を供給できないため、標準のMOSFETを使用するのが少し難しくなります。このようなPチャネルMOSFETをいくつか購入しました。 したがって、このセットアップが機能すると考えていたとしても(Vcc->モーター-> FET-> GND)、制御に対して適切な解像度を得ることができず、モーターから使用したほどのトルクを得ることができませんDC電源から実行したときに取得します。 何の周波数かわかりません。私は使用しているはずですが、これを意図したとおりに動作させるために他にどのパラメータをチェックする必要があるのか​​わかりません。これに関するどんな助けでもありがたいです。 * UPDATE * Olinの回答に従って、私は彼が提案した回路を構築しました。私は2N3904トランジスタ、4.7nFのコンデンサと並列に接続された180Ωの抵抗を使用しました。添付されているのは、PWMコード100(256のうち)から実行する場合のコレクター電圧です。Vccは1.8Vです。
8 mosfet  motor  pwm 

1
PWMモード:中央揃えと左揃え
Atmel AT32UC3C2512Cを使用していますが、データシートを見ると、中央揃えと左揃えの2種類の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(または動作している他の電圧)のトランジスタを「伝える」にはどうすればよいですか。 私の質問を理解していただければ幸いです。回答ありがとうございます!!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.