Arduino MP3 Soundmodul WTV020-SD-16P

Arduino MP3 Soundmodul WTV020-SD-16P

EUR 4,56 auf Amazon (Stand 29.03.2018)

Wenn es geliefert wurde ist es so noch nicht einsetzbar. Man muss sich nun entscheiden ob man das Modul auf 3.3 oder 5 Volt laufen lassen möchte.
Dann muss man eine Lötbrücke auflöten. Siehe Bild (dort 5 Volt). Habe aber gelesen das man lieber 3.3 Volt nehmen soll. Eventuell sind 5 Volt zu viel !

Es wird auch noch eine Micro SD Karte benötigt. Laut Informationen sollte sie nicht größer als 1 GB sein. (Aber noch nicht getestet)
Als FAT formatiert.

Wir können den ersten Pin des WTV020-Moduls mit der Nummer 1 sehen. Die Pins nehmen im Gegenuhrzeigersinn zu, so dass wir Pin 16 auf der anderen Seite des Moduls haben. Die kleine Rille in der Modulplatine zeigt uns immer den oberen Teil davon. So verbinden wir Pin 1 des Moduls mit dem digitalen Pin 4 des Arduino. Dies ist der Reset-Pin. Wir verbinden Pin 7 mit dem digitalen Pin 5 des Arduino. Dies wird die Uhr sein. Verbinden Sie Pin 10 und 15 vom Modul mit den digitalen Pins 6 und 7 des Arduino. Dies sind die Daten und die belegten Pins. Schließlich verbinden wir 3,3 Volt mit Pin 16 des Moduls und Masse mit Pin 8. Denken Sie daran, 5 Volt „könnten“  das Modul beschädigen , also seien Sie vorsichtig, dass Sie nur 3.3V als Hauptstromquelle anschließen. In diesem Fall ist der Lautsprecher-Ausgang Pin 4 und 5 des WTV020-Moduls.

 

Sound:
muss 16 Bit/mono sein und .ad4 Format

Jetzt, wo Sie einen 16-Bit-Mono-Format-Sound haben, müssen Sie Ihre Datei umbenennen. Denken Sie daran, dass das Modul nur mit den Dateinamen 0000.ad4, 0001.ad4, 0002.ad4 funktioniert . Benennen Sie Ihre Datei als 0000.wav um. Dies wird der erste Track unserer SD-Karte sein. Wenn Sie mehr Dateien anzeigen möchten, nennen Sie einfach den zweiten 0001, den dritten 0002 usw.
Nun empfehle ich Ihnen, einen neuen Ordner namens „audio“ zu erstellen, zum Beispiel in C: / mit allen Benutzerrechten. Es muss in C: / sein, weil wir „cmd“ oder command prompt verwenden werden, um unsere Dateien zu konvertieren.
Laden Sie die nächste AD4converter.zip-Datei herunter und kopieren Sie die extrahierte Datei in diesen neuen „Audio“ -Ordner. Kopieren Sie auch Ihre WAV-Datei in dasselbe Verzeichnis.
Sie können das herunterladen AD4converter.zip

Ihr Ordner sollte nun ungefähr so ​​aussehen: Wir haben unseren „Audio“ Ordner im C: / Verzeichnis und darin den AD4converter und unsere 0000.wav Datei. Gehen Sie jetzt zum Starten und geben Sie cmd ein und öffnen Sie die Eingabeaufforderung. Geben Sie cd .. ein damit geht man  zurück in das vorherigen Verzeichnis , bis Sie zu C : / kommen . Einmal in
C:   / CD-Audio eingeben und Enter drücken, um den Audio-Ordner zu öffnen. Geben Sie im AUIDO-Ordner AD4converter -E4 0000.wav ein und drücken Sie die Eingabetaste. Dies sollte die Datei konvertieren und eine neue 0000.ad4-Datei im Audio-Ordner erstellen. Jetzt bist du fertig. Kopieren Sie einfach die Datei 0000.ad4 auf Ihre vorformatierte MicroSD-Karte. Führen Sie die gleichen Schritte für andere Dateien aus und füllen Sie Ihre SD-Karte.

 

Arduino-Code

Laden Sie zuerst die wtv020-Bibliothek herunter.
Diese muss nun in Arduino geladen werden. Sketch>Bibliothek einbinden>.ZIP Bibliothek einbinden und das File aussuchen.

Beispiel Code:

/* Example: Control a WTV020-SD-16P module to play voices from an Arduino board. */

#include „Wtv020sd16p.h“

int resetPin = 4; // The pin number of the reset pin.
int clockPin = 5; // The pin number of the clock pin.
int dataPin = 6; // The pin number of the data pin.
int busyPin = 7; // The pin number of the busy pin.
/* Create an instance of the Wtv020sd16p class.
1st parameter: Reset pin number.
2nd parameter: Clock pin number.
3rd parameter: Data pin number.
4th parameter: Busy pin number. */
Wtv020sd16p wtv020sd16p(resetPin,clockPin,dataPin,busyPin);
void setup() { //Initializes the module.
wtv020sd16p.reset();
}
void loop() {
////////////////////////////////////////////
//This are all the functions for the WTV020 module
//Use yours and delete the others
//Each function is explained
///////////////////////////////////////////
//Plays synchronously an audio file. Busy pin is used for this method.
//wtv020sd16p.playVoice(0);
//Plays asynchronously an audio file.
wtv020sd16p.asyncPlayVoice(1);
//Plays audio file number 1 during 5 seconds.
delay(5000);
//Pauses audio file number 1 during 5 seconds.
//wtv020sd16p.pauseVoice();
//delay(5000);
//Resumes audio file number 1 during 5 seconds.
//wtv020sd16p.pauseVoice();
//delay(5000);
//Stops current audio file playing.
//wtv020sd16p.stopVoice();
//Plays synchronously an audio file. Busy pin is used for this method.
//wtv020sd16p.asyncPlayVoice(2);
//delay(2000);
//Mutes audio file number 2 during 2 seconds.
//wtv020sd16p.mute();
//delay(2000);
//Unmutes audio file number 2 during 2 seconds.
//wtv020sd16p.unmute();
//delay(2000);
//Stops current audio file playing.
//wtv020sd16p.stopVoice();
}

Arduino 433 MHz Modul

433MHz

433MHz_fritzing

Arduino – Sketch – Sender:
  
 //    433 mhz Blink - Sender Sketch 
           
 

 #define rfsenderPin 4  //RF Sender pin = digital pin 4
 #define ledPin 13        //Onboard LED = digital pin 13

 void setup(){
   pinMode(rfsenderPin, OUTPUT);     
   pinMode(ledPin, OUTPUT);    
 }

 void loop(){
   for(int i=4000; i>5; i=i-(i/3)){
     digitalWrite(rfsenderPin, HIGH);     //sendet ein HIGH Signal
     digitalWrite(ledPin, HIGH);            //LED anschalten
     delay(2000);                           //1 Sekunde warten
     
     digitalWrite(rfsenderPin,LOW);      //sendet ein LOW Signal
     digitalWrite(ledPin, LOW);            //LED ausschalten
     delay(i);                            //variabler Delay
   }
 }
--------------------------------------------------------

Arduino - Sketch - Empfänger
  //    433 mhz Blink - Sender Sketch



 #define rfReceivePin A0  //RF Empfänger Pin = Analog pin 0
 #define ledPin 13        //Onboard LED = digital pin 13

 unsigned int data = 0;   // Variable zum speichern empfangener Daten
 const unsigned int upperThreshold = 70;  //Höchster Schwellenwert
 const unsigned int lowerThreshold = 50;  //niedrigster Schwellenwert

 void setup(){
   pinMode(ledPin, OUTPUT);
   Serial.begin(9600);
 }

 void loop(){
   data=analogRead(rfReceivePin);    //warten auf Daten am Analog pin 0
   
    if(data>upperThreshold){
     digitalWrite(ledPin, LOW);   //Wenn ein LOW Signal empfangen wird, LED AUS
     Serial.println(data);
   }
   
   if(data<lowerThreshold){
     digitalWrite(ledPin, HIGH);   //Wenn ein HIGH Signal empfangen wird, LED AN
     Serial.println(data);
   }
 }