Enregistreur et lecteur de voix ISD1820 avec Arduino
FunduinoDernière mise à jour le
20 Sekunden Ton aufnehmen und per Sensor wieder abspielen
Material
Was das Modul kann
Die Anschlüsse des ISD1820
Erste Versuche mit den Tastern am Modul
Das Modul per Arduino steuern
Sketch 1: Aufnehmen und abspielen im Wechsel
int REC = 8;
int PLAY = 7;
void setup()
{
pinMode(REC, OUTPUT);
pinMode(PLAY, OUTPUT);
// Die Ausgaenge werden beim Start auf LOW (0V) gesetzt,
// damit nicht versehentlich aufgenommen oder abgespielt wird.
digitalWrite(REC, LOW);
digitalWrite(PLAY, LOW);
}
void loop()
{
digitalWrite(REC, HIGH); // Aufnahme starten
delay(5000); // Aufnahmedauer 5 Sekunden
digitalWrite(REC, LOW); // Aufnahme beenden
delay(500); // Kurze Pause, bevor die Wiedergabe startet
// Ein kurzer Impuls auf P-E genuegt: die Aufnahme laeuft danach
// von allein bis zum Ende durch.
digitalWrite(PLAY, HIGH);
delay(50); // Der Impuls muss lang genug sein, um erkannt zu werden
digitalWrite(PLAY, LOW);
delay(20000); // 20 Sekunden Pause bis zur naechsten Aufnahme
}Erweiterung: Wiedergabe durch einen Sensor auslösen
Sketch 2: Wiedergabe durch einen Sensor ausloesen
int REC = 8;
int PLAY = 7;
int Sensor = 6;
int Sensorstatus = 0; // Variable fuer den Status des Sensors
void setup()
{
pinMode(REC, OUTPUT);
pinMode(PLAY, OUTPUT);
pinMode(Sensor, INPUT);
digitalWrite(REC, LOW);
digitalWrite(PLAY, LOW);
}
void loop()
{
Sensorstatus = digitalRead(Sensor);
// Achtung: hier steht ein doppeltes Gleichheitszeichen.
// Ein einfaches = wuerde dem Sensorstatus den Wert HIGH zuweisen,
// statt ihn zu vergleichen - die Bedingung waere dann immer wahr.
if (Sensorstatus == HIGH)
{
// Kurzer Impuls auf P-E startet die Wiedergabe
digitalWrite(PLAY, HIGH);
delay(50);
digitalWrite(PLAY, LOW);
// Warten, bis die Aufnahme durchgelaufen ist, damit sie nicht
// sofort wieder von vorne beginnt.
delay(20000);
}
}Évaluer le guide