Pwm port, freq, duty_percent
| 파라미터 | 설명 |
|---|---|
freq | 출력할 주파수 (단위: Hz) |
duty_percent | 듀티 사이클 (0 ~ 10000 → 0.00% ~ 100.00%) |
지정된 출력 포트에 설정된 주파수와 듀티 비로 PWM 파형을 출력합니다.
명령어 실행 즉시 출력이 시작되며, Pwmoff 명령을 호출하기 전까지 출력을 유지합니다.
Freepin 명령으로 해당 포트의 소유권을 확보해야 합니다.Freepin 12 Pwm 12, 1000, 5000 ' 50.00% 듀티 Pwm 12, 1000, 7500 ' 75.00% 듀티 Pwm 12, 50, 750 ' 7.50% 듀티 (RC 서보 중앙 위치)
듀티 값은 10000 기준으로 계산됩니다. 예: 500 → 5.00% 750 → 7.50% 1000 → 10.00% 5000 → 50.00% 10000 → 100.00%
GPIO 포트는 짝수/홀수 한 쌍(예: 10-11, 12-13, 14-15 ...)으로 하나의 PWM 자원을 공유합니다. 따라서 같은 쌍에 속한 포트는 PWM 주파수를 각각 다르게 설정할 수 없으며, 반드시 동일한 주파수를 사용해야 합니다. 예: - 10번과 11번 → 같은 주파수 - 12번과 13번 → 같은 주파수 ※ 듀티비(Duty)는 각각 독립적으로 설정할 수 있습니다.
Pwmoff port
지정 포트에 출력 중인 PWM 출력을 정지합니다.
Pwmoff 12
A/D 입력을 받아 PWM에 반영하고, 4번 입력이 HIGH일 경우 출력을 정지합니다.
Dim i1 As Integer Freepin 12 Do i1 = Adin(0) * 10000 / 4095 ' 0~10000 변환 If In(4) = 1 Then Pwmoff 12 Else Pwm 12, 1000, i1 End If Wait 500 Loop
RC 서보는 50Hz(20ms 주기)에서 약 5.0% ~ 10.0% 듀티를 사용합니다. (10000 기준 → 500 ~ 1000)
Dim angle As Integer Dim duty As Integer Freepin 10 Pwm 10, 50, 750 ' 중앙 (7.5%) Do For angle = 0 To 180 Step 5 duty = 500 + angle * 500 / 180 ' 500~1000 Pwm 10, 50, duty Debug Dec duty, " ", Dec angle, Cr Wait 200 Next For angle = 180 To 0 Step -5 duty = 500 + angle * 500 / 180 Pwm 10, 50, duty Debug Dec duty, " ", Dec angle, Cr Wait 200 Next Loop