この質問なのですが、Pythonで言語でDCモーターの回転数を変化させるプログラムを作成したとあるのですが、パルス幅変調(Pulse Width Modulation(PWM))を用いれば良いと思います。PWMは、パルスの長さ(幅)を制御することを指します。実際の信号は、波のように電圧を上げたり下げたりを繰り返しており、この電圧を上げたり下げたりする間隔を制御するのがパルス幅変調(PWM)です。このPWMを制御する方法なのですが、Pythonであるならば、"ChangeDutyCycle()"関数を用いるのが良いと思われるます。この関数の"()"内に値を0を入力すれば、DCモーターは、回転を止め、30を入力すれば、DCモーターは、ゆっくり回転し、90を入力すれば、DCモーターは、高速に回転します。この"ChangeDutyCycle()"関数なのすが、具体的な使用する手順なのですが、もしラズベリーパイで"import RPi.GPIO as GPIO"を使用しているならば、まず、変数を準備します。ここではその変数を"pwmDCmotor"とします。まず、Pythonプログラム内で、" pwmDCmotor = GPIO.PWM("DCモーターとラズベリーパイとを接続しているGPIO番号","PWMの初期値") "をPythonプログラムに書き込んでください。ここで、GPIO番号は、12,24など、実際にラズベリーパイとDCモーターとを接続しているGPIO番号を入力してください。PWMの初期値は、0や50など値を記述し、DCモーターの初期値のパルス幅を設定してください。次に、この変数pwmDCmotorを使い、DCモーターの回転数を制御します。DCモーターを止めたいというならば、"pwmDCmotor.ChangeDutyCycle(0)"、DCモーターを高速に回転させたいならば、"pwmDCmotor.ChangeDutyCycle(90)"と記述してください。今回のプログラムは、角度に応じて回転数を変えたいと記述されていたので、まず、ラズベリーパイのGPIOに角度を観測するセンサーを接続し、その値をpythonで取得し、その値をif文などで条件分岐を行えば、DCモーターの回転数を変えることができると思います。
具体的な記述例なのですが、
if 測定した角度の値 > 10 :
pwmDCmotor.ChangeDutyCycle(90)
elif 測定した角度の値 > 1 :
pwmDCmotor.ChangeDutyCycle(60)
else
pwmDCmotor.ChangeDutyCycle(30)
などと記述すれば、角度をとってきてその値に応じてモーターの回転数を変えるコードが記述できると思われます。