Abo
  • Services:
Anzeige
Laika - Frontansicht
Laika - Frontansicht (Bild: Golem.de)

Der letzte Schritt

Anzeige

Nach all der Rechnerei fehlt uns nunmehr nur noch ein kleiner Schritt: Wir müssen den PWM-Modus für einen Pin aktivieren. Das können wir über Zugriffe in /sys/class/pwm erledigen, fast analog zur Aktivierung des Pins zur Nutzung für GPIO.

Zuerst gilt es, den Pin zu exportieren - auch hier ist die Nummer des Pins der Galileo-Dokumentation zu entnehmen. Dem Arduino-Pin 9 ist der PWM-Pin 1 zugeordnet:

  1. f = open("/sys/class/pwm/pwmchip0/export", "w");
  2. f.write("1")
  3. f.close()

Und dann wird er aktiviert:

  1. f = open('/sys/class/pwm/pwmchip0/pwm1/enable', "w")
  2. f.write('1')
  3. f.close()

Die potenzielle Doppelbelegung von Pins gilt es auch hier zu beachten. Hinzu kommt, dass mit diesen Zeilen lediglich der PWM-Modus für den Pin angeschaltet wird, die eigentliche Aktivierung als Ausgangspin muss im Vorfeld über die GPIO-Schnittstelle erfolgen - also unserem pinMode()-Imitat von oben.

PWM-Modus für sonstige Fälle

Der Vollständigkeit halber wollen wir hier noch erwähnen, wie der PWM-Modus "normal" benutzt werden kann, zum Beispiel, um eine LED zu dimmen oder einen Motor über einen Motortreiber zu steuern - also Fälle, in denen die Frequenz der PWM uns nicht weiter interessiert. Dann reicht auch der Zugriff über /sys/class/pwmchip0/-Einträge aus.

Die eigentliche Konfiguration erfolgt über die Einträge period und duty_cycle. Beide erwarten Angaben in Nanosekunden. Der period-Wert entspricht der im PWM-Abschnitt angesprochenen Periode. Der duty_cycle definiert die Impulsdauer, also die Dauer, in der insgesamt tatsächlich Strom während einer Periode fließt. Folgendes Beispiel würde eine LED nur zu 50 Prozent mit Strom versorgen:

  1. f = open('/sys/class/pwm/pwmchip0/pwm1/period', "w")
  2. f.write('1000000')
  3. f.close()
  4.  
  5. f = open('/sys/class/pwm/pwmchip0/pwm1/enable', "w")
  6. f.write('1')
  7. f.close()
  8.  
  9. f = open('/sys/class/pwm/pwmchip0/pwm1/duty_cycle', "w")
  10. f.write('500000')
  11. f.close()

Die Prozentzahl von 50 Prozent ergibt sich aus dem Verhältnis von duty_cycle zu period. Der duty_cycle-Wert von 500000 sind 50 Prozent des period-Wertes von 1000000.

 Zielgerichtet probierenDas finale Skript 

eye home zur Startseite
hungkubwa 31. Jan 2014

Wozu der Umweg über Flattr wenn man auch direkt Paypal nutzen kann? Versteh ich nicht.

savejeff 30. Jan 2014

Danke :] Ich benutze die app täglich auf mehreren PCs und habe mich so drann gewöhnt. Sie...

Anonymer Nutzer 30. Jan 2014

Besten Dank für die Info. Gruss, gehirnpest

Casandro 30. Jan 2014

...ein 5 Jahresprojekt, dass dann nach 7 Jahren wegen nicht eingetretenem Erfolg eingestellt.

Anonymer Nutzer 30. Jan 2014

[..] und wir wollen dabei lernen. Genau sowas hat mir bei Golem bisher immer gefehlt...



Anzeige

Stellenmarkt
  1. Infokom GmbH, Karlsruhe
  2. über Ratbacher GmbH, Raum Schwäbisch Gmünd
  3. LEDVANCE GmbH, Garching bei München
  4. 50Hertz Transmission GmbH, Berlin


Anzeige
Top-Angebote
  1. (-17%) 49,99€
  2. 47,99€
  3. und For Honor oder Ghost Recon Wildlands kostenlos erhalten

Folgen Sie uns
       


  1. Prozessor

    Lightroom CC 6.9 exportiert deutlich schneller

  2. Telia

    Schwedischer ISP muss Nutzerdaten herausgeben

  3. Nokia

    Deutlich höhere Datenraten durch LTE 900 möglich

  4. Messenger

    Facebook sagt "Daumen runter"

  5. Wirtschaftsministerin

    Huawei wird in Bayern Netzwerkausrüstung herstellen

  6. Overwatch

    Blizzard will bessere Beschwerden

  7. Mobilfunk

    Nokia nutzt LTE bei 600 MHz erfolgreich

  8. Ohne Flash und Silverlight

    Netflix schließt HTML5-Umzug ab

  9. Mass Effect Andromeda im Technik-Test

    Frostbite für alle Rollenspieler

  10. Hannover

    Die Sommer-Cebit wird teuer



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Nier Automata im Test: Stilvolle Action mit Überraschungen
Nier Automata im Test
Stilvolle Action mit Überraschungen
  1. Nvidia "KI wird die Computergrafik revolutionieren"
  2. The Avengers Project Marvel und Square Enix arbeiten an Superheldenoffensive
  3. Nintendo Switch erscheint am 3. März

NZXT: Lüfter auch unter Linux steuern
NZXT
Lüfter auch unter Linux steuern
  1. Creoqode 2048 Tragbare Spielekonsole zum Basteln erhältlich
  2. FluoWiFi Arduino-kompatibles Board bietet WLAN und Bluetooth
  3. Me Arm Pi Roboterarm zum Selberbauen

Mobile-Games-Auslese: Würfelkrieger und Kartendiebe für mobile Spieler
Mobile-Games-Auslese
Würfelkrieger und Kartendiebe für mobile Spieler

  1. Re: daten zu einer sache machen...

    User_x | 00:49

  2. Re: Früher...

    Smincke | 00:29

  3. Re: Beschwert ihr euch?

    bjs | 00:28

  4. Re: Keine Ahnung warum die Leute Probleme haben.....

    ArcherV | 00:24

  5. Re: Zensur durch die Hintertür

    ArcherV | 00:23


  1. 18:26

  2. 18:18

  3. 18:08

  4. 17:39

  5. 16:50

  6. 16:24

  7. 15:46

  8. 14:39


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel