Ordered on weekdays before 14:00 = shipped the same day and delivered the next day in 98% of cases. Free returns 30-day reflection period 1-year warranty

Wiring diagram and code example

How to connect the Speaker 3W 40mm to an Arduino UNO or ESP32, with an example sketch you can upload straight away.

3W Speaker Melody Demo

This project plays an 8-note musical scale on a 3W speaker using Arduino's built-in tone() function. The positive terminal connects to digital pin 9 and the negative terminal to GND. Note: while this direct connection works for simple tone generation, an audio amplifier is recommended for full volume and sound quality.

Wiring diagram: Speaker 3W 40mm on an Arduino UNO
Wiring diagram · Click to enlarge
Connection table: Speaker 3W 40mm on an Arduino UNO
Connection table · Click to enlarge
3W_Speaker_Melody_Demo.ino · compiled and verified
/*
 * ==================================================================
 *  Generated by Codey.online  —  https://www.codey.online
 * ==================================================================
 *  Project   : 3W Speaker Melody Demo
 *  Board     : Arduino UNO (arduino:avr:uno)
 *  Parts     : Speaker 3W
 *  Libraries : none (built-in)
 *
 *  Codey Online is an AI-powered browser IDE for Arduino and ESP32.
 *  Describe your project and Codey writes the code, draws the wiring
 *  diagram and uploads it to your board, straight from the browser.
 *  This code is free to use, modify and share, without warranty.
 * ==================================================================
 */

const int speakerPin = 9;

// Musical notes (C4 to C5 scale in Hz)
const int notes[] = { 262, 294, 330, 349, 392, 440, 494, 523 };
const int noteCount = sizeof(notes) / sizeof(notes[0]);

void setup() {
  Serial.begin(115200);
  Serial.println(F("3W Speaker Melody Demo"));
}

void loop() {
  for (int i = 0; i < noteCount; i++) {
    tone(speakerPin, notes[i], 200);
    delay(250);
  }
  
  noTone(speakerPin);
  delay(1000);
}

Wiring diagram and example code generated by Codey.online — https://www.codey.online

ESP32 3W Speaker Tone Player with MAX98357A

This project plays musical tones through a 3W speaker using the ESP32 built-in I2S audio interface and a MAX98357A Class-D amplifier. The ESP32 synthesizes audio samples in software and streams them via I2S to the amplifier, which powers the speaker directly.

Wiring diagram: Speaker 3W 40mm on an ESP32 DevKit V1
Wiring diagram · Click to enlarge
Connection table: Speaker 3W 40mm on an ESP32 DevKit V1
Connection table · Click to enlarge
ESP32_3W_Speaker_Tone_Player_with_MAX983.ino · compiled and verified
/*
 * ==================================================================
 *  Generated by Codey.online  —  https://www.codey.online
 * ==================================================================
 *  Project   : ESP32 3W Speaker Tone Player with MAX98357A
 *  Board     : ESP32 DEVKIT V1 (esp32:esp32:esp32doit-devkit-v1)
 *  Parts     : Speaker 3W
 *  Libraries : none (built-in)
 *
 *  Codey Online is an AI-powered browser IDE for Arduino and ESP32.
 *  Describe your project and Codey writes the code, draws the wiring
 *  diagram and uploads it to your board, straight from the browser.
 *  This code is free to use, modify and share, without warranty.
 * ==================================================================
 */

#include <driver/i2s.h>
#include <math.h>

#define I2S_BCLK_PIN   26
#define I2S_LRC_PIN    25
#define I2S_DIN_PIN    22
#define SAMPLE_RATE    44100

// Musical notes (frequencies in Hz)
const float notes[] = { 261.63, 329.63, 392.00, 523.25 }; // C4, E4, G4, C5

void playTone(float freq, int durationMs) {
  int totalSamples = (SAMPLE_RATE * durationMs) / 1000;
  int16_t buffer[128];
  size_t bytesWritten;

  for (int i = 0; i < totalSamples; ) {
    int chunkSize = min(64, totalSamples - i);
    for (int j = 0; j < chunkSize; j++) {
      int16_t sample = (int16_t)(sin(2.0 * M_PI * freq * (i + j) / SAMPLE_RATE) * 8000);
      buffer[j * 2]     = sample; // Left channel
      buffer[j * 2 + 1] = sample; // Right channel
    }
    i2s_write(I2S_NUM_0, buffer, chunkSize * 4, &bytesWritten, portMAX_DELAY);
    i += chunkSize;
  }
}

void setup() {
  Serial.begin(115200);
  Serial.println("I2S Speaker Demo Initializing...");

  i2s_config_t i2s_config = {
    .mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX),
    .sample_rate = SAMPLE_RATE,
    .bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT,
    .channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT,
    .communication_format = I2S_COMM_FORMAT_STAND_I2S,
    .intr_alloc_flags = ESP_INTR_FLAG_LEVEL1,
    .dma_buf_count = 8,
    .dma_buf_len = 64,
    .use_apll = false
  };

  i2s_pin_config_t pin_config = {
    .bck_io_num = I2S_BCLK_PIN,
    .ws_io_num = I2S_LRC_PIN,
    .data_out_num = I2S_DIN_PIN,
    .data_in_num = I2S_PIN_NO_CHANGE
  };

  i2s_driver_install(I2S_NUM_0, &i2s_config, 0, NULL);
  i2s_set_pin(I2S_NUM_0, &pin_config);

  Serial.println("Setup complete. Playing melody...");
}

void loop() {
  for (int i = 0; i < 4; i++) {
    Serial.print("Playing note frequency: ");
    Serial.println(notes[i]);
    playTone(notes[i], 300);
    delay(50);
  }
  delay(1000);
}

Wiring diagram and example code generated by Codey.online — https://www.codey.online

Speaker 3W 40mm

Small speaker with a diameter of 40mm.

Power: 3 Watt
Impedance: 4 Ohm

Height: 19mm

Color: Black

  • 40 mm diameter
  • 19 mm high
  • 3 watt
  • 4 ohm

Why choose this product?

  • Compact size – 40 mm diameter, only 19 mm high.
  • Low power – 3 watts for simple audio setups.
  • 4 ohm impedance – Suitable for 4 ohm systems.
  • Black finish – Finished in black.
Specifications
Colorblack
Power3 W
Resistance4 Ohm
Diameter40 mm
Height19 mm

Frequently bought together

Total: € 14,74

Reviews

★★★★★ 4,0/5 1 review
  • ★★★★★Maarten de WitVerified purchase

    Better than expected, vibrates a lot at higher volumes

Write a review
Your rating

Shipping & returns

Shipping

  • Parcel with track & trace€ 7,70Within 24 hours
  • Pick up at PostNL location€ 7,40Within 24 hours
  • Letterbox parcel€ 3,70Within 2 business days
  • Letterbox parcel 24 hours€ 4,55Within 24 hours
  • Pick up in storeFree
All about shipping

Returns

Not satisfied? You have 30 days after delivery to return the product.

All about returns