Arduino-Code und Video: ISD1820 Arduino-Sprachrecorder

Arduino-Code und Video: ISD1820 Arduino-Sprachrecorder

Das ISD1820 ist ein einfaches Sprachaufnahme-Modul, das es Ihnen ermöglicht, mit einem Arduino Audio aufzunehmen und wiederzugeben. In diesem Tutorial lernen Sie, wie Sie das ISD1820 mit einem Arduino einrichten, um bis zu 20 Sekunden Ton aufzunehmen und auf Befehl wiederzugeben. Dieses Projekt ist ideal für Anfänger, die die Audioverarbeitung mit Arduino erkunden möchten.

isd1820 voice recording module

Im Verlauf dieses Tutorials finden Sie wichtige Bezeichner, die im Code verwendet werden, wie zum BeispielREC,PLAY_E, undPLAY_L. Diese Bezeichner entsprechen den Pins, die für Aufnahme- und Wiedergabefunktionen verwendet werden. Zusätzlich werden die bereitgestellten Codeausschnitte dazu beitragen, die Programmierlogik hinter diesem Projekt zu verdeutlichen. Für eine detailliertere Erklärung sollten Sie sich unbedingt das Video ansehen (im Video bei 00:00).

Hardware erklärt

Die Hauptkomponente dieses Projekts ist das ISD1820-Sprachaufnahmemodul, das Audio für bis zu 20 Sekunden aufnehmen kann. Es verfügt über mehrere Pins zur Steuerung von Aufnahme-, Wiedergabe- und Durchschleiffunktionen. Das Modul arbeitet mit einer Versorgungsspannung von 3 V bis 4,5 V, wodurch es mit den meisten Arduino-Boards kompatibel ist.

Zusätzlich zum ISD1820-Modul benötigen Sie ein Arduino-Board, einen Lautsprecher und ein Mikrofon. Das Arduino steuert die Aufnahme- und Wiedergabefunktionen über digitale Pins. Die Funktionsweise des Moduls ist einfach: Es nimmt Audio auf, wenn der Aufnahme-Pin auf HIGH gesetzt wird, und spielt Audio ab, wenn die Wiedergabe-Pins aktiviert werden.

Details zum Datenblatt

HerstellerISD1820
TeilenummerISD1820
Logik-/I/O-Spannung3.3 V typ.
Versorgungsspannung3.0 V bis 4.5 V
Ruhestrom0,5 µA typ.
Betriebsstrommax. 30 mA
Aufnahmedauer20 Sek. max.
Wiedergabezeit20 Sek. max.
Paket8-poliges DIP-Gehäuse

  • Stellen Sie sicher, dass die Versorgungsspannung zwischen 3,0 V und 4,5 V liegt, um eine Beschädigung des Moduls zu vermeiden.
  • Verwenden Sie Widerstände, um das 5V-Arduino-Signal auf das 3.3V-Logikniveau anzupassen und so eine sichere Schnittstelle zu gewährleisten.
  • Stromaufnahme überwachen; das Modul kann während des Betriebs bis zu 30 mA ziehen.
  • Schließen Sie einen Lautsprecher mit geringer Leistung (0,5 W) an den Audioausgang zur Wiedergabe an.
  • Das Modul unterstützt verschiedene Aufnahmedauern; passen Sie die Zeitsteuerung an Ihre Bedürfnisse an.

Verdrahtungsanleitung

Arduino wiring for ISD1820 voice_recorder
Arduino wiring for ISD1820 voice_recorder

Um das ISD1820 an dein Arduino zu verkabeln, beginne damit, die Anschlüsse des Moduls zu verbindenVCCSchließen Sie den Pin an den 3,3V-Ausgang des Arduino an. Als Nächstes verbinden Sie dasGNDVerbinden Sie den Pin des Moduls mit einem der GND-Pins des Arduino. Für die Steuerpins verbinden Sie die des ModulsRECPin an Arduino-Pin 2,PLAY_Ean Pin 3,PLAY_Lan Pin 4, undFTan Pin 5.

Da das Arduino mit 5V arbeitet, müssen Sie einen Spannungsteiler verwenden, um die Steuerpins sicher anzuschließen. Zum Beispiel verbinden Sie einen 5 kΩ-Widerstand vom Arduino-Pin mit dem Steuerpin des Moduls und schließen dann einen 3.3 kΩ-Widerstand vom Steuerpin des Moduls an Masse an. Wiederholen Sie diesen Vorgang für alle zusätzlichen Steuerpins, damit sie die richtigen Spannungspegel erhalten.

Codebeispiele und Schritt-für-Schritt-Anleitung

Das folgende Code-Snippet definiert die Pins, die für die Aufnahme und Wiedergabe verwendet werden. Dadurch können Sie in Ihrem Code einfach auf diese Pins verweisen, anstatt hartkodierte Werte zu verwenden.

#define REC 2 // pin 2 is used for recording
#define PLAY_E 3 // pin 3 is used for playback-edge trigger
#define PLAY_L 4 // pin 4 is used for playback

In der setup-Funktion initialisieren wir die Pins als Ausgänge. Dadurch wird sichergestellt, dass der Arduino das ISD1820-Modul effektiv steuern kann.

void setup() 
{
  pinMode(REC, OUTPUT); // set the REC pin as output
  pinMode(PLAY_L, OUTPUT); // set the PLAY_L pin as output
  pinMode(PLAY_E, OUTPUT); // set the PLAY_E pin as output
}

Die Hauptschleife prüft auf Benutzereingaben vom seriellen Monitor. Je nach empfangenem Zeichen löst sie die entsprechenden Aktionen aus, wie etwa das Aufzeichnen oder Abspielen von Audio.

void loop() {
  while (Serial.available() > 0) {
    char inChar = (char)Serial.read();
    if (inChar == 'p' || inChar == 'P') {
      digitalWrite(PLAY_E, HIGH); // Start playback
      delay(50);
      digitalWrite(PLAY_E, LOW); // Stop playback
    }
}

Diese bedingte Struktur ermöglicht die flexible Steuerung des ISD1820 anhand von Benutzereingaben und erleichtert so das Aufnehmen und Abspielen von Audio nach Bedarf. Für weitere Details finden Sie den vollständigen Code unterhalb des Artikels.

Demonstration / Was Sie erwartet

Sobald alles eingerichtet ist und der Code hochgeladen wurde, sollten Sie in der Lage sein, Audio aufzunehmen, indem Sie dasrBefehl über den seriellen Monitor und Wiedergabe mit dempBefehl. Das erwartete Verhalten umfasst eine Ausgabe im seriellen Monitor, die anzeigt, wann die Aufnahme beginnt und endet, sowie wann die Wiedergabe beginnt und endet. Beachte die im Code eingestellten Zeitangaben; zum Beispiel ist die Aufnahme auf 3 Sekunden und die Wiedergabe auf 5 Sekunden eingestellt (im Video bei 05:00).

Bilder

Arduino wiring for ISD1820 voice_recorder
Arduino wiring for ISD1820 voice_recorder
isd1820 voice recording module
isd1820 voice recording module
isd1820 voice recording module
isd1820 voice recording module
isd1820 voice recording module
isd1820 voice recording module
72-This is the Arduino code and video: ISD1820 Arduino Voice Recorder
Sprache: C++
Kopiert!

Dinge, die Sie vielleicht brauchen

Ressourcen & Referenzen

Noch keine Ressourcen vorhanden.

Dateien📁

Fritzing-Datei