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.

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 saaraha | ISD1820 |
|---|---|
| Nambarka qaybta | ISD1820 |
| Korontada Logic/IO | 3.3 V caadi ahaan |
| Korontada sahayda | 3.0 V ilaa 4.5 V |
| Korontada firaaqada | 0.5 µA caadi ahaan |
| Korontada hawlgalka | 30 mA ugu badnaan |
| Waqtiga duubista | 20 ilbiriqsi ugu badnaan |
| Waqtiga dib-u-ciyaarista | 20 ilbiriqsi ugu badnaan |
| Baakad | 8-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

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).
/*
* 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
-
Amaazon
-
eBayISD1820 Voice Recorder from eBayebay.us
-
AliExpressISD1820 Voice Recorder from AliExpresss.click.aliexpress.com
Kheyraadka & Tixraacyada
Wali wax kaydsan ah oo weli ma jiro.
Faylasha📁
Faylka Fritzing
-
ISD1820 voice recorder module
ISD1820-module.fzpz0.01 MB