問題タブ [pwm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
pic - pic 16F877のPWM解像度
ここでは、PIC コンパイラに pic 16f877 MCU と mikroc を使用して PWM 信号を理解しています。データシートによると、この MCU は PWM で 10 ビットの分解能を持っています。この決議が何を意味するのか理解できません。それを使用してモーターに電力を供給すると、1024 の異なる速度を得ることができるということですか。これは、LEDの光を徐々に増やしてから再び減らすためにmikrocで書いたプログラムです。
しかし、これは期待される結果をもたらしません。LED が徐々に点滅し、突然オフになり、再び徐々に点滅します。しかし、行
while(i != 1023)
を `while(i != 255) に変更すると、期待される結果が得られます。
10ビットの解像度が何を意味するのか知りたいのですが、それを間違って理解したのか、それとも何か間違ったことをしているのでしょうか。
助けてください....
python - RuntimeError: /dev/mem にアクセスできません
Python GPIO PWM を使用して、RPi に接続された一連の LED を制御しようとしています。Python スクリプトを実行すると、次のエラーが表示されます。
スクリプトをルートとして実行しようとしました(sudoと実際にルートとしてログインした両方で)。他のすべての GPIO 機能は正常に動作し、apt を介して python-rpi.gpio の更新とアンインストール/再インストールを試みました。ここに私が実行しているコードがあります。
ここにある例に基づいていますが、まだバグがある可能性があります。私はこれにかなり苦労しているので、提供された助けがあれば大歓迎です. ありがとう!
timer - Arduino Uno PWM ピンの競合
タンクの 2 つのモーターを制御するために、 L298Nチップに基づいてこのモーター シールドを作成しました。一方のモーターにはピン 5 と 6 を使用し、もう一方のモーターにはピン 10 と 11 を使用します。
IR リモートでタンクを制御するためにTSOP 4838を追加しようとしているときに、ピン 10/11 のモーターを逆方向に動かすと、全速力、つまりピン 11 の HIGH (255) 値でしか機能しないことに気付きました。その値を下回ると、ピン 11 には何も出力されません (これらのピンで測定された電圧は 0 V です)。
リモートには、このライブラリを使用します。IRレシーバーはピン 2 に接続されています(ピンは関係ありません)。問題は、ライブラリ コード自体です。IR リスニングを有効にする回線がirrecv.enableIRIn();
問題の原因です。内部ArduinoタイマーとシールドによるPWMに使用されるピンの競合があることを知りました。
これは、逆にモーターに電力を供給するコードです。
ここで、 Arduino Unoのタイマーで使用されるピンが次のとおりであることがわかりました。
- ピン 5 と 6: Timer0 によって制御
- ピン 9 と 10: Timer1 によって制御
- ピン 11 と 3: Timer2 によって制御
だから私の質問は:
インストラクタブルのシールドが PWM にピン 10 と 11 を使用するのはなぜですか? それらは 2 つの異なるタイマーに対応します。なぜ9と10ではないのですか?
モーター シールドと共に IR を使用するには、どのタイマーを IR ライブラリで使用するように構成する必要がありますか?
答えが 2 の場合は、行のコメントを解除する必要があります
IRremoteInt.h
。else
timer1 と timer2 しかありませんが、68 行目でUno が分岐すると思います。なぜ timer0 を Uno に使用できなかったのだろうか。
最後の選択肢として、切断痕を残して再はんだ付けしたいのですが、シールドが使用するピンを変更するという別の可能性もありますが、どれですか? また、これはデフォルト以外のピンでタイマーを PWM に設定することとペアになると推測していますが、タイマー/割り込みについては何も知らず、Arduino と C の知識は限られています。
問題を解決するだけでなく学びたいので、これを長い質問にしました。質問されたこと以上のことを自由に説明してください。
解決策を探しているときに、PWMまたはタイマーを使用するときに留意すべき他の競合も見つかりました。
- Timer0は8 ビット タイマーで、最大値 255 を保持できます
delay()
。millis()
- Timer1は 16 ビット タイマーで、最大 65535 (符号なし 16 ビット整数) を保持できます。Arduino サーボ ライブラリは、このタイマーを使用します。
- Timer2
tone()
は、Arduino関数で使用される 8 ビット タイマーです。
そしてもちろん、IRremoteライブラリは を使用するTIMER_RESET
ため、使用するタイマーによっては、関連するピンと競合する可能性があります。
c - Arduino PWMコードは、あるピンではなく別のピンで動作します
Arduino UNOを使用しています。次のコードは PIN 10 では機能しますが、PIN 6 では機能しません。理由を教えてください。PWMピンの各ペアが異なるタイマーを使用していることは知っていますが、タイマーには何もしていません!! これがコードです。
led = 10
行を に変更するだけled = 6
で、コードが機能しなくなります。つまり、PIN 6 の出力は、意図した PWM 波ではなくゼロになります。
任意の提案をいただければ幸いです。
vb.net - Vb.net によるパルス幅変調 (PWM)
ブール値パラメーターを持つ関数を使用して、ボード上のいくつかのピンの出力を制御できます。Vb.Net を使用して PWM 信号を送信することはできますか?
c - PIC 18 PWM で DC モーターを制御する
PWMを使用してDCモーターの速度を制御するためにPIC 18マイクロコントローラーを使用しています。以下のコードを使用して、なんとか回転させることができました。そして、私の H ブリッジが 100% 機能することをテストしました。
ただし、回路のスイッチをオンにすると、モーターに 12V、ロジックに 5V が供給され、RS232 通信モジュールを使用して回路にコマンドを送信すると (テスト済みで、正しく受信および送信されます)、プログラムがリセットされ、ベンチ電源の電流は 0A に落ちます。モーターが回転しようとしているかのように、わずかにぎくしゃくすることがありますが、その後停止します。
私が間違っている可能性のあるアイデアはありますか?
microcontroller - L293D morot Driver および Atmega8 とのインターフェース中に DC モーターの速度が低すぎる
L293DドライバーとAtmega8でPWMなしで6v DCモーターを駆動しようとしています。問題は、モーターを L293D ドライバーに接続しているときに速度が非常に遅くなることです。しかし、モーターに直接6V DCを供給すると、よく回転します。L293DのV2(モーター電源)ピンで外部6V電源を使用していますが、改善されません。ローターを手で回さないとモーターが回りません。PWM を使用しない場合の問題は残っていますか? 私のコードはここにあります: