Le script suivant permet de gérer une lampe connectée ou une led à une sortie PWM de l’Arduino. Il a été écrit sous forme de classe afin de rendre le code plus clair et réutilisable.

Présentation générale

La classe s’appelle Lamp et elle encapsule toutes les fonctions nécessaires pour allumer, éteindre ou régler l’intensité lumineuse d’une lampe.
Elle prend en compte deux paramètres lors de la création d’un objet :

  • pinPWM : la broche de l’Arduino utilisée pour le signal PWM.
  • invert : un booléen optionnel (par défaut false) qui permet d’inverser la logique.
    • false → actif à l’état HIGH.
    • true → actif à l’état LOW.

Cette option est utile si le montage électronique nécessite une inversion (par exemple en cas d’utilisation d’un transistor ou d’un relais qui fonctionne à l’état bas).

Les principales fonctions de la classe

  1. set(value)
    Allume la lampe avec une intensité donnée comprise entre 0 et 255.
    • 0 correspond à éteint.
    • 255 correspond à la luminosité maximale.
      Si invert est activé, la valeur est automatiquement inversée.
  2. on()
    Allume la lampe à 100 % de luminosité (équivalent à set(255)).
  3. off()
    Éteint complètement la lampe (équivalent à set(0)).
  4. setPercent(percent)
    Permet de régler la lampe en pourcentage de luminosité (de 0 à 100 %).
    En interne, le pourcentage est converti en une valeur PWM comprise entre 0 et 255.

Exemple d’utilisation

C

Dans l’exemple inclus dans le script, on crée un objet lampe appelé lampe1 connecté sur la broche 8 :

Lamp lampe1(8);

Une fonction test() est définie pour démontrer les capacités de la classe :

  • La lampe est d’abord allumée au minimum pendant 3 secondes.
  • Ensuite, elle clignote trois fois (allumage puis extinction).
  • Enfin, elle s’éteint définitivement.

La fonction setup() appelle simplement test(), tandis que la boucle loop() est vide puisque la démonstration ne nécessite pas de répétition.

Intégration matérielle

  • La broche utilisée doit être une sortie PWM de l’Arduino (par exemple 3, 5, 6, 9, 10, 11 sur un Uno).
  • La lampe peut être connectée directement si elle est de faible puissance (LED + résistance).
  • Pour des lampes plus puissantes, il est nécessaire d’utiliser un transistor MOSFET ou un relais pour éviter de surcharger la carte.

Conclusion

Grâce à cette classe, vous pouvez facilement contrôler l’intensité lumineuse d’une lampe ou d’une LED à partir de votre Arduino. Le code est simple à étendre et peut être réutilisé dans d’autres projets nécessitant la modulation PWM, comme la commande de moteurs ou de ventilateurs.

Exemple de matériel

Leds de modélisme à l’échelle HO ( environ 2.5 euros pièce en 2025)

Ces leds fonctionnent parfaitement sans les résistances si elles sont alimentées en 3V. Pour les alimenter et les gérer on peut utiliser des modules à base de mosfet ( 9 euros environ en 2025)

Si l’on dispose d’un bloc d’alimentation de 5V, utiliser un convertisseur de tension du genre

(en 2025, cela vaut environ 5 €)

Exemple de montage


1 commentaire

electronica · 21 septembre 2025 à 22h04

Très intéressant comme idée. J’ai jamais pensé d’y aller très loin avec un Arduino et faire la HT à partir d’un ou plusieurs signaux générés ou modulés par une telle carte. Merci pour ce et article.

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *