タグ付けされた質問 「pwm」

1
ArduinoのPWM出力の周波数は何ですか
analogWrite()を使用する場合、Arduinosは通常のPWMにどの周波数を使用しますか? そして、それは異なるArduinoモデルで異なりますか?Mega 2560に特に興味がありますが、モデル間で一貫性があるかどうかも知りたいです。 500 Hzを使用したArduinoへの参照のパスを確認しましたが、これは本当に遅いようです。
22 pwm 

2
一部のピンのPWM周波数が異なるのはなぜですか?
のArduinoリファレンスにanalogWrite()よると、ほとんどのピンのPWM周波数は〜490 Hzです。ただし、Unoのピン5と6、およびLeonardoのピン3と11の場合は約980 Hzです。 なぜこれらが異なるのですか?それは意図的な設計機能ですか、それともハードウェアによって何らかの形で指示されていますか?

5
出力ピンに真のアナログ電圧を出力する方法
私のプログラムに関しては、いくつかの計算を行い、analogWrite関数を使用して、結果に基づいて電圧を出力するプログラムです。しかし、私の問題は、PWMを介したanalogWrite関数がアナログ電圧を出力するという誤解に基づいてプログラミングを行ったということです。実際には、代わりにアナログ電圧を「シミュレート」するだけです。 ここに私のコードの関連部分があります: int pwmOutput = 11; int pwm = 0; void compareNewOldVoltageYes(void) { if(pv_Vnew > pv_Vold && pwm != 255) { ++pwm; //increasing value } else if(pwm != 0) { --pwm; //decreasing } } void compareNewOldVoltageNo(void) { if(pv_Vnew > pv_Vold && pwm != 0) { --pwm; } else if(pwm != …

2
PWM周波数を25 kHzに設定
現在、次のコードで4つのPWMピンを約31 kHzに設定できます。 void setup() { TCCR1B = TCCR1B & B11111000 | B00000001; // Set PWM frequency for D9 & D10: pinMode(pwmPin9, OUTPUT); // Sets the pin as output pinMode(pwmPin10, OUTPUT); // Sets the pin as output TCCR2B = TCCR2B & B11111000 | B00000001; // Set PWM for D3 & D11 …
12 pwm  frequency 

2
PWMビットの解像度を上げる
Arduino UnoのPWMビット解像度を上げたいのですが。現時点では8ビットですが、低すぎると思います。これは、割り込みと遅延の機能を失うことなく可能ですか? 公園 編集このセットアップは16ビットの結果を提供します void setupPWM16() { DDRB |= _BV(PB1) | _BV(PB2); /* set pins as outputs */ TCCR1A = _BV(COM1A1) | _BV(COM1B1) /* non-inverting PWM */ | _BV(WGM11); /* mode 14: fast PWM, TOP=ICR1 */ TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS11); /* prescaler: clock / 8 */ ICR1 …


3
正確な水温管理
私は次の設定をしています: Arduino Duemilanove 光リレーに接続された小型給湯器(PWMは問題ありません) 防水DS18B20温度センサー 不明な量の水(ただし、温度センサーとヒーターは常に水中にあります)。 温度センサーの読み取り値に基づいて、水温を正確に制御するにはどうすればよいですか?正確には、温度センサーの精度(この場合は±0.5°C)までを意味します。すべてがArduinoで実行されるため、追加のデータストレージや処理能力は利用できません。デバッグには、明らかにコンピュータを使用できます。 PIDを実行してみましたが、本当に難しいようです オーバーシュートを避ける-最初に、または(冷たい)水が追加されたときに目標温度を超える 冷水を加えた後、適切に安定させます。
9 pwm  pid 

1
Arduino UnoにデジタルPWMピンが6つしかない場合、最大12のサーボをどのようにサポートできますか?
よると、この: サーボライブラリは、ほとんどのArduinoボードで最大12モーター、Arduino Megaで最大48モーターをサポートします。Mega以外のボードでは、ライブラリを使用すると、ピンにサーボがあるかどうかに関係なく、ピン9および10のanalogWrite()(PWM)機能が無効になります。Megaでは、PWM機能を妨げることなく最大12個のサーボを使用できます。12〜23個のモーターを使用すると、ピン11および12のPWMが無効になります。 しかし、によると、この: デジタルI / Oピン14(そのうち6つはPWM出力を提供) では、PWM出力を提供できるデジタルI / Oピンが6つしかない場合、Unoは6つ以上のサーボをどのように制御できますか?

2
pulseIn()のタイミングはどのくらい正確ですか?
pulseIn()PWMベースのバイナリデータエンコーディングを処理する関数を使用しています。これは、長さが大きく異なるパルス、たとえば500usと1500usを区別するのに適しています。これは、典型的なIRリモコンの処理には十分すぎるほどです。 しかし、2つ以上のパルス長を使用できる独自のIRシステムを作成して、データ転送をより高速に実行できるようにしたいと考えています。理想的には、8進エンコーディングに8つの異なるパルス長を使用したい(例:200us、400us、600usなど)。 pulseIn()ただし、返される値にはかなりのばらつきがあることに気付きました(+/- 10%)。少なくとも一部はIRトランスミッターおよびレシーバーモジュールによって導入されると思いますが、それを確認するのに十分な設備がありません。 その外部エラーを軽減できると仮定すると、そのpulseIn()ような同様のパルスを区別するのに十分正確である可能性がありますか?
8 pwm  pulsein  timing 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.