Exercice : Accesseur d'écriture

Simulateur

Cet exercice est à réaliser avec le simulateur en ligne Wokwi

Le programme précédent accède directement au port pour allumer ou éteindre la diode

Question

Modifiez le projet précédent en créant deux nouveaux accesseurs pour ne plus accéder directement au port de la diode pour l'allumer ou l'éteindre.

Solution

Programme principal
1
#include "constantes.h"
2
#include "led.h"
3
4
Led led;
5
6
void setup() {
7
  led.setPinLed(PORT_LED) ;
8
  pinMode(led.getPinLed(), OUTPUT);
9
}
10
11
void loop() {
12
    led.setOn();//Allumage LED
13
    delay(1000);
14
    led.setOff();//Eteindre LED
15
    delay(1000);
16
}
17
18
led.h
1
#ifndef LED_H
2
#define LED_H
3
4
class Led{
5
  private:
6
  int pinLed;
7
  public:
8
  int setPinLed(int );
9
  int getPinLed();
10
  void setOn();
11
  void setOff();
12
};
13
14
#endif
led.ino
1
#include "constantes.h"
2
#include "led.h"
3
4
int Led::setPinLed(int value){
5
    if(value >= PORT_MIN && value <= PORT_MAX){
6
      pinLed = value;
7
    }
8
    else{
9
      pinLed = PORT_MIN;
10
    }
11
    };
12
int Led::getPinLed(){return(pinLed);};
13
14
void Led::setOn(){
15
  digitalWrite(pinLed, HIGH);
16
};
17
18
void Led::setOff(){
19
  digitalWrite(pinLed, LOW);
20
};
21
22
constantes.h
1
#ifndef CONSTANTES_H
2
#define CONSTANTES_H
3
4
5
#define PORT_LED 4
6
#define PORT_MIN 2
7
#define PORT_MAX 8
8
9
10
#endif /* CONSTANTES_H */