Fabrication électronique (shield Arduino simple) - Logiciel de test


A titre d'information supplémentaire, le listing du programme de test, en langage C, est donné ici.

Listing du programme de test

//+-+-+-+-+-+-+- définition des broches d'entrées/sorties -+-+-+-+-+-+-+
//----------------------------------------------------------------------
const int BP1 = 13;
const int BP2 = 12;
const int BP3 = 11;
const int BP4 = 10;
const int BUZ1 = 9;
const int D1 = 7;
const int D2 = 6;
const int D3 = 5;
const int D4 = 4;
const int D5_R = 2;
const int D5_G = 3;
const int RV1 = A0;

#define green 1
#define red   2
#define stop  0

//+-+-+-+-+-+-+- création des variables de gestion -+-+-+-+-+-+-+
//---------------------------------------------------------------
bool LED1 = 0;
bool LED2 = 0;
bool LED3 = 0;
bool LED4 = 0;
int LED5 = 1;   //0=stop, 1=vert, 2=rouge (voir #define)
bool Button1 = 1;
bool Button1_ = 1; //previous state of Button1
bool Button2 = 1;
bool Button2_ = 1; //previous state of Button2
bool Button3 = 1;
bool Button3_ = 1; //previous state of Button3
bool Button4 = 1;
bool Button4_ = 1; //previous state of Button4
int Adjust = 0;
int Threshold = 519;   //seuil de basculement (variable pour hystérésis)

void setup() {
  pinMode(BP1,INPUT);
  pinMode(BP2,INPUT);
  pinMode(BP3,INPUT);
  pinMode(BP4,INPUT);
  pinMode(D1,OUTPUT);
  pinMode(D2,OUTPUT);
  pinMode(D3,OUTPUT);
  pinMode(D4,OUTPUT);
  pinMode(D5_R,OUTPUT);
  pinMode(D5_G,OUTPUT);
  pinMode(BUZ1,OUTPUT);
}

void loop() {
//+-+-+-+-+-+-+- Lecture des entrées -+-+-+-+-+-+-+
//-------------------------------------------------
Button1 = digitalRead(BP1);
Button2 = digitalRead(BP2);
Button3 = digitalRead(BP3);
Button4 = digitalRead(BP4);
Adjust = analogRead(RV1);

//+-+-+-+-+-+-+- traitement des données -+-+-+-+-+-+-+
//----------------------------------------------------
if ((Button1 == 0) && (Button1_ == 1)) { //détection du front ! (appui sur BP)
  digitalWrite(BUZ1,1); // un beep dans le buzzer
  LED1 = ! LED1;            // complémentation de l'état de la DEL
  digitalWrite(D1,LED1);
  }
if ((Button2 == 0) && (Button2_ == 1)) {
  digitalWrite(BUZ1,1);
  LED2 = ! LED2;
  digitalWrite(D2,LED2);
  }
if ((Button3 == 0) && (Button3_ == 1)) {
  digitalWrite(BUZ1,1);
  LED3 = ! LED3;
  digitalWrite(D3,LED3);
  }
if ((Button4 == 0) && (Button4_ == 1)) {
  digitalWrite(BUZ1,1);
  LED4 = ! LED4;
  digitalWrite(D4,LED4);
  }
if ((LED5 == green) && (Adjust > Threshold)) {  // détection transition croissante
  digitalWrite(BUZ1,1); // un beep dans le buzzer
  LED5 = red;
  Threshold = Threshold - 14; // hystérésis
  digitalWrite(D5_R, HIGH);
  digitalWrite(D5_G, LOW);
  }
if ((LED5 == red) && (Adjust < Threshold)) {   // détection transition décroissante
  digitalWrite(BUZ1,1); // un beep dans le buzzer
  LED5 = green;
  Threshold = Threshold + 14;
  digitalWrite(D5_R, LOW);
  digitalWrite(D5_G, HIGH);  
  }

//+-+-+-+-+-+-+- post traitement -+-+-+-+-+-+-+
//---------------------------------------------
Button1_ = Button1;
Button2_ = Button2;
Button3_ = Button3;
Button4_ = Button4;
delay(10);    // durée du beep sur le buzzer
digitalWrite(BUZ1,0);
}


Aucune explication du fonctionnement du programme n'est donnée ici, toutefois les fonctionnalités sont les suivantes :
Quelques vues supplémentaires de la carte


Shield inséré sur le ARDUINO (vue coté connecteurs J3 et J4). vue01

Shield inséré sur le ARDUINO (vue coté J1 et J2). On distingue le bouton reset du ARDUINO en bas à droite. vue02

Shield inséré (vue coté boutons poussoirs). Au premier plan : le connecteur USB et le jack alim du ARDUINO. vue03

Shield inséré sur le ARDUINO (vue coté buzzer et LED bicolore). vue04

Shield inséré sur le ARDUINO (vue de dessus). vue05

previous