Nr. 48 – ISD1820 Sprachrekorder und Sprachwiedergabe mit Arduino

Inhaltsverzeichnis

Für dieses Projekt benötigst du

Ein ISD1820 Sprachrekordermodul am Arduino Mikrocontroller verwenden

Das Sprachaufzeichnungsmodul basiert auf dem ISD1820 Chip. Er kann kurze Sequenzen aus Sprache oder anderen Geräuschen von ca. 20 Sekunden Länge aufnehmen und auch wiedergeben. Die Ansteuerung dieses Moduls mit Arduino ist einfach, da die Funktionen Aufnahme und Wiedergabe über ein einfaches Spannungssignal gesteuert werden, wie man es beispielsweise von der Ansteuerung einer Leuchtdiode kennt.

Zusätzlich besteht die Möglichkeit, das Modul als kleinen Verstärker zu verwenden. Hierzu muss durch Verstellen eines Jumpers die Aufnahme und Wiedergabe gleichzeitig aktiviert wird. Der ISD1820 Chip wird in dieser Form auch in anderen Zusammenhängen verwendet. Zum Beispiel in Spielzeugläden, in denen Kinder mit einem Knopfdruck „Durchsagen“ machen können.

Funktionen des ISD1820 Chips

  • Funktionsstart per Taster am Modul, per Impuls oder dauerhaftem Spannungspegel.
  • Automatischer Ausschaltmodus
  • 8 Ohm Lautsprechertreiber integriert
  • 3.3V Spannungsversorgung
  • Bis zu 20 Sekunden Tonaufnahme

Pinout

  • VCC = 3,3-5V Stromversorgung (+)
  • GND = Spannung (-)
  • REC = Das Modul beginnt mit der Aufnahme, wenn an REC eine Spannung (HIGH) anliegt. Dieser Pin muss für die Dauer der Aufnahme mit Spannung versorgt bleiben.
  • FT  „Feed Through“ = Durch die Ansteuerung dieses Pins werden Mikrofon und Lautsprecher zeitgleich aktiviert. Aufnahme und Wiedergabe sind dann zeitgleich aktiv.
  • P-E – Wiedergabe, Edge aktiviert = Durch die Ansteuerung dieses Pins wird die Wiedergabe gestartet und fortgesetzt, bis eine EOM-Markierung (End-of-Message) gefunden wird oder das Ende des Speicherplatzes erreicht ist.
  • P-L – Wiedergabe, Pegel aktiviert = Durch die Ansteuerung dieses Pins von LOW nach HIGH wird die Wiedergabe gestartet. Die Wiedergabe bleibt jedoch nur so lange aktiv, wie der Pegel auf HIGH bleibt.
  • SP+ und SP- = Lautsprecherausgang. Hier wird ein Lautsprecher mit 8 Ohm angeschlossen
  • MIC = Mikrofoneingang, der Mikrofoneingang überträgt seine Signale an den Onboard-Vorverstärker
Onboard Taster: 
  • REC = Das Modul beginnt mit der Aufnahme, wenn an REC eine Spannung (HIGH) anliegt. Dieser Pin muss für die Dauer der Aufnahme mit Spannung versorgt bleiben.
  • PLAYE = Wiedergabe, Edge-aktiviert: Wenn ein HIGH-Übergang erkannt wird, wird die Wiedergabe gestartet und fortgesetzt, bis eine EOM-Markierung (End-of-Message) gefunden wird oder das Ende des Speicherplatzes erreicht ist.
  • PLAYL = Wiedergabe, Pegel aktiviert. Wenn dir Pegel von LOW nach HIGH wechselt, wird ein Wiedergabezyklus eingeleitet

Jumperpositionen

  • FT  „Feed Through“ = Durch Anschließen des Jumpers kann das Mikrofon in diesem Modus den Lautsprecher direkt ansteuern. Aufnahme und Wiedergabe sind dann zeitgleich aktiv.
  • P-E = Spielt die Aufnahme in Dauerschleife ab.

Verkabelung am Arduino bei Verwendung der Onboardtaster

In diesem Fall bekommt das Modul lediglich die Versorgungsspannung vom Arduino-Mikrocontroller. An dessen Stelle könnte auch eine andere Spannungsquelle verwendet werden.

Durch die Verwendung der Tasten am ISD1820 Modul können alle Funktionen genutzt werden. In dieser Anleitung wird ein Arduino UNO verwendet, um das Modul mit Strom zu versorgen.

  • VCC = 3,3V auf dem Arduino Board
  • GND = GND auf dem Arduino Board
  • USB = USB-Port am Arduino Board

Erste Versuche mit den Tastern am ISD1820 Modul

  • Drücken Sie die REC-Taste und halten Sie die Taste bis zum Ende der Aufnahme gedrückt.
  • Lassen Sie die REC-Taste los
  • Wählen Sie den Wiedergabemodus
    • PLAYE = Sie drücken diese Taste nur einmal und die gesamte Aufnahme wird bis zum Ende der Tonaufnahme abgespielt.
    • PLAYL = Sie halten die Taste gedrückt, bis Sie die Wiedergabe beenden möchten.

Steuerung des ISD1820 Moduls per Arduino

Es ist im Bereich des Arduino-Mikrocontrollings viel interessanter, das Modul per Arduino anzusteuern. Dazu verkabeln wir neben der Spannungsversorgung noch die beiden Pins P-E und REC. P-E wird am Arduino Uno and Pin 7 angeschlossen, und REC an Pin 8

In der ersten Aufgabe soll jeweils in einem Abstand von 20 Sekunden eine Tonaufzeichnung für 5 Sekunden gestartet und im Anschluss abgespielt werden.

Beispielsketch

int REC=8;
int PLAY=7;

void setup()
{
pinMode(REC, OUTPUT);
pinMode(PLAY, OUTPUT);

// Die Ausgänge werden beim Start des Mikrocontrollers auf LOW (0V) gesetzt, damit nicht versehentlich aufgenommen oder abgespielt wird.

digitalWrite(REC,LOW);
digitalWrite(PLAYLOW);

}

void loop()
{
digitalWrite(REC,HIGH); // Starten der Aufnahme
delay(5000); // Aufnahmedauer 5 Sekunden (5000 Millisekunden)
digitalWrite(REC,LOW); // Beenden der Aufnahme, indem die Spannung am REC-Pin deaktiviert wird.
digitalWrite(play,HIGH); // Wiedergabe der Aufnahme startet

digitalWrite(play,LOW); // Die Spannung am Pin wird deaktiviert. Durch die Nutzung des „P-E“ Pins wird die Aufnahme dennoch bis zum Schluss abgespielt.
delay(5000); // Die Wiedergabe läuft für 5 Sekunden (5000 Millisekunden)
delay(20000); //Nach der Widergabe pausiert das Modul für 20 Sekunden.
}
}

Erweiterung des Skteches

In diesem Beispiel wird an Pin 6 ein Sensor angebracht. Das kann unter anderem ein Feuchtigkeitssensor, ein Lichtsensor oder ein Temperatursensor sein. Sobald von diesem Sensor ein Signal kommt, wird eine vorher über die „REC-“ Taste aufgenommene Tonaufnahme abgespielt.

int REC=8;
int PLAY=7;
int Sensor=6;

int Sensorstatus=0; // Variable für den Status des Sensors

void setup()
{
pinMode(REC, OUTPUT);
pinMode(PLAY, OUTPUT);
pinMode(Sensor, INPUT);

// Die Ausgänge werden beim Start des Mikrocontrollers auf LOW (0V) gesetzt, damit nicht versehentlich aufgenommen oder abgespielt wird.

digitalWrite(rec,LOW);
digitalWrite(play,LOW);

}

void loop()
{

Sensorstatus=digitalRead(Sensor);

if(Sensorstatus=HIGH) // Wenn der Sensor eine Aktivität meldet, beginnt die folgende Schleife.
{

digitalWrite(play,HIGH); // Wiedergabe der Aufnahme startet

digitalWrite(play,LOW); // Die Spannung am Pin wird deaktiviert. Durch die Nutzung des „P-E“ Pins wird die Aufnahme dennoch bis zum Schluss abgespielt.

}
}

Funduino - Dein Onlineshop für Mikroelektronik

  • Dauerhaft bis zu 10% Rabatt für Schüler, Studenten und Lehrkräfte
  • Mehr als 3.500 Artikel sofort verfügbar!
  • Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.
SALE