Project showcase
Rubber Chicken Subwoofer

Rubber Chicken Subwoofer

Make a Bluetooth speaker that works on rubber chickens, phase one is to make a subwoofer from said rubber chickens.

  • 1,744 views
  • 1 comment
  • 4 respects

Components and supplies

Necessary tools and machines

09507 01
Soldering iron (generic)

Apps and online services

About this project

I had the idea to make a funny Bluetooth speaker that makes noise by physically squeezing those squawking rubber chickens. I have a YouTube channel where I make these kinds of projects and figured I'd share it on Arduino!

The device works by using an incoming audio signal via salvaged bluetooth earbuds. Then splitting the signal into 7 different channels using an Audio Analyzer (DFRobot brand), those signals get sent an Arduino Mega which then triggers a 12V solenoid. The solenoid is triggered by a circuit using a 30N06L MOSFET.


Code

Solenoid code.C/C++
Code to activate solenoid(s) based on defined frequencies.
#include <AudioAnalyzer.h>

#define msgRST 12
#define msgStrobe 13
#define msgAnalog 0
Analyzer Audio = Analyzer(10, 11, 0); //Strobe pin ->10  RST pin ->11 Analog Pin ->0


int LEDpins[7] = {2, 3, 4, 5, 6, 7, 8};
int FreqVal[7] = {63, 160, 400, 1000, 2500, 6250, 16000};

void setup()
{
  Serial.begin(57600);  //Init the baudrate
  Audio.Init();         //Init module

  for (int x = 0; x < 7; x++) {
    pinMode(LEDpins[x], OUTPUT);
  }
  pinMode(msgRST, OUTPUT);
  pinMode(msgStrobe, OUTPUT);
}


void loop()
{
  Audio.ReadFreq(FreqVal);      //return 7 value of 7 bands pass filter
  //Frequency(Hz):63  160  400  1K  2.5K  6.25K  16K
  //FreqVal[7]:      0    1    2    3    4    5    6
  digitalWrite(msgRST, HIGH);
  delay(20);
  digitalWrite(msgRST, LOW);

  for (int x = 0; x < 7; x++)
  {
    digitalWrite(msgStrobe, LOW);
    delayMicroseconds(20);
    int spectrumRead = analogRead(0);
    int PWMvalue = map(spectrumRead, 0, 1024, 0, 255);
    if (PWMvalue < 75)
      PWMvalue = PWMvalue / 100;
    analogWrite(LEDpins[x], PWMvalue);
    digitalWrite(msgStrobe, HIGH);

    
    Serial.print(max((FreqVal[x] - 100), 0));     //Transmit the DC value of the seven bands
    if (x < 6)  Serial.print(",");
    else Serial.println();
  }



}

Schematics

Circuit Diagram
Use 12v Power Supply, 30N06L Mosfet, and 4006 Zener Diode
Circuit eoqlm6g0qt

Comments

Similar projects you might like

Arduino MEGA Guitar Pedal

Project tutorial by electrosmash

  • 22,894 views
  • 3 comments
  • 128 respects

VSB Chicken Coop Door Opener Repair / Upgrade

Project tutorial by Erik de Ruiter

  • 5,335 views
  • 9 comments
  • 28 respects

Arduino Mega Chess

Project showcase by Sergey_Urusov

  • 35,505 views
  • 76 comments
  • 165 respects

PENXZYL 3.0 :: Arduino Brush Plotter :: CNC

Project showcase by Guiye Perez Bongiovanni

  • 10,096 views
  • 6 comments
  • 35 respects

Massive MIDI Controller for Full Bucket FB3100 Synthesizer

Project showcase by kboutorabi

  • 8,479 views
  • 1 comment
  • 27 respects

A.S.C.H. (Automatic Safe Chicken House)

Project showcase by Team A.S.C.H.

  • 7,130 views
  • 2 comments
  • 27 respects
Add projectSign up / Login