Sound to RC Servo Driver v2.0 – Arduino Compatible

The project presented here is made for applications such as Animatronics, Puppeteer, sound-responsive toys, and robotics. The Arduino compatible board consists of LM358 OPAMP, ATMEGA328 microcontroller, microphone, and other components. The project moves the RC servo once receives any kind of sound.  The rotation angle depends on the sound level, the higher the sound level the bigger the movement, in other words, the movement of the servo is proportional to the sound level. The microphone picks up the soundwave and converts it to an electrical signal, this signal is amplified by LM358 op-amp-based dual-stage amplifier, D1 helps to rectify the sinewave into DC, and C8 works as a filter capacitor that smooths the DC voltage. ATmega328 microcontroller converts this DC voltage into a suitable RC PWM signal.

The project is Arduino compatible and an onboard connector is provided for the boot-loader and Arduino IDE programming. Arduino code is available as a download, and Atmega328 chips must be programmed with a bootloader before uploading the code. Users may modify the code as per requirement. More information on burning the bootloader is here: https://www.arduino.cc/en/Tutorial/BuiltInExamples/ArduinoToBreadboard

Direct Audio Input: The audio input signal should not exceed 5V, It is important to maintain the input audio signal at this maximum level, otherwise it can damage the ADC of ATMEGA328.

Features

  • Supply 5V to 6V DC (Battery Power Advisable)
  • RC Servo Movement 180 Degrees with Loud sound
  • Direct Sound Input Facility Using 3.5MM RC Jack
  • On Board Jumper Selection for Micro-Phone Audio or External Audio Signal
  • On Board Trimmer Potentiometer to Adjust the Signal Sensitivity
  • Flexible Operation, Parameters Can be Changed using Arduino Code
  • PCB Dimensions 44.45 x 36.20 mm

Connections and Other Details

  • CN1 Arduino Programming and Boot-Load Connector: Pin 1 = TX, Pin 2 = RX, Pin 3 = Reset, Pin 4 = GND, Pin 5 = VCC 5V DC, Pin 6 = D11, Pin 7 = D12, Pin 8 = D13
  • CN2 Direct Audio Input: Optional, Pin 1 Audio from External Speaker, Pin 2 = GND
  • CN3 Stereo EP 3.5MM Female Connector for External Audio Signal Input from Speaker
  • CN4 DC Input: Pin 1 VDD 5V to 6V DC, Pin 2 GND
  • CN5: No USE – Optional
  • CN6: RC Servo
  • Jumper J1: Input Signal Source Selection (External Audio Signal or Microphone)
  • PR1 Trimmer Potentiometer: Audio Signal Level Adjust
  • MK1: Condenser Microphone

Arduino Programming

Schematic

Parts List

NOQNTY.REF.DESC.MANUFACTURERSUPPLIER SUPPLIER PART NO
11CN18 PIN MALE HEADER PITCH 2.54MMWURTHDIGIKEY732-5321-ND
21CN22 PIN MALE HEADER PITCH 2.54MMWURTHDIGIKEY732-5315-ND
31CN3STEREO SOCKET 3.5MM FEMALECUI DEVICESDIGIKEYCP1-3525N-ND
41CN42 PIN SCREW TERMINAL PITCH 5.08MMPHOENIXDIGIKEY277-1247-ND
51CN53 PIN MALE HEADER PITCH 2.54MM WURTHDIGIKEY732-5316-ND
61CN63 PIN MALE HEADER PITCH 2.54MM WURTHDIGIKEY732-5316-ND
71C110uF/10V CERAMIC SMD SIZE 0805MURATA/YAGEODIGIKEY
86C2,C3,C5,C12,C4,C6100nF/50V CERAMIC SMD SIZE 0805MURATA/YAGEODIGIKEY
91SHUNTSHUNT FOR JUMPERSULLINS CONNCTDIGIKEYS9001-ND
103U3,C7,R10DNP
111C810uF/50V SMD ELECTROLYTICWURTHDIGIKEY732-8451-1-ND
121C9470uF/16V SMD ELECTROLYTICELITEDIGIKEY4191-CEE1C471MCB08A5CT-ND
132C10,C1122PF/50V SMD SIZE 0805MURATA/YAGEODIGIKEY
142D1,D21N4148 SMDONSEMIDIGIKEYFDLL4148CT-ND
151D3LED RED SMD SIZE 0805LITE ON INCDIGIKEY160-1427-1-ND
161J13 PIN MALE HEADER PITCH 2.54MM WURTHDIGIKEY732-5316-ND
171MK1CONDENSOR MICEPUI AUDIODIGIKEY668-1484-ND
186R1,R2,R5,R6,R7,R1110K 5% SMD SIZE 0805MURATA/YAGEODIGIKEY
193R3,R4,R131K 5% SMD SIZE 0805MURATA/YAGEODIGIKEY
201R824K 5% SMD SIZE 0805MURATA/YAGEODIGIKEY
211R91E 5% SMD SIZE 0805MURATA/YAGEODIGIKEY
221R12 1M 5% SMD SIZE 0805MURATA/YAGEODIGIKEY
231U1LM358 SMD SOIC8TIDIGIKEY296-LM358DRCT-ND
241U2ATMEGA328TQPF-32MICROCHIPDIGIKEYATMEGA328PB-AURCT-ND
251X116MhzECS INCDIGIKEYX1103-ND
261PR110K TRIMMER POTKYOCERADIGIKEY478-601030-ND

Connections

Gerber View

Code

/*
 Controlling a servo position using a potentiometer (variable resistor)
 by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>

 modified on 8 Nov 2013
 by Scott Fitzgerald
 http://www.arduino.cc/en/Tutorial/Knob
*/
  
#include <Servo.h>

Servo myservo;  // create servo object to control a servo

int potpin = A2;  // analog pin used to connect the potentiometer
int val;    // variable to read the value from the analog pin

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 60)
  val = map(val, 0, 60, 0, 180);     // scale it for use with the servo (value between 0 and 180)
  myservo.write(val);                  // sets the servo position according to the scaled value
  delay(15);                           // waits for the servo to get there
}

 

Photos

 

Video


Atmega328 Datasheet

Please follow and like us:
Pin Share

PCB

Subscribe
Notify of
guest

13 Comments
Inline Feedbacks
View all comments
David

another great project.I am building the older version now. getting these boards made now. could this work with rssi pins. for maybe an s-meter on a chip that has rssi output??? RSSI = RELATIVE SIGNAL STRENGTH INDICATOR.

Bob

is there any link to instructions bootloading this board?

Seb

I’m looking to buy this board but I only find the v1 on the e-shop, out-of-stock. Will v2 be sold in the shop? Thanks !

Seb

I would need just one. Thanks !

Seb

Do you have any reference from Digikey for the resistors and the capacitor ? Seems to be missing from the BOM.

Saulo Bernardo

Hello,

Congratulations! It´s an amazing product!
My name´s Saulo Bernardo. I ‘d like to know if you send this product to Brazil.
What I need to do to buy it? (SOUND TO RC SERVO DRIVER V2.0)

Saulo Bernardo

I would like only three. Is it possible?
I will pay for shipping and other fees.

RELATED PROJECTS

TOP PCB Companies