Menu

PWM

Claus Kuehnel

PWM

Sean Cross hat für Adafruits Industries ein Kernelmodul geschrieben, welches PWM/Servo am GPIO #18 Pin unterstützt. Das am GPIO Header verfügbare PWM Pin wird mit dem Audio System geteilt.
Unabhängige Verwendung von PWM/Servo und Audio am 3.5 mm Klinkenstecker sind deshalb nicht möglich.

Das Kernelmodul ist von adafruit beschrieben.

Im folgenden Shell Script wird eine Frequenz von 1 kHz erzeugt und das Tastverhältnis (Duty) verändert. Mit einem Oszilloskop kann man an GPIO #18 die Veränderung des Tastverhältnisses verfolgen. Hierzu sind zwischen jeder Änderung des Tastverhältnisses jeweils 1 s Wartezeit eingebaut.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash

echo "========================================================================"
echo "PWM Test"
echo "========================================================================"
echo pwm > /sys/class/rpi-pwm/pwm0/mode
echo 10 > /sys/class/rpi-pwm/pwm0/duty
echo 0 > /sys/class/rpi-pwm/pwm0/delayed 
echo -n "Mode: "
cat /sys/class/rpi-pwm/pwm0/mode

echo 1000 > /sys/class/rpi-pwm/pwm0/frequency  # 1000 Hz
echo -n "Duty: " 
cat /sys/class/rpi-pwm/pwm0/duty
sleep 1

echo 25 > /sys/class/rpi-pwm/pwm0/duty  # Duty = 0.25
echo -n "Duty: " 
cat /sys/class/rpi-pwm/pwm0/duty
sleep 1

echo 50 > /sys/class/rpi-pwm/pwm0/duty  # Duty = 0.5
echo -n "Duty: " 
cat /sys/class/rpi-pwm/pwm0/duty
sleep 1

echo 75 > /sys/class/rpi-pwm/pwm0/duty  # Duty = 0.75
echo -n "Duty: " 
cat /sys/class/rpi-pwm/pwm0/duty
sleep 1

echo 90 > /sys/class/rpi-pwm/pwm0/duty  # Duty = 0.9
echo -n "Duty: " 
cat /sys/class/rpi-pwm/pwm0/duty 
sleep 1

echo 50 > /sys/class/rpi-pwm/pwm0/duty  # Duty = 0.5
echo -n "Duty: " 
cat /sys/class/rpi-pwm/pwm0/duty 
sleep 2

echo 0 > /sys/class/rpi-pwm/pwm0/frequency

Related

Wiki: Home

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.