たとえば、100 ヘルツの周波数を設定する必要がある場合、tone
PWM を使用して周波数を設定する関数を使用しました。ここで、PWM を使用して振幅を 0 ~ 5 ボルトの間で変化させる必要があります。tone
と を一緒に使用しanalogWrite
て、周波数を 100 ヘルツに固定analogWrite
し、振幅を変更することはできますか?
上記のコマンドのトーンとアナログの書き込みを同じピンで試したので、別の方法があるかどうか教えてください。機能していません。
関数を使用してそれを行うことはできませんtone
。https://en.wikipedia.org/wiki/Pulse-width_modulationを調べて、PWM を使用して「周波数」がどのように生成されるかを理解してください。この画像は参考になるかもしれません:
異なる電圧が本当に必要な場合は、出力ピンに外付けコンポーネントを追加するか (少なくとも単純な分圧器)、または のみを使用して信号を生成する必要がありますanalogWrite
。後者の場合、コードの複雑さに応じてタイミングの問題が発生する可能性があることに注意してください。
編集
デジタルポテンショメータを検討したことがありますか? その説明を読んだ後、それはあなたが必要としているものとほぼ一致しています.
[...] ステレオの音量を制御する [...]
通常のポテンショメータと同じように機能します。
元の投稿
tone
は設定された周波数でパルスを出力analogWrite
しますが、ピンに何か他のものを出力するように要求するため、答えはノーです。マイクロコントローラーは「混乱」する可能性があり、おそらくやりたいことを実行しません。
この問題を解決するためのより機械的な方法は、ポテンショメータを使用することです。ノブの位置によって抵抗値が変化する可変抵抗器です。なぜこれが機能するのかというと、パルスが含まれておらず、信号を変更せずに信号の強度を下げるだけです。