Académique Documents
Professionnel Documents
Culture Documents
Écrire un programme Arduino et un programme en utilisant les registres internes du μc ATmega328p qui
permet de contrôler un petit barographe avec 4 LED en fonction de 2 boutons poussoirs. L'un des boutons
(SW1) incrémentera le nombre de LED allumées, tandis que l'autre (SW1) le décrémentera (en utilisant des
interruptions sur le front montant).
Page 1|3
const int btn_minus=2;
const int btn_plus=3;
const int led_1=9;
const int led_2=10;
const int led_3=11;
const int led_4=12;
volatile int nombre_led=0;
void setup() {
Serial.begin(9600);
pinMode (btn_plus, INPUT);
pinMode (btn_minus, INPUT);
pinMode (led_1, OUTPUT);
pinMode (led_2, OUTPUT);
pinMode (led_3, OUTPUT);
pinMode (led_4, OUTPUT);
attachInterrupt(digitalPinToInterrupt(btn_minus), interruptPlu, RISING);
attachInterrupt(digitalPinToInterrupt(btn_plus), interruptPlus, RISING);
void loop() {
Serial.println(nombre_led);
digitalWrite(led_1, HIGH);
digitalWrite(led_2, HIGH);
digitalWrite(led_3, HIGH);
digitalWrite(led_4, HIGH);
if(nombre_led>4)
{
nombre_led=4;
}
if(nombre_led<1)
{
nombre_led=0;
}
if (nombre_led>=1)
{
digitalWrite(led_1,LOW);
}
if (nombre_led>=2)
{
digitalWrite(led_2,LOW);
}
if (nombre_led>=3)
{
digitalWrite(led_3,LOW);
}
if (nombre_led>=4)
{
digitalWrite(led_4,LOW);
}
}
void interruptPlu (){
nombre_led--;
}
void interruptPlus (){
nombre_led++;
}
Page 2|3
volatile int nombre_led = 0;
void setup() {
Serial.begin(9600);
void loop() {
Serial.println(nombre_led);
Page 3|3