Étape 12 : Croquis logiciel pour six capteurs :
#include < CapacitiveSensor.h >
#include < VoiceShield.h >
/*
* Touch événement Sound Player
*
Aide de bouclier de voix de la SpikenzieLab, jouer un son différent en fonction
* sur quelle touche a été pressée capteur.
*
* Version 0.1 - 12 octobre 2014
* Luis Carlos Bañuelos Chacon et Valle de Cesar
* luiscarlos.banuelos
*/
/*
* Instructions
*
* 1. Configuration,
* modifier le CS_NUM avec le nombre de capteurs nécessaires,
* modifier CS_THRESHOLD en diminuant le nombre si les capteurs ne réagissent pas
* et en augmentant le nombre si elles sont trop sensibles,
* modifier le VS_VOICES pour faire correspondre les voix programmés dans le bouclier de la voix.
*
* 2. Sur la gamme de capteurs capacitifs, initialiser les capteurs tactiles en indiquant le
* pin commun et le pin dans lequel est connecté le capteur.
*
* 3. Sur la palette de sons, dans le même ordre que la matrice de capteurs capacitifs indiquent
* l’ID du son à jouer lorsque la sonde est enfoncée.
*/
/*
* Configuration
*/
#define CS_NUM 6 / / combien touch capteurs
#define CS_SAMPLES 30 / / combien d’échantillons à prendre quand la sonde de la PAC
#define CS_THRESHOLD 30 / / lecture de seuil à considérer comme un événement de touche
#define VS_VOICES 80 / / nombre de voix programmé sur le bouclier de la voix
/*
* Tableau de capteurs capacitifs
*
* Premier paramètre est l’axe commun, il devrait être le même pour toutes les instances.
* Le second paramètre est l’axe du capteur.
*/
CapacitiveSensor cs [] = {}
CapacitiveSensor (6, 7),
CapacitiveSensor (6, 8),
CapacitiveSensor (6, 9),
CapacitiveSensor (6, 10),
CapacitiveSensor (6, 11),
CapacitiveSensor (6, 12),
};
/*
* Tableau de sons
*
* Ce tableau contient l’ID du son que chaque capteur doit faire.
* L’ordre doit correspondre à la gamme de capteurs capacitifs.
*/
int [son] = {}
13,
28,
38,
29,
19,
4
};
/*
* Instancier le bouclier de la voix
*/
VoiceShield vs(VS_VOICES) ;
/*
* readCS
*
Lit les tableau de capteurs capacitifs et retourne
* capteur qui est touché ou -1 si aucun.
*/
int readCS() {}
pour (int i = 0; i < CS_NUM; i ++) {}
Si (cs[i].capacitiveSensor(CS_SAMPLES) > CS_THRESHOLD) return i ;
}
Retourne -1 ;
}
void setup() {vs
; //pinMode (13, sortie) ;
}
void loop() {}
int cs_pressed = readCS() ; Tableau de lecture des capteurs
Si (cs_pressed > = 0) {/ / si l'on appuie sur un capteur
digitalWrite (13, 1) ; Indique que l’événement sur LED
vs. ISDPLAY_to_EOM(Sound[cs_pressed]) ; Jouer un son
Delay(1000) ; Petit retard pour LED
digitalWrite (13, 0) ; Désactiver les led
while(readCS() == cs_pressed) ; Bloquer jusqu'à ce que le capteur est libéré
}
}