![]() |
| O módulo ligado a um Arduino para acionamento comandado por um sensor ultrassônico |
O ISD1820 é um integrado capaz de gravar uma mensagem de voz de até 20 segundos na sua memória interna e reproduzi-la. Ele requer poucos componentes externos (resistores e capacitores) para conectar um microfone e um alto-falante. O módulo que vamos ver se baseia no circuito exemplo contido no datasheet (não achei o datasheet específico do ISD1820, mas tudo indica que é um exemplar da série ISD1800, descrita neste documento, com memória para até 20 segundos).
Por falar nestes "até 20 segundos"... O tempo máximo de gravação depende da taxa de amostragem, que é controlada por um resistor (R2 no módulo). O módulo vem com um resistor de 100K, o que limita o tempo em 10 segundos:
Vamos examinar primeiro a operação do módulo isolado. Para isto basta colocar uma alimentação de 3,0 a 5,0V entre os pinos VCC e GND do conector de pinos. A operação é feita através de 3 botões:
- REC: a gravação começa quando você aperta este botão e dura até você soltar o botão ou acabar a memória.
- PLAYE: aperte e solte este botão para reproduzir a mensagem gravada. O "E" é de "edge" (borda): a reprodução é disparada pela mudança de nível baixo para alto em um pino do ISD1820.
- PLAYL: aperte e mantenha pressionado para reproduzir a mensagem gravada. O "L" é de "level" (nível): a reprodução é feita enquanto é mantido o nível alto em um pino do ISD1820.
Um LED fica aceso enquanto está sendo feita a gravação e pisca rapidamente quando a reprodução é concluída.
Ao lado do conector de pinos tem dois jumpers:
- FT: fixa o sinal FT (transformando o gravador em um amplificador do microfone)
- P-E: conecta o sinal P-E ao sinal do LED, fazendo com que a gravação seja reproduzida continuamente.
Vamos fazer uma brincadeira simples com um Arduino, ligado ao módulo ISD1920 e um sensor ultrassônico HC-SR04:
O programa abaixo dispara uma gravação de 5 segundos quando o Arduino é ressetado; depois disso a mensagem será tocada quando o sensor ultrassônico detectar que tem um obstáculo a menos de 0,5 metro.
/*
* Exemplo de uso do Módulo Gravador de Voz com ISD1820
*/
// Conexões
const int pinPlay = 2;
const int pinRec = 3;
const int pinTrigger = 4;
const int pinEcho = 5;
// Iniciação
void setup() {
// Inicia o sentido dos pinos
pinMode (pinPlay, OUTPUT);
pinMode (pinRec, OUTPUT);
pinMode (pinTrigger, OUTPUT);
pinMode (pinEcho, INPUT);
// Inicia o estado dos pinos
digitalWrite (pinPlay, LOW);
digitalWrite (pinRec, LOW);
digitalWrite (pinTrigger, LOW);
// Faz uma gravação de 5 segundos
digitalWrite (pinRec, HIGH);
delay (5000);
digitalWrite (pinRec, LOW);
}
// Loop principal
void loop() {
// Verifica se tem algo próximo
digitalWrite (pinTrigger, HIGH);
delayMicroseconds (20);
digitalWrite (pinTrigger, LOW);
long tEcho = pulseIn (pinEcho, HIGH, 38000L);
if (tEcho < 2900L) {
// Toca a gravação
digitalWrite (pinPlay, HIGH);
delay (10);
digitalWrite (pinPlay, LOW);
// Aguarda acabar
delay(5000);
}
// Dar um tempo entre as leituras
delay (500);
}
Embora interessante, este módulo não é muito versátil. O uso típico com microcontolador seria para emitir uma mensagem pré gravada quando um certa condição por detectada. Uma alternativa mais versátil (mas mais cara e sem capacidade de gravação) é usar um módulo MP3 (como este ou este).



Nenhum comentário:
Postar um comentário