Paso 12: Esbozo software para seis sensores del casquillo:
#include < CapacitiveSensor.h >
#include < VoiceShield.h >
/*
* Toque evento sonido reproductor
*
* Uso de escudo de voz de la SpikenzieLab, jugar un sonido diferente en función
en el que toque el sensor fue presionado.
*
* Versión 0.1 - 12 de octubre de 2014
* Luis Carlos Bañuelos Chacón y César Valle
* luiscarlos.banuelos
*/
/*
* Las instrucciones
*
* 1. En configuración,
* modificar el CS_NUM con el número de sensores necesarios,
* modificar CS_THRESHOLD por disminuir el número si no responden los sensores
* y aumentar el número si son demasiado sensibles,
* modificar VS_VOICES para que coincida con las voces en el escudo de la voz.
*
* 2. En array de sensores capacitivos, para inicializar los sensores al tacto que indica la
* común perno y el perno en que está conectado el sensor.
*
* 3. Variedad de sonidos, en el mismo orden que la matriz de sensores capacitivos indican
* la identificación del sonido a reproducir cuando se pulsa el sensor.
*/
/*
* Configuración
*/
#define CS_NUM 6 / / cuántos touch sensores
#define CS_SAMPLES 30 / / cuántas muestras para tomar cuando medir el sensor de tapa
#define CS_THRESHOLD 30 / lectura de umbral a considerar como un evento de contacto
#define VS_VOICES 80 / / número de voces programado en escudo de voz
/*
* Matriz de sensores capacitivos
*
* El primer parámetro es el perno común, debe ser el mismo para todas las instancias.
* El segundo parámetro es el pin del sensor.
*/
CapacitiveSensor cs [] = {}
CapacitiveSensor (6, 7),
CapacitiveSensor (6, 8),
CapacitiveSensor (6, 9),
CapacitiveSensor (6, 10),
CapacitiveSensor (6, 11),
CapacitiveSensor (6, 12),
};
/*
* Matriz de sonidos
*
* Este conjunto tiene el ID del sonido que cada sensor tiene que hacer.
* El pedido debe corresponder a la gama de sensores capacitivos.
*/
int [] sonido = {}
13,
28,
38,
29,
19,
4
};
/*
* Crear una instancia de voz escudo
*/
Vs(VS_VOICES) de VoiceShield;
/*
* readCS
*
* Lee el array de sensores capacitivos y devuelve
* sensor que es tocado o -1 si ninguno.
*/
int readCS() {}
para (int i = 0; i < CS_NUM; i ++) {}
Si (cs[i].capacitiveSensor(CS_SAMPLES) > CS_THRESHOLD) volver.
}
volver -1;
}
void setup() {vs
; //pinMode (13, salida);
}
void loop() {}
int cs_pressed = readCS(); Serie de lectura de sensores
Si (cs_pressed > = 0) {/ / si se toca un sensor
digitalWrite (13, 1); Indicar evento en LED
vs. ISDPLAY_to_EOM(Sound[cs_pressed]); Emitir un sonido
Delay(1000); Pequeño retraso para LED
digitalWrite (13, 0); Apagar led
while(readCS() == cs_pressed); Bloque hasta que se suelte el sensor de
}
}