最終更新: moonlight_aska 2017年10月27日(金) 21:46:34履歴
- PwmActivity.java
- PeripheralManagerServiceクラスのインスタンスを生成する.
- PeripheralManagerService#openPwmメソッドで, PIN名を指定してPwmクラスのオブジェクトを取得する.
- Pwm#setPwmFreuencyHzメソッドで, PWM周期を設定する.
- Pwm#setPwmDutyCycleメソッドで, デューティ比を設定する.
- Pwm#getEnabledメソッドで, PWM制御を有効にする.
- Pwm#closeメソッドでピンを解放する.
package com.moonlight_aska.androidthings.pwm;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import com.google.android.things.pio.PeripheralManagerService;
import com.google.android.things.pio.Pwm;
import java.io.IOException;
public class PwmActivity extends Activity {
private static final String TAG = "PwmActivity";
private static final String PIN_NAME = "PWM0"; // GPIO18
private Pwm mPwm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PeripheralManagerService manager = new PeripheralManagerService();
try {
// PWMピンオープン
mPwm = manager.openPwm(PIN_NAME);
// 周波数の設定
mPwm.setPwmFrequencyHz(100);
// Dutyの設定
mPwm.setPwmDutyCycle(50);
// PWM信号enable
mPwm.setEnabled(true);
} catch (IOException e){
Log.e(TAG, "Error on PeripheralIO API", e);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mPwm != null) {
try {
mPwm.close();
} catch (IOException e) {
Log.e(TAG, "Error on PeripheralIO API", e);
} finally {
mPwm = null;
}
}
}
}
- 動作例
(1) Freq : 100Hz, Duty : 50%
(2) Freq : 100Hz, Duty : 10%
(3) Freq : 50Hz, Duty : 50%
タグ
コメントをかく