Petit tutoriel sur le petit module Voice Recorder ISD1820 compatible Arduino ( ISD1820 Sound recorder), que j’ai commandé uniquement pour tester et éventuellement m’amuser un peu 🙂
Le module est basé sur l’ISD1820. Le principe est simple, il s’agit d’un module d’enregistrement et de lecture de messages vocaux à 1 seule puce. On appuie sur l’un des trois boutons (REC) pour enregistrer quelque chose et ensuite on à deux façons de le lire. Le module a une capacité d’enregistrement de 10 secondes par défaut.
Ce dont vous aurez besoin
Un module ISD1820 – Disponible ici
Un Arduino Uno – Disponible ici
Un capteur PIR sensor – Disponible ici
Détail du module
Il y a trois boutons sur ce petit module:
- REC
- PLAYE
- PLAYL
Dans l’ordre:
REC: Va nous permettre d’enregistrer quelque chose.
PLAY E: Permet de lire le son enregistré au complet (du début à la fin). Un appui lit tous l’enregistrement.
PLAY L: Quant à lui, il lit aussi le son enregistré mais il faut garder le bouton enfoncer pour le jouer. S’il est relâché puis pressé, il reprend à zéro.
PinOut et branchement module -> Arduino
- VCC -> 5V
- GND -> GND
- FT
- P-L
- P-E -> Pin 7 de l’Arduino
- REC
Vous constaterez qu’a l’achat, il y a déja deux jumpers connectés sur le module.
Le contrôler avec l’Arduino
Dans l’exemple suivant j’utilise un PIR sensor de ce type:
Maintenant connectez le module à l’Arduino:
- VCC -> 3.3V ou 5V de l’Arduino
- GND -> Vers GND de l’Arduino
- OUT -> Pin 2 de l’arduino
Lorsqu’il détecte un passage l’Arduino changera l’état de la pin 7 ce qui donnera l’ordre de jouer le son enregistré. On utilisera que cette fonction (jouer le son) dans l’immédiat car c’est la plus intéressante.
Le code arduino:
int inputSensor = 2; // Out de l'IR sensor
int PlayE = 7; // PE du voice Recorder
int irState = LOW; // Etat low par défaut de l'ir sensor
int val = 0;
void setup() {
pinMode(inputSensor, INPUT); // Pin 2 en entrée
pinMode(PlayE, OUTPUT); // Pin 7 en sortie
Serial.begin(9600);
Serial.println("init");
}
void loop(){
val = digitalRead(inputSensor);
if (val == HIGH) {
if (irState == LOW) {
digitalWrite(PlayE,HIGH);
irState = HIGH;
}
} else {
if (irState == HIGH){
digitalWrite(PlayE,LOW);
irState = LOW;
}
}
}
0 commentaires