Search Code

Koodka Arduino iyo Fiidiyowga: ISD1820 Arduino Cod-Duuqa

Koodka Arduino iyo Fiidiyowga: ISD1820 Arduino Cod-Duuqa

ISD1820 waa qalab fudud oo duubista codka ah kaas oo kuu ogolaanaya inaad duubto oo aad dib u ciyaarto codka adigoo isticmaalaya Arduino. Casharradan, waxaad baran doontaa sida loo habeeyo ISD1820 ee Arduino si aad u duubto ilaa 20 ilbiriqsi oo dhawaaq ah oo aad dib ugu ciyaarto marka la amro. Mashruucani waa mid ku habboon kuwa bilowga ah ee raba inay sahamiyaan habaynta codka ee Arduino.

isd1820 voice recording module

Inta lagu guda jiro casharradan, waxaad ka heli doontaa aqoonsiyo muhiim ah oo lagu isticmaalo koodka, sida REC, PLAY_E, iyo PLAY_L. Aqoonsiyadani waxay u dhigmaan biinanka loo isticmaalo shaqada duubista iyo dib-u-ciyaarista. Intaa waxaa dheer, qaybaha koodka ee la bixiyay waxay kaa caawin doonaan inaad caddeyso macnaha barnaamijka ee mashruucan. Faahfaahin dheeri ah, hubi inaad daawato fiidiyowga (fiidiyowga 00:00).

Qalabka La Sharaxay

Qaybta ugu weyn ee mashruucan waa qalabka duubista codka ee ISD1820, kaas oo duubi kara codka ilaa 20 ilbiriqsi. Wuxuu leeyahay dhowr biin oo lagu xakameeyo duubista, dib-u-ciyaarista, iyo shaqooyinka gudbinta. Qalabku wuxuu ku shaqeeyaa koronto 3V ilaa 4.5V, taasoo ka dhigaysa mid la jaanqaadi kara inta badan looxyada Arduino.

Marka lagu daro qalabka ISD1820, waxaad u baahan doontaa loox Arduino, qalabka codka (speaker), iyo makarafoon. Arduino wuxuu xakameyn doonaa shaqooyinka duubista iyo dib-u-ciyaarista iyada oo loo marayo biinanka dijitaalka ah. Hawlgalka qalabku waa mid toos ah: wuxuu duubaa codka marka biinka duubista la saaro heer sare wuxuuna ciyaaraa codka marka biinanka dib-u-ciyaarista la hawlgeliyo.

Faahfaahinta Xaashida Xogta

Soo saarahaISD1820
Nambarka qaybtaISD1820
Korontada Logic/IO3.3 V caadi ahaan
Korontada sahayda3.0 V ilaa 4.5 V
Korontada firaaqada0.5 µA caadi ahaan
Korontada hawlgalka30 mA ugu badnaan
Waqtiga duubista20 ilbiriqsi ugu badnaan
Waqtiga dib-u-ciyaarista20 ilbiriqsi ugu badnaan
Baakad8-DIP

  • Hubi in korontada sahaydu tahay inta u dhaxaysa 3.0 V iyo 4.5 V si aad uga fogaato in qalabku waxyeelo gaadho.
  • Isticmaal resistors si aad ugu beddesho calaamadda 5V ee Arduino heerka logic 3.3V si isku xirka loo sameeyo si ammaan ah.
  • La soco isticmaalka korontada; qalabku wuxuu qaadi karaa ilaa 30 mA inta lagu jiro hawlgalka.
  • Ku xir qalab cod oo yar (0.5 W) ee wax soo saarka codka si loogu ciyaaro.
  • Qalabku wuxuu taageeraa dhererro duubis oo kala duwan; hagaaji waqtiga iyadoo lagu salaynayo baahidaada.

Tilmaamaha Isku Xirka

Arduino wiring for ISD1820 voice_recorder
Arduino wiring for ISD1820 voice_recorder

Si aad ISD1820 ugu xirto Arduino-gaaga, waxaad ku bilaabaysaa inaad ku xirto biinka VCC ee qalabka soo saarista 3.3V ee Arduino. Marka xigta, ku xir biinka GND ee qalabka mid ka mid ah biinanka dhulka ee Arduino. Biinanka xakamaynta, ku xir biinka REC ee qalabka biinka 2 ee Arduino, PLAY_E biinka 3, PLAY_L biinka 4, iyo FT biinka 5.

Maadaama Arduino uu ku shaqeeyo 5V, waxaad u baahan doontaa inaad isticmaasho qaybiyaha korontada si ammaan ah ugu xirto biinanka xakamaynta. Tusaale ahaan, ku xir resistor 5 kΩ oo ka yimid biinka Arduino biinka xakamaynta ee qalabka, ka dibna ku xir resistor 3.3 kΩ oo ka yimid biinka xakamaynta ee qalabka dhulka. Ku celi habkan biinanka xakamaynta ee dheeraadka ah si loo hubiyo inay helaan heerarka korontada saxda ah.

Tusaalooyinka Koodka & Sharaxaadda

Qaybta koodka ee soo socota waxay qeexaysaa biinanka loo isticmaalo duubista iyo dib-u-ciyaarista. Tani waxay kuu ogolaanaysaa inaad si fudud u tixraacdo biinankan koodkaaga halkii aad ka isticmaali lahayd qiimayaal go'an.

#define REC 2 // biinka 2 waxaa loo isticmaalaa duubista
#define PLAY_E 3 // biinka 3 waxaa loo isticmaalaa dib-u-ciyaarista-cufan
#define PLAY_L 4 // biinka 4 waxaa loo isticmaalaa dib-u-ciyaarista

Shaqada habaynta (setup), waxaan u habaynaynaa biinanka sida wax soo saar. Tani waxay hubinaysaa in Arduino uu si wax ku ool ah u xakameyn karo qalabka ISD1820.

void setup() 
{
  pinMode(REC, OUTPUT); // u habee biinka REC sida wax soo saar
  pinMode(PLAY_L, OUTPUT); // u habee biinka PLAY_L sida wax soo saar
  pinMode(PLAY_E, OUTPUT); // u habee biinka PLAY_E sida wax soo saar
}

Loop-ka ugu weyn wuxuu hubinayaa gelitaanka isticmaalaha ee kormeeraha taxanaha ah. Iyadoo ku xiran xarafka la helay, waxay kicin doontaa ficillada ku habboon, sida duubista ama dib-u-ciyaarista codka.

void loop() {
  while (Serial.available() > 0) {
    char inChar = (char)Serial.read();
    if (inChar == 'p' || inChar == 'P') {
      digitalWrite(PLAY_E, HIGH); // Bilaab dib-u-ciyaarista
      delay(50);
      digitalWrite(PLAY_E, LOW); // Joogi dib-u-ciyaarista
    }
}

Qaabkan shuruudaha leh wuxuu u oggolaanayaa xakamayn dabacsan oo ISD1820 ah iyadoo ku xiran gelitaanka isticmaalaha, taasoo ka dhigaysa mid fudud in la duubo oo dib loo ciyaaro codka sida loo baahan yahay. Faahfaahin dheeri ah, koodka buuxa ayaa hoos ku xiga maqaalka.

Muuujinta / Waxa Lagu Filan Karaa

Marka wax walba la habeeyo oo koodka la soo geliyo, waxaad awoodi doontaa inaad duubto codka adigoo u soo dira amarka r kormeeraha taxanaha ah oo aad dib ugu ciyaarto adigoo isticmaalaya amarka p. Hab-dhaqanka la filanayo waxaa ka mid ah jawaab kormeeraha taxanaha ah oo muujinaysa marka duubistu bilaabato oo joogsato, iyo sidoo kale marka dib-u-ciyaaristu bilaabato oo dhammaato. Maskaxda ku hay waqtiga lagu dejiyay koodka; tusaale ahaan, duubista waxaa loo dejiyay 3 ilbiriqsi, dib-u-ciyaaristuna 5 ilbiriqsi (fiidiyowga 05:00).

Sawirro

Arduino wiring for ISD1820 voice_recorder
Arduino wiring for ISD1820 voice_recorder
isd1820 voice recording module
isd1820 voice recording module
isd1820 voice recording module
isd1820 voice recording module
isd1820 voice recording module
isd1820 voice recording module
72-This is the Arduino code and video: ISD1820 Arduino Voice Recorder
Luqadda: C++
/*
 * ISD1820 Arduino Voice Recorder
 * to record and playback sound using Arduino and ISD1820 Sound Recorder

 * Watch the video https://youtu.be/IfK8z_o5vbk
 * get this code from https://robojax.com
 * Get this code and other Arduino codes from Robojax.com/RJT58
 
Learn Arduino step by step in a structured course with all material, wiring diagrams, and libraries
all in one place. 

/*
 * ISD1820 Arduino Voice Recorder
 * Code Written by Ahmad Shamshiri for Robojax.com
 * on Jan 04, 2018 at 08:57, in Ajax, Ontario, Canada
  * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: This code is "AS IS" and for educational purposes only.
 */
#define REC 2 // pin 2 is used for recording
#define PLAY_E 3 // pin 3 , P-E is used for playback-edge trigger
// when PLAY_E goes HIGH, playback STARTS and continues
// ISD1820 Arduino Voice Recorder for Robojax.com 

#define PLAY_L 4 // pin 4 , P-Lis used for playback  
// when PLAY_L is HIGH, it will playback. As soon as it goes LOW, playback STOPS
// So you have to keep it HIGH to keep playing


#define FT 5 // pin 5 is used for feed through
// if the SPI (speaker) pin is used to send audio to another device, 
// set FT to high and any audio from the microphone will pass through the SPI connector
// and will NOT record

#define playTime 5000 // playback time 5 seconds
#define recordTime 3000 // recording time 3 seconds
#define playLTime 900 // press and release playback time 0.9 seconds

void setup() 
{
  // ISD1820 Arduino Voice Recorder for Robojax.com 
  pinMode(REC,OUTPUT);// set the REC pin as output
  pinMode(PLAY_L,OUTPUT);// set the PLAY_L pin as output
  pinMode(PLAY_E,OUTPUT);// set the PLAY_e pin as output
  pinMode(FT,OUTPUT);// set the FT pin as output  
  Serial.begin(9600);// set up Serial monitor   
}

void loop() {
  // ISD1820 Arduino Voice Recorder for Robojax.com 
    while (Serial.available() > 0) {
          char inChar = (char)Serial.read();
            if(inChar =='p' || inChar =='P'){
            digitalWrite(PLAY_E, HIGH);
            delay(50);
            digitalWrite(PLAY_E, LOW);  
              Serial.println("Playback Started");  
            delay(playTime);
            
              Serial.println("Playback Ended");
            break; 
            }// if          
            else if(inChar =='r' || inChar =='R'){
              digitalWrite(REC, HIGH);
              Serial.println("Recording started");
              delay(recordTime);
              digitalWrite(REC, LOW);
              Serial.println("Recording Stopped ");              
            } 
            else if(inChar =='l' || inChar =='L'){
            digitalWrite(PLAY_L, HIGH); 
              Serial.println("Playback L Started");  
            delay(playLTime);
            digitalWrite(PLAY_L, LOW);
              Serial.println("Playback L Ended");            
            }             
    // ISD1820 Arduino Voice Recorder for Robojax.com         
      Serial.println("**** Serial Monitor Exited");      
    }// wihile
Serial.println("**** Enter r to record, p to play");

  delay(500);
}

Waad u baahan tahay

Kheyraadka & Tixraacyada

Wali wax kaydsan ah oo weli ma jiro.

Faylasha📁

Faylka Fritzing