Things - 펄스 폭 변조 (PWM) 번역
What's this?
htps : //에서 ゔぇぺぺr. 안 d로이 d. 코 m/테오 gs/sdk/피오/pwm. HTML
번역
PWM
펄스 폭 변조 (PWM)은 디지털 출력 핀을 사용하여 외부 장치에 비례 제어 신호를 적용하는 방법 중 하나입니다. 예를 들어, 서보 모터는 펄스 폭 변조(PWM) 신호를 수신하여 회전 각도를 결정합니다. 또한 LCD 디스플레이는 펄스 폭 변조(PWM) 신호의 평균값에 따라 휘도를 조정합니다.
PWM은 소정의 주파수 및 듀티 사이클에서 발진하는 디지털 신호(구형파 신호)입니다.
펄스 폭 변조 (PWM)은 디지털 출력 핀을 사용하여 외부 장치에 비례 제어 신호를 적용하는 방법 중 하나입니다. 예를 들어, 서보 모터는 펄스 폭 변조(PWM) 신호를 수신하여 회전 각도를 결정합니다. 또한 LCD 디스플레이는 펄스 폭 변조(PWM) 신호의 평균값에 따라 휘도를 조정합니다.
PWM은 소정의 주파수 및 듀티 사이클에서 발진하는 디지털 신호(구형파 신호)입니다.
예: PWM 신호의 듀티를 50%로 설정하면 각 사이클의 절반이 활성화됩니다.
듀티 사이클을 조정하여 신호의 평균 "온"시간을 증가 또는 감소시킬 수 있습니다.
다음 그림은 0%, 25%, 100% 듀티의 펄스열을 보여줍니다.
주: 많은 PWM 하드는 사이클마다 적어도 한번은 값이 변경될 필요가 있기 때문에, 듀티비가 0%, 100%이어도 각 사이클의 시작에는 값의 변화가 있습니다.
연결 관리
PWM 포트와 연결하려면 포트 이름을 알아야 합니다. 개발할 때 PeripheralManagerService.getPwmList()를 호출하여 사용 가능한 포트 이름 목록을 얻을 수 있습니다.
PeripheralManagerService manager = new PeripheralManagerService();
List<String> portList = manager.getPwmList();
if (portList.isEmpty()) {
Log.i(TAG, "No PWM port available on this device.");
} else {
Log.i(TAG, "List of available ports: " + portList);
}
연결해야 할 포트 이름을 알면 PeripheralManagerService 클래스를 사용하여 연결할 수 있습니다. 포트 사용이 완료되면 연결을 닫고 리소스를 해제합니다. 또한 연결된 연결을 닫을 때까지 동일한 포트에서 새 연결을 시작할 수 없습니다. 연결을 닫으려면 close() 메서드를 사용합니다.
public class HomeActivity extends Activity {
// PWM Name
private static final String PWM_NAME = ...;
private Pwm mPwm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Attempt to access the PWM port
try {
mPwm = mPeripheralManager.openPwm(PWM_NAME);
} catch (IOException e) {
Log.w(TAG, "Unable to access PWM", e);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mPwm != null) {
try {
mPwm.close();
mPwm = null;
} catch (IOException e) {
Log.w(TAG, "Unable to close PWM", e);
}
}
}
}
펄스 폭 변조 (PWM) 설정 및 제어
연결 후 펄스 폭 변조 (PWM)를 먼저 활성화하기 전에 타이밍 파라미터를 설정해야합니다. 펄스 폭 변조(PWM)를 활성화하려면 setEnabled(true)를 실행합니다. 만약 일시적으로 무효로 할 필요가 있는 경우는 setEnabled(false)를 실행하는 것으로 무효화할 수가 있습니다.
다음 코드는 듀티비 25%(각 사이클에서 2.08ms가 On)로 120Hz(8.33ms주기의 사이클)의 펄스폭 변조(PWM) 신호를 발하도록 설정하고 있습니다
public void initializePwm(Pwm pwm) throws IOException {
pwm.setPwmFrequencyHz(120);
pwm.setPwmDutyCycle(25);
// Enable the PWM signal
pwm.setEnabled(true);
}
PeripheralManagerService manager = new PeripheralManagerService();
List<String> portList = manager.getPwmList();
if (portList.isEmpty()) {
Log.i(TAG, "No PWM port available on this device.");
} else {
Log.i(TAG, "List of available ports: " + portList);
}
public class HomeActivity extends Activity {
// PWM Name
private static final String PWM_NAME = ...;
private Pwm mPwm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Attempt to access the PWM port
try {
mPwm = mPeripheralManager.openPwm(PWM_NAME);
} catch (IOException e) {
Log.w(TAG, "Unable to access PWM", e);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mPwm != null) {
try {
mPwm.close();
mPwm = null;
} catch (IOException e) {
Log.w(TAG, "Unable to close PWM", e);
}
}
}
}
연결 후 펄스 폭 변조 (PWM)를 먼저 활성화하기 전에 타이밍 파라미터를 설정해야합니다. 펄스 폭 변조(PWM)를 활성화하려면 setEnabled(true)를 실행합니다. 만약 일시적으로 무효로 할 필요가 있는 경우는 setEnabled(false)를 실행하는 것으로 무효화할 수가 있습니다.
다음 코드는 듀티비 25%(각 사이클에서 2.08ms가 On)로 120Hz(8.33ms주기의 사이클)의 펄스폭 변조(PWM) 신호를 발하도록 설정하고 있습니다
public void initializePwm(Pwm pwm) throws IOException {
pwm.setPwmFrequencyHz(120);
pwm.setPwmDutyCycle(25);
// Enable the PWM signal
pwm.setEnabled(true);
}
Reference
이 문제에 관하여(Things - 펄스 폭 변조 (PWM) 번역), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/aoinakanishi/items/01dd497797f9fc606c37텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)