|

Augmenter et réduire la luminosité d’une LED après appui bouton avec une carte PCA9685 et un Arduino Uno

Prérequis :

  • 1 x Carte Arduino Uno
  • 1 x Carte PCA9685
  • 3 x LED
  • 3 x Résistance 220Ω
  • 3 x Bouton
  • Fils de connexion

Version IDE :

  • Arduino IDE 2.3.5

Bibliothèque :

Vidéo de démonstration :

Schéma de câblage :

Code :

int BtJaune = 2;
int BtBleue = 3;
int BtVert = 4;

bool EtatBtVert;
bool EtatBtBleue;
bool EtatBtJaune;

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();

int pinLedVert = 0;
int ValeurpinLedVert;
int pinLedBleue = 1;
int ValeurpinLedBleue;
int pinLedJaune = 2;
int ValeurpinLedJaune;

unsigned long previousMillis = 0;
const int interval = 15;

void setup() {
  pwm.begin();
  pinMode(BtVert, INPUT_PULLUP);
  pinMode(BtBleue, INPUT_PULLUP);
  pinMode(BtJaune, INPUT_PULLUP);
}

void loop() {
  unsigned long currentMillis = millis();

  EtatBtVert = digitalRead(BtVert);
  if (EtatBtVert == LOW) {
    ValeurpinLedVert = 4095;
  }

  EtatBtBleue = digitalRead(BtBleue);
  if (EtatBtBleue == LOW) {
    ValeurpinLedBleue = 4095;
  }

  EtatBtJaune = digitalRead(BtJaune);
  if (EtatBtJaune == LOW) {
    ValeurpinLedJaune = 4095;
  }

  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    if (ValeurpinLedVert > 0 && EtatBtVert == HIGH) {
      ValeurpinLedVert = ValeurpinLedVert - 100;
    }
    if (ValeurpinLedBleue > 0 && EtatBtBleue == HIGH) {
      ValeurpinLedBleue = ValeurpinLedBleue - 100;
    }
    if (ValeurpinLedJaune > 0 && EtatBtJaune == HIGH) {
      ValeurpinLedJaune = ValeurpinLedJaune - 100;
    }
  }

  pwm.setPWM(pinLedVert, 0, ValeurpinLedVert); 
  pwm.setPWM(pinLedBleue, 0, ValeurpinLedBleue); 
  pwm.setPWM(pinLedJaune, 0, ValeurpinLedJaune); 
}

Publications similaires

Laisser un commentaire

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