Résolu sur le forum : Borne Wallbox Pulsar Plus 7,4 kW sur abonnement 6 kVA : quel délestage avant accord copro (urgent)Ma panne diagnostiquée — réponse sous 48 h29 €

Programmer le pcDuino : Python simple : Sortie analogique : Faire varier la luminosité d’une LED (PWM)

Électroniquemis à jour le 23 avril 2023

Le pcDuino est une plateforme de développement open source qui offre aux développeurs une variété de possibilités. Avec le pcDuino, vous pouvez programmer des applications et des systèmes embarqués à l’aide de Python simple. Dans cet article, nous allons vous montrer comment utiliser le pcDuino pour faire varier la luminosité d’une LED à l’aide d’une sortie analogique et d’un signal PWM (Pulse Width Modulation). Nous allons vous expliquer comment configurer le pcDuino et comment programmer le signal PWM pour contrôler la luminosité de la LED.

Programmer le pcDuino : Python simple : Sortie analogique : Faire varier la luminosité d’une LED (PWM)

Ce que l’on va faire ici

Ce programme très simple permet de faire varier la luminosité d’une LED sur une broche d’une carte mini-PC. Ce programme exploite l’instruction analogWrite(broche, largeur) qui permet de générer très simplement une impulsion PWM (Pulse Width Modulation en anglais ou Modulation de Largeur d’Impulsion (MLI) en français). Cette instruction permet de moduler la largeur d’impulsion, la fréquence restant fixe aux alentours de 520 hz par défaut.

IMPORTANT : L’instruction analogWrite() n’est disponible que sur les broches 3, 5,6,9,10,11.

Pré-requis

  • un mini-PC (pcDuino conseillé) avec système Lubuntu opérationnel. Voir si besoin la page d’accueil du pcDuino
  • Langage Python (2.7) et l’IDE Pyduino ou l’éditeur Geany installés. Voir si besoin : Logiciel pour développer avec Pyduino
  • ma librairie pyDuino installée : voir si besoin : Télécharger et installer Pyduino sur le pcDuino

Pour Comprendre

Une impulsion PWM est une impulsion (ou onde) carrée, c’est à dire que le niveau de l’onde est soit HAUT soit BAS. Cette impulsion se répète dans le temps de façon continue.

Une telle onde, comme toute onde est caractérisée par sa période, c’est à dire la durée entre 2 impulsions. La définition d’une onde PWM (Pulse Width Modulation en anglais ou Modulation de Largeur d’Impulsion (MLI) en français) se fait en modifiant la largeur du niveau HAUT par rapport à la durée de la période : la largeur du niveau HAUT est appelée « duty cycle ».

Avec l’instruction analogWrite(broche, largeur), on va pouvoir générer une impulsion PWM avec une largeur de « duty cycle » voulue :

  • si valeur = 0, le duty cycle sera de 0% de la période
  • si valeur = 255, le duty cycle sera de 100% de la période
  • si valeur = 127, le duty cycle sera de 50% de la période
  • si valeur = n, le duty cycle sera de (n/255)*100% de la période.

Matériel nécessaire

  • une plaque d’essai pour montage sans soudures,
  • des straps,
  • une LED rouge 5mm,
  • une résistance 1/4w de 270 Ohms environ,

Instructions de montage

  • Connecter sur une des broches PWM une LED et sa résistance (270 Ohms) en série connectée au 0V

Le montage à réaliser

Le fichier *.yno

Copier/coller ce code dans l’IDE Pyduino

# entete declarative
LED=PWM0 # broche pour la LED – doit être une broche PWM (3,5,6,9,10 ou 11)

#— setup —
def setup():
        return # si vide

# — fin setup —

# — loop —
def loop():

        for impuls in range(0,255):
                analogWrite(PWM0, impuls) # applique la largeur
                Serial.println (« PWM= « +str(impuls))
                delay(10)# entre 2 changements

ÉlectroniqueChamp électrique : les notions fondamentales expliquées simplement

        for impuls in range(0,255):
                analogWrite(PWM0, 255-impuls) # applique la largeur
                Serial.println (« PWM= « +str(255-impuls))
                delay(10)# entre 2 changements

# — fin loop —
 

Ce code est également disponible ici :

Le fichier *.py

Copier/coller ce code dans l’éditeur Geany :

#!/usr/bin/python
# -*- coding: utf-8 -*-

# exemple pyDuino – par X. HINAULT – www.mon-club-elec.fr
# Juin 2013 – Tous droits réservés – GPLv3
# voir : https://github.com/sensor56/pyDuino

# La luminosite d’une LED varie (PWM)

from pyduino import * # importe les fonctions Arduino pour Python

# entete declarative
LED=PWM0 # broche pour la LED – doit être une broche PWM (3,5,6,9,10 ou 11)

#— setup —
def setup():
        return # si vide

# — fin setup —

# — loop —
def loop():

        for impuls in range(0,255):
                analogWrite(PWM0, impuls) # applique la largeur
                Serial.println (« PWM= « +str(impuls))
                delay(10)# entre 2 changements

ÉlectroniqueBien chauffer son atelier d’électronique : confort, sécurité et continuité de travail

        for impuls in range(0,255):
                analogWrite(PWM0, 255-impuls) # applique la largeur
                Serial.println (« PWM= « +str(255-impuls))
                delay(10)# entre 2 changements

# — fin loop —

#— obligatoire pour lancement du code —
if __name__==« __main__ »: # pour rendre le code executable
        setup() # appelle la fonction main
        while not noLoop: loop() # appelle fonction loop sans fin

 

Ce code est également disponible ici : https://raw.github.com/sensor56/pyDuino/master/pcduino/exemples/1.Basics/Fading.py

Utilisation

  • Réaliser le montage indiqué,
  • Appuyer sur le bouton <Exécuter> dans Geany
  • Une fenêtre de Terminal vide doit apparaître avec des messages et la luminosité de la LED doit varier

Donnez votre avis

Soyez le 1er à noter cet article
ou bien laissez un avis détaillé


Partagez cet article maintenant !


Ça ne règle pas votre cas ?

Décrivez la panne sur le forum, avec une photo si vous pouvez : les membres qui ont eu la même répondent, et le sujet reste pour les suivants.

Avatar photoAvatar photoAvatar photoAvatar photoAvatar photoRejoindre les 54 membres — gratuit, 44 pannes résolues

Dans le même tiroir

Exemples de mise en place d’un réseau local.
Électronique

Exemples de mise en place d’un réseau local.

L'utilisation d'un réseau local est un moyen efficace pour relier plusieurs ordinateurs et périphériques entre eux. Il permet aux utilisateurs…

Portrait de Inès DameronInès Dameron · 21 Avr 2023

Réagissez à cet article

La lettre du club

Une lettre par mois, accrochée au panneau

Les sujets du forum résolus dans le mois, un guide, un chiffre qu’on peut vérifier chez soi. Rien d’autre, jamais plus souvent — et on se désabonne d’un clic.

Ce qu’il y a dedans

Votre adresse

Une lettre par mois. Désabonnement en un clic.

Partagez votre réaction