ICStation Team
Published

APR9600 Voice Recording and Playback System

This design uses a APR9600 voice chip as the core of the circuit and realizes the function of auto recording and playback.

BeginnerFull instructions provided764
APR9600 Voice Recording and Playback System

Things used in this project

Hardware components

ICStation Mega2560
ICStation Mega2560
×1
830 Point Solderless PCB Bread Board MB-102 Test DIY
×1
2K 202 Blue White Resistance Adjustable Resistor
×1
APR9600 voice chip
×1
JRC386D power amplifier chip
×1
Electret condenser microphone
×1
Breadboard Plug Wire Cable Tire
×1
Dupont 20cm Color Cable Line 1p-1p Pin Connector
×1
+5 DC power supply
×1
8Ω 0.5W Small Trumpet 36mm Diameter Loudspeaker
×1
6X6X5mm Tact Switches 4 Legs
×9
2mm Pitch 8 Pins 4 Position Slide Type DIP Switch
×1
LED Light Emitting Diode
×2
220uF 25V 105°C Radial Electrolytic Capacitor
×1
100uF 50V Radial Electrolytic Capacitor
×1
0.047UF 50V 473 Ceramic Capacitor DIP
×1
10UF 25V Radial Electrolytic Capacitor
×1
47UF 25V Radial Electrolytic Capacitor
×2
4.7UF 50V Radial Electrolytic Capacitor
×1
0.1UF 275V Polypropylene Safety Capacitor
×6
1K-100K 400 1/4w Resistance
×5
1K ohm 1/4W 1% Accuracy Metal Film Resistor
×2
4.7k ohm 1/4W 1% accuracy Metal Film Resistors
×1
470K ohm 1/4W 1% Accuracy Metal Film Resistor
×1
43K ohm 1/4W 1% Accuracy Metal Film Resistor
×1

Story

Read more

Code

APR9600_voice_record.ino

C/C++
#define uchar unsigned char 
#define uint unsigned int 
uint Key_1=30;
uint Key_2=31;
uint Key_3=32;
uint Key_4=33;
uint Key_5=34;
uint Key_6=35;
uint Key_7=36;
uint Key_8=37;
uint Code_1=3;
uint Code_2=4;
uint Code_3=5;
uint Code_4=6;
uint Code_5=7;
uint Code_6=8;
uint Code_7=9;
uint Code_8=10;

void setup()
{
  pinMode(Key_1,INPUT);
  pinMode(Key_2,INPUT);
  pinMode(Key_3,INPUT);
  pinMode(Key_4,INPUT);
  pinMode(Key_5,INPUT);
  pinMode(Key_6,INPUT);
  pinMode(Key_7,INPUT);
  pinMode(Key_8,INPUT);
  pinMode(Code_1,OUTPUT);
  pinMode(Code_2,OUTPUT);
  pinMode(Code_3,OUTPUT);
  pinMode(Code_4,OUTPUT);
  pinMode(Code_5,OUTPUT);
  pinMode(Code_6,OUTPUT);
  pinMode(Code_7,OUTPUT);
  pinMode(Code_8,OUTPUT);
  digitalWrite(Code_1,HIGH);
  digitalWrite(Code_2,HIGH);
  digitalWrite(Code_3,HIGH);
  digitalWrite(Code_4,HIGH);
  digitalWrite(Code_5,HIGH);
  digitalWrite(Code_6,HIGH);
  digitalWrite(Code_7,HIGH);
  digitalWrite(Code_8,HIGH);
  digitalWrite(Key_1,HIGH);
  digitalWrite(Key_2,HIGH);
  digitalWrite(Key_3,HIGH);
  digitalWrite(Key_4,HIGH);
  digitalWrite(Key_5,HIGH);
  digitalWrite(Key_6,HIGH);
  digitalWrite(Key_7,HIGH);
  digitalWrite(Key_8,HIGH);
}

void loop()
{
  if(digitalRead(Key_1)==0)
    {
      delay(10);
      if(digitalRead(Key_1)==0)
      {
        digitalWrite(Code_1,LOW);
        digitalWrite(Code_2,HIGH);
        digitalWrite(Code_3,HIGH);
        digitalWrite(Code_4,HIGH);
        digitalWrite(Code_5,HIGH);
        digitalWrite(Code_6,HIGH);
        digitalWrite(Code_7,HIGH);
        digitalWrite(Code_8,HIGH);
        delay(10);
      }
      if(digitalRead(Key_1)!=0)
      {
        digitalWrite(Code_1,HIGH);
        digitalWrite(Code_2,HIGH);
        digitalWrite(Code_3,HIGH);
        digitalWrite(Code_4,HIGH);
        digitalWrite(Code_5,HIGH);
        digitalWrite(Code_6,HIGH);
        digitalWrite(Code_7,HIGH);
        digitalWrite(Code_8,HIGH);
        delay(10);
      }
    }
    
   if(digitalRead(Key_2)==0)
    { 
      delay(10);  
      if(digitalRead(Key_2)==0)
      {
        digitalWrite(Code_1,HIGH);
        digitalWrite(Code_2,LOW);
        digitalWrite(Code_3,HIGH);
        digitalWrite(Code_4,HIGH);
        digitalWrite(Code_5,HIGH);
        digitalWrite(Code_6,HIGH);
        digitalWrite(Code_7,HIGH);
        digitalWrite(Code_8,HIGH);
        delay(10);
      }    
      if(digitalRead(Key_2)!=0)
      {
        digitalWrite(Code_1,HIGH);
        digitalWrite(Code_2,HIGH);
        digitalWrite(Code_3,HIGH);
        digitalWrite(Code_4,HIGH);
        digitalWrite(Code_5,HIGH);
        digitalWrite(Code_6,HIGH);
        digitalWrite(Code_7,HIGH);
        digitalWrite(Code_8,HIGH);
        delay(10);
      }
    }
    
   if(digitalRead(Key_3)==0)
    {
       delay(10);
      if(digitalRead(Key_3)==0)
      {
        digitalWrite(Code_1,HIGH);
        digitalWrite(Code_2,HIGH);
        digitalWrite(Code_3,LOW);
        digitalWrite(Code_4,HIGH);
        digitalWrite(Code_5,HIGH);
        digitalWrite(Code_6,HIGH);
        digitalWrite(Code_7,HIGH);
        digitalWrite(Code_8,HIGH);
        delay(10);
      }
      if(digitalRead(Key_3)!=0)
      {
        digitalWrite(Code_1,HIGH);
        digitalWrite(Code_2,HIGH);
        digitalWrite(Code_3,HIGH);
        digitalWrite(Code_4,HIGH);
        digitalWrite(Code_5,HIGH);
        digitalWrite(Code_6,HIGH);
        digitalWrite(Code_7,HIGH);
        digitalWrite(Code_8,HIGH);
        delay(10);
      }
    }
    
   if(digitalRead(Key_4)==0)
    {
      delay(10);
      if(digitalRead(Key_4)==0)
      {
        digitalWrite(Code_1,HIGH);
        digitalWrite(Code_2,HIGH);
        digitalWrite(Code_3,HIGH);
        digitalWrite(Code_4,LOW);
        digitalWrite(Code_5,HIGH);
        digitalWrite(Code_6,HIGH);
        digitalWrite(Code_7,HIGH);
        digitalWrite(Code_8,HIGH);
        delay(10);
      }
      if(digitalRead(Key_4)!=0)
      {
        digitalWrite(Code_1,HIGH);
        digitalWrite(Code_2,HIGH);
        digitalWrite(Code_3,HIGH);
        digitalWrite(Code_4,HIGH);
        digitalWrite(Code_5,HIGH);
        digitalWrite(Code_6,HIGH);
        digitalWrite(Code_7,HIGH);
        digitalWrite(Code_8,HIGH);
        delay(10);
      }
    }
    
  if(digitalRead(Key_5)==0)
   {
     delay(10);
      if(digitalRead(Key_5)==0)
      {
        digitalWrite(Code_1,HIGH);
        digitalWrite(Code_2,HIGH);
        digitalWrite(Code_3,HIGH);
        digitalWrite(Code_4,HIGH);
        digitalWrite(Code_5,LOW);
        digitalWrite(Code_6,HIGH);
        digitalWrite(Code_7,HIGH);
        digitalWrite(Code_8,HIGH);
        delay(10);
      }
      if(digitalRead(Key_5)!=0)
      {
        digitalWrite(Code_1,HIGH);
        digitalWrite(Code_2,HIGH);
        digitalWrite(Code_3,HIGH);
        digitalWrite(Code_4,HIGH);
        digitalWrite(Code_5,HIGH);
        digitalWrite(Code_6,HIGH);
        digitalWrite(Code_7,HIGH);
        digitalWrite(Code_8,HIGH);
        delay(10);
      }
   }
   
  if(digitalRead(Key_6)==0)
    {
      delay(10);
      if(digitalRead(Key_6)==0)
      {
        digitalWrite(Code_1,HIGH);
        digitalWrite(Code_2,HIGH);
        digitalWrite(Code_3,HIGH);
        digitalWrite(Code_4,HIGH);
        digitalWrite(Code_5,HIGH);
        digitalWrite(Code_6,LOW);
        digitalWrite(Code_7,HIGH);
        digitalWrite(Code_8,HIGH);
        delay(10);
      }
      if(digitalRead(Key_6)!=0)
      {
        digitalWrite(Code_1,HIGH);
        digitalWrite(Code_2,HIGH);
        digitalWrite(Code_3,HIGH);
        digitalWrite(Code_4,HIGH);
        digitalWrite(Code_5,HIGH);
        digitalWrite(Code_6,HIGH);
        digitalWrite(Code_7,HIGH);
        digitalWrite(Code_8,HIGH);
        delay(10);
      }
    }
    
   if(digitalRead(Key_7)==0)
    {
      delay(10);
      if(digitalRead(Key_7)==0)
      {
        digitalWrite(Code_1,HIGH);
        digitalWrite(Code_2,HIGH);
        digitalWrite(Code_3,HIGH);
        digitalWrite(Code_4,HIGH);
        digitalWrite(Code_5,HIGH);
        digitalWrite(Code_6,HIGH);
        digitalWrite(Code_7,LOW);
        digitalWrite(Code_8,HIGH);
        delay(10);
      }
      if(digitalRead(Key_7)!=0)
      {
        digitalWrite(Code_1,HIGH);
        digitalWrite(Code_2,HIGH);
        digitalWrite(Code_3,HIGH);
        digitalWrite(Code_4,HIGH);
        digitalWrite(Code_5,HIGH);
        digitalWrite(Code_6,HIGH);
        digitalWrite(Code_7,HIGH);
        digitalWrite(Code_8,HIGH);
        delay(10);
      }
    }
    
  if(digitalRead(Key_8)==0)
   {
     delay(10);
      if(digitalRead(Key_8)==0)
      {
        digitalWrite(Code_1,HIGH);
        digitalWrite(Code_2,HIGH);
        digitalWrite(Code_3,HIGH);
        digitalWrite(Code_4,HIGH);
        digitalWrite(Code_5,HIGH);
        digitalWrite(Code_6,HIGH);
        digitalWrite(Code_7,HIGH);
        digitalWrite(Code_8,LOW);
        delay(10);
      }
      if(digitalRead(Key_8)!=0)
      {
        digitalWrite(Code_1,HIGH);
        digitalWrite(Code_2,HIGH);
        digitalWrite(Code_3,HIGH);
        digitalWrite(Code_4,HIGH);
        digitalWrite(Code_5,HIGH);
        digitalWrite(Code_6,HIGH);
        digitalWrite(Code_7,HIGH);
        digitalWrite(Code_8,HIGH);
        delay(10);
      }
   }
}

Credits

ICStation Team
27 projects • 46 followers
ICStation.com is a leading company specializes in all kinds of IC products, such as electronic devices and components, development modules, development boards,
Contact

Comments

Please log in or sign up to comment.