Cov txheej txheem:
- Kauj ruam 1: Yuav tsum tau ua
- Kauj Ruam 2: Cov Lus Qhia Tshwj Xeeb
- Kauj ruam 3: Pib
- Kauj Ruam 4: Cov Hluav Taws Xob Me
- Kauj Ruam 5: Tshem Tawm Cov Hluav Taws Xob
- Kauj Ruam 6: Xeem DAC
- Kauj Ruam 7: Nyeem Wav Header
- Kauj Ruam 8: cuam tshuam, cuam tshuam…
- Kauj Ruam 9: Kev cuam tshuam thiab Ob Qhov Tsis Zoo
Video: Ua Si Suab Suab Cov Ntaub Ntawv (Wav) Nrog Arduino thiab DAC: 9 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:29
Ua si wav file Suab los ntawm koj daim npav SD Audino. Cov Lus Qhia no yuav qhia koj li cas cov ntaub ntawv wav ntawm koj SdCard tuaj yeem ua si los ntawm kev sib txuas yooj yim rau tus hais lus.
Cov ntaub ntawv wav yuav tsum yog 8 ntsis mono. Kuv tsis muaj teeb meem ua si 44 KHz cov ntaub ntawv.
Whilst tsis hi-fidelity, lub suab zoo yog txaus siab heev.
Tus saib xyuas txuas yog siv los xaiv cov ntawv. Cov ntaub ntawv yuav tsum yog hauv daim nplaub tshev hu ua adlog.
Cov lus qhia no ua raws los ntawm txoj haujlwm yav dhau los uas kuv tau khaws tseg kaw kaw rau SdCard:
Lub Circuit Court siv tus nqi pheej yig 8 ntsis digital rau analog hloov pauv (DAC) thiab ib lub suab nti ua suab nrov.
Cov ntu tseem ceeb rau teeb tsa kev cuam tshuam raug coj los ntawm kab lus zoo los ntawm Amanda Ghassaei:
Kauj ruam 1: Yuav tsum tau ua
Arduino- Kuv siv Mega, txawm li cas los xij tsis muaj laj thawj yog vim li cas Uno yuav tsum tsis ua haujlwm.
SdCard nyeem ntawv- txoj haujlwm tau teeb tsa rau: MicroSD Breakout Board Tswj hwm nrog Logic Conversion V2
Saib cov lus qhia no rau SdCard teeb cov ntsiab lus:
DAC0832 LCN- qhov zoo tshaj 8 ntsis digital rau kev hloov pauv sib piv- Ob peb phaus.
LM386 N-1 Op amp- pheej yig li chips
20 txoj kev nti qhov (socket)
8 txoj kev nti qhov (socket)
9 volt fais fab mov- lub roj teeb yuav ua.
LM336 2.5 V qhov ntsuas hluav taws xob siv
10uF Capacitor * 3 (txhua qhov hluav taws xob ntau dua 9V)
10 ohm tiv thaiv
50nF capacitor- (lossis qhov chaw ze-47nF, 56nf, 68nf- yuav ua)
220uF Capacitor Cov
64 ohm hais lus
10K linear potentiometer
Cable los txuas 8 cov ntaub ntawv kab ntawm Arduino thiab Circuit-
Ntawm Uno 8 qhov kev sib txuas tau nyob hauv kab, ntawm Mega lawv nyob ua khub.
Ntawm Mega Kuv tau siv 10 txoj kev hlua kab txuas nrog 10 txoj hauv kev IDC lub taub hau. (2 xov hlau yog seem)
Qhov (socket) txuas rau 0V, 9V thiab DAC tawm
Tooj liab tooj liab, laug, xaim, txiav thiab lwm yam
Kauj Ruam 2: Cov Lus Qhia Tshwj Xeeb
Serial teeb ntawm 115200 baud.
Kev txhawb nqa yog nyob rau qhov chaw Hobbytronics MicroSD Breakout Board siv Mega. Kev xaiv nti thiab lwm qhov chaw nres nkoj yuav hloov ntawm Mega thiab Uno.
Cov ntaub ntawv Wav yuav tsum muaj nyob hauv cov npe hu ua adlog- Xav tias dawb rau npe nws lwm yam thiab rov npaj qhov tsim nyog coding.
Cov ntaub ntawv wav yuav tsum yog 8 ntsis mono. Kuv tau sim txog 44KHz.
Tus saib xyuas Serial qhia cov ntaub ntawv wav hauv daim nplaub tshev adlog. Cov npe cov ntaub ntawv raug xa los ntawm tus saib xyuas kab tawm.
Cov ntaub ntawv loj tsuas yog txwv los ntawm SdCard loj.
Kauj ruam 3: Pib
Txuas SD daim npav nyeem ntawv. Cov no yog cov kev sib txuas rau Mega.
0, 5vv
CLK to pin 52
D0 pin 50
D1 to pin 51
CS to pin 53
(Saib cov chaw muag khoom lub vev xaib rau Uno chaw nres nkoj txuas)
Koj yuav xav sim tias koj daim npav ua haujlwm ntawm theem no- siv cov ntawv sau los ntawm tus muag khoom.
Peb yuav tsum tau ua lub voj voog me me
Peb yuav xa cov kwj ntawm cov suab bytes los ntawm Arduino.
Cov zauv no nyob nruab nrab ntawm 0 thiab 255. Lawv sawv cev rau qhov hluav taws xob.
Kev nyob ntsiag to yog 127-128.
255 yog hais lus lub khob hliav qab nyuaj ib txoj kev.
0 yog tus hais lus lub khob hliav lwm txoj.
Yog li lub suab tau sau tseg raws li tus lej khaws tseg, uas tsim qhov sib txawv ntawm qhov sib txawv, uas tsim cov lus sib tham txav.
Peb tuaj yeem xa tus lej tawm ntawm 8 kab ntawm Arduino, ib txhij, los ntawm kev siv "chaw nres nkoj".
Yog tias peb pub 8 kab rau hauv cov hloov pauv digital mus rau qhov sib piv, nws ua raws li nws tau hais ntawm lub tin thiab tsim cov hluav taws xob sib piv uas yog sib piv rau cov lej.
Txhua yam peb yuav tsum tau ua yog ntim lub zog tawm mus rau lub tshuab ua haujlwm me me thiab tom qab ntawd mus rau tus hais lus.
Kauj Ruam 4: Cov Hluav Taws Xob Me
Cov DAC0832 LCN
Qhov no yog qhov zoo tshaj, pheej yig 8 ntsis Digital rau kev hloov pauv sib piv. (DAC)
Nws tuaj yeem tswj tau tag nrho nrog cov ntaub ntawv tuav, cov ntaub ntawv piv txwv kab.
Los yog nws tuaj yeem teeb tsa los ua nws txhua qhov nyob hauv "Flow through operation".
Txhawm rau txheeb xyuas phau ntawv:
Yooj yim rau hauv av CS, WR1, WR2, thiab XFER thiab khi ILE siab tso cai rau ob qho kev sau npe sab hauv kom ua raws cov ntaub ntawv siv digital (ntws-dhau) thiab cuam tshuam ncaj qha rau DAC cov khoom tso tawm.
OK uas yog plaub qhov sib txuas rau lub teeb teeb qis thiab ib qho teeb tsa rau 9V - yooj yim.
Peb tsis xav kom muaj qhov ntsuas tsis zoo tawm yog li phau ntawv hais tias peb yuav tsum siv "hom hloov hluav taws xob" thiab lawv muab daim duab.
Txhua yam peb yuav tsum tau ua yog hloov lub suab me me me dua li qhov lawv tau hais qhia.
LM386-N Suab Amp
Amp phau ntawv qhia muab cov duab yam tsawg kawg nkaus- muab qhov nce ntawm 20 (Txoj kev ntau dhau rau peb-tab sis nws muaj kev tswj ntim).
Txhua yam peb yuav tsum tau ua yog ntxiv lub capacitor nruab nrab ntawm DAC thiab amp kom peb tsuas yog nthuav tawm AC cov cim.
Peb tseem yuav tsum ntxiv ob peb lub capacitors ze rau tus pin muab khoom ntawm txhua ntawm peb cov chips txwv tsis pub peb yuav tau txais hum los ntawm peb cov khoom siv 9V.
Kauj Ruam 5: Tshem Tawm Cov Hluav Taws Xob
Raws li lub Circuit Court yog qhov yooj yim Kuv tsis npaj siab muab tshuab los tshuab tshuab.
Nov yog qee qhov taw qhia:
- Npaj ib daim ntawm Copper strip board tsawg kawg 28 los ntawm 28 qhov. (Yog kuv paub cov kws phais neeg lub hlwb tuaj yeem ua rau nws me dua)
- Yog tias koj npaj siab yuav kho nws nrog cov ntsia hlau, tso cai rau lawv thaum pib!
- Mount cov chips ntawm qhov (socket). Ntxig cov chips tsuas yog thaum txhua yam tau tshuaj xyuas.
- Khaws cov xov hlau tawm ntawm qhov tso tawm.
- Soj ntsuam qhov tseeb polarity rau lub capacitors.
- Xa mus rau daim duab rau lub hauv paus pom ntawm LM336 qhov ntsuas hluav taws xob. Kev kho ceg tsis siv thiab tuaj yeem txiav.
- Nco tseg qhov txuas ncaj qha rau tus pin 8 ntawm DAC- Nws muaj txiaj ntsig zoo rau kev sim.
- Kuv txuas nrog Audino nrog kab xov txuas thiab 10 txoj kev IDC txuas.
- Ntawm Uno cov kev sib txuas yog nyob hauv kab ncaj - koj yuav pom tias npaj 8 qhov kev sib txuas sib txuas hauv ib txoj kab ncaj ncaj tso cai rau koj txuas rau Arduino nrog kev yuav khoom, npaj tau ua 8 txoj kev txuas,
Thaum nws ua tiav- txheeb xyuas cov laug thiab xyuas qhov khoob ntawm cov tooj liab.
Kuv pom 36 tpi junior hack pom hniav zoo heev rau kev tshem cov khib nyiab. Kuv tshem tus hniav qhov chaw pins thiab xaub lub ntsis ntawm cov hniav mus rau hauv txoj kev- Pom tseeb tias cov hniav tsis nyob hauv tus ncej.
Kauj Ruam 6: Xeem DAC
Tawm ntawm Kev Sib Txuas ntawm Circuit Court thiab Arduino tawm.
Teem lub ntim tswj ntawm koj lub voj voog mus rau ib nrab.
Hloov ntawm 9V DC Lub Hwj Chim rau koj lub Circuit Court tshiab.
Txheeb xyuas tias lub Circuit Court zoo- Kuv tsis tuaj yeem lees txais ib qho kev lav phib xaub rau koj lub Circuit Court!
Fais fab tuag
Txuas koj lub Circuit Court mus rau Arduino.
Ntawm Mega siv tus pin 22-29. (PORTA) Tsis txhob yuam kev ob 5V pins saum toj no!
Hauv Uno siv tus pin 0-7. Nov yog PORTD
Txuas 0V ntawm koj lub hwj chim muab rau 0V ntawm Arduino.
Fais fab.
Qhib qhov kev xeem no DAC_TEST
Rau UNO, hloov tag nrho cov ntawv xa mus rau PORTA rau PORTD
Hloov DDRA nrog DDRD- cov lus qhia no teev tag nrho 8 kab kom tso tawm hauv ib qho. Nov yog cov ntaub ntawv qhia txog kev sau npe.
Teem koj tus lej saib ntawm 115200.
Txuas lub voltmeter nruab nrab ntawm DAC tawm thiab OV
Qhov kev zov me nyuam yuav teeb tsa cov zis rau 255- txhua kab ntawm - qhov siab tshaj plaws.
Cov zis 128- ib nrab qhov siab tshaj plaws.
Cov zis 0- xoom hluav taws xob (lossis tej zaum ze li xoom).
Tom qab ntawd nws yuav ua ntu zus: 1, 2, 4, 8, 16, 32, 64, 128
Qhov hluav taws xob yuav tsum nce zuj zus.
Yog tias qhov hluav taws xob poob rov qab thaum tus lej nce koj yuav muaj ob ntawm cov xov hlau sib txuas rov qab.
Koj yuav tsum tau hnov tus hais lus ntsiag to nyem raws li qhov hloov pauv
Kauj Ruam 7: Nyeem Wav Header
Cov ntaub ntawv Wav tau khaws tseg nrog qhov tshwj xeeb zaus thiab cov ntaub ntawv loj.
Cov ntaub ntawv no muaj nyob hauv 44 byte header thaum pib ntawm cov ntaub ntawv wav.
Txawm hais tias qee qhov software txuas ntxiv lub taub hau (tom qab byte 35), ua rau qhov chaw ntawm cov ntaub ntawv loj dua nyuaj rau nrhiav.
Txhawm rau nyeem lub taub hau peb tsim qhov tsis thiab luam qhov pib ntawm cov ntawv.
Qhov zaus tau khaws cia hauv 4 bytes pib 24 bytes rau hauv cov ntawv.
// nyeem zaus tau teev tseg hauv wav file header
byte lub taub hau [60]
tempfile.seek (0);
tempfile.read (headbuf, 60);
retval = taub hau [27];
retval = (retval << 8) | lub taub hau [26];
retval = (retval << 8) | lub taub hau [25];
retval = (retval << 8) | lub taub hau [24];
Serial.print (F ("Cov Ntaub Ntawv Zaus"));
Serial.print (rov ua dua tshiab);
Txoj hauv kev zoo tshaj los nrhiav cov ntaub ntawv cov ntaub ntawv loj yog tshawb nrhiav lo lus "cov ntaub ntawv" hauv kab ntawv.
Tom qab ntawd rho tawm 4 bytes tom qab nws, uas ua rau tus nqi ntev
unsigned ntev retval;
int mypos = 40;
rau (int kuv = 36; kuv <60; kuv ++) {
yog (headbuf [kuv] == 'd') {
yog (headbuf [kuv+1] == 'a') {
yog (headbuf [kuv+2] == 't') {
yog (headbuf [kuv+3] == 'a') {
// thaum kawg peb muaj nws
mypos = kuv+4;
kuv = 60;
}
}
}
}
}
tempfile.seek (mypos);
retval = headbuf [mypos+3];
retval = (retval << 8) | headbuf [mypos+2];
retval = (retval << 8) | headbuf [mypos+1];
retval = (retval << 8) | headbuf [mypos];
OK peb muaj cov ntaub ntawv ntev thiab zaus!
Cov ntaub ntawv suab ua raws 4 bytes ua cov ntaub ntawv ntev tus nqi.
Kauj Ruam 8: cuam tshuam, cuam tshuam…
Peb siv cov ntaub ntawv zaus los tsim software cuam tshuam ntawm, lossis ze, qhov xav tau zaus.
Kev cuam tshuam tuaj yeem tsis tuaj yeem teeb tsa kom raug, tab sis nws txaus. Zaus nyeem los ntawm cov ntaub ntawv raug xa mus rau cov txheej txheem cuam tshuam subroutine.
void setintrupt (ntab freq) {ntab bitval = 8; // 8 rau 8 ntsis timers 0 thiab 2, 1024 rau timer 1 byte
setocroa = (16000000/(freq*bitval)) - 0.5;
// Tus nqi setocroa xav kom rho tawm ntawm -1. Txawm li cas los xij ntxiv 0.5 ncig mus rau ze tshaj 0.5
// Qhov kev daws teeb meem ntawm lub sijhawm yog txwv
// Thaum kawg txiav txim siab los ntawm qhov ntau ntawm bitval
cli (); // lov tes taw cuam tshuam // teeb tsa timer2 cuam tshuam
TXC2A = 0; // teeb tsa tag nrho TCCR2A sau npe rau 0
TCCR2B = 0; // tib yam rau TCCR2B
TCNT2 = 0; // initialize counter nqi rau 0
// teeb tsa kev sib piv sib tw sau npe rau zaus (hz) nce ntxiv
OCR2A = setocroa; // = (16*10^6) / (zaus*8) - 1 (yuav tsum yog <256)
// qhib rau CTC hom
TCCR2A | = (1 << WGM21); // Teeb CS21 ntsis rau 8 prescaler
TCCR2B | = (1 << CS21); // pab kom timer piv cuam tshuam
// TIMSK2 | = (1 << OCIE2A); // qhov no ua haujlwm, zoo li cov kab hauv qab no
sbi (TIMSK2, OCIE2A); // pab cuam tshuam ntawm timer 2
sib (); // pab cuam tshuam
Kev nyeem ntawv yuav tsum pom sbi (TIMSK2, OCIE2A)
Kuv teeb tsa ob peb ntawm (internet tau txais) lub luag haujlwm rau teeb tsa thiab tshem tawm cov npe khoom:
// Txhais kom tshem cov npe khoom#ifndef cbi
#define cbi (sfr, ntsis) (_SFR_BYTE (sfr) & = ~ _BV (ntsis))
#ib
// Txhais rau teeb tsa cov npe khoom
#ifndef swb
#define sbi (sfr, ntsis) (_SFR_BYTE (sfr) | = _BV (ntsis))
#ib
Cov haujlwm no muab kev hu yooj yim los teeb tsa lossis tshem tawm qhov cuam tshuam.
Yog li qhov cuam tshuam tab tom khiav, peb tuaj yeem ua dab tsi?
Kauj Ruam 9: Kev cuam tshuam thiab Ob Qhov Tsis Zoo
Ntawm 22 Khz ib byte ntawm cov ntaub ntawv suab raug tso tawm txhua txhua 0.045 ms
512 bytes (qhov loj me) tau nyeem hauv 2.08 ms.
Yog li qhov tsis tuaj yeem nyeem tsis tau los ntawm SDCard hauv ib tsab ntawv sau.
Txawm li cas los xij 512 bytes tau sau mus rau qhov chaw nres nkoj hauv 23.22ms.
Yog li txhua yam peb yuav tsum ua yog teeb tsa cov ntaub ntawv tshiab nyeem txhua lub sijhawm tsis nyob thiab peb muaj sijhawm txaus kom tau txais cov ntaub ntawv ua ntej yuav tsum tau thaiv cov ntaub ntawv tshiab … Piv txwv tias peb siv ob qhov tsis, khoob ib qho thaum peb sau lwm qhov.
Qhov no yog ob npaug.
Cov ntaub ntawv nyeem yuav qeeb los ntawm kev cuam tshuam ntau zaus, tab sis nws yuav ua tiav.
Kuv tau teeb tsa ob 512 byte buffers hu ua bufa thiab bufb.
Yog tias tus chij yog qhov tseeb peb nyeem los ntawm porta txwv tsis pub peb nyeem los ntawm portb
Thaum qhov chaw tsis (bufcount) mus txog qhov tsis loj (BUF_SIZE 512) peb teeb tus chij hu ua nyeem kom raug.
Lub voj void niaj hnub saib rau tus chij no thiab pib qhov thaiv nyeem:
yog (readit) {yog (! aready) {
// pib SDCard thaiv nyeem rau bufa
tempfile.read (bufa, BUF_SIZE);
lwm yam {
// pib SDCard thaiv nyeem rau bufb
tempfile.read (bufb, BUF_SIZE);
}
readit = tsis tseeb;
}
Thaum nws tau ua tiav cov txheej txheem niaj hnub nyeem = cuav.
Hauv qhov kev cuam tshuam niaj hnub peb yuav tsum txheeb xyuas tias lub void loop tau ua tiav los ntawm kev txheeb xyuas yog tias nyeem == cuav.
Qhov no yog rooj plaub peb taw qhia tias yuav tsum tau nyeem dua thiab hloov pauv tus chij aready kom hloov pauv.
Yog tias SDcard tseem tab tom nyeem peb yuav tsum rov qab taug qab ib qho nyeem (counter-; bufcount--;) thiab tawm qhov cuam tshuam los sim dua tom qab. (Nyem rau hauv lub suab tso tawm lub ntsiab lus hais tias qhov no tau tshwm sim.)
Thaum tag nrho cov ntaub ntawv tau nyeem qhov cuam tshuam raug tshem tawm, qhov chaw nres nkoj rov teeb tsa mus rau qhov nruab nrab qhov hluav taws xob ntawm 128 thiab cov ntaub ntawv kaw.
Ua ntej khiav cov ntawv dac2.ino thawj zaug, teeb koj lub ntim rau 50%. Qhov no yuav nrov heev, tab sis nws zoo dua 100%!
Yog tias koj lub ntim tswj ua haujlwm rov qab sib pauv cov coj ntawm qhov kawg ntawm 10K lub zog loj.
Qhia rau kuv paub tias nws zoo li cas.
Pom zoo:
Ua Cov Phiaj Xwm Zoo Los Ntawm Cov Ntaub Ntawv Nyob Arduino (thiab Txuag Cov Ntaub Ntawv rau Excel): 3 Cov Kauj Ruam
Ua Cov Phiaj Xwm Zoo Los Ntawm Cov Ntaub Ntawv Nyob Arduino (thiab Txuag Cov Ntaub Ntawv rau Excel): Peb txhua tus nyiam ua si nrog peb tus lej L … cov ntsiab lus tau ntxiv thiab nws tsis tshwj xeeb rau lub qhov muag. Arduino IDE cov phiaj xwm tsis
Yuav Ua Li Cas Vaum Thiab Kub Tiag Tiag Cov Ntaub Ntawv Teev Npe Nrog Arduino UNO thiab SD-Card - DHT11 Cov ntaub ntawv-logger Simulation hauv Proteus: 5 Cov Kauj Ruam
Yuav Ua Li Cas Vaum Thiab Kub Tiag Tiag Cov Ntaub Ntawv Teev Npe Nrog Arduino UNO thiab SD-Card | DHT11 Cov ntaub ntawv-logger Simulation hauv Proteus: Taw qhia: nyob zoo, qhov no yog Liono Maker, ntawm no yog YouTube txuas. Peb tab tom tsim txoj haujlwm muaj tswv yim nrog Arduino thiab ua haujlwm ntawm cov kab ke. Cov ntaub ntawv-Logger: Cov ntaub ntawv logger (tseem cov ntaub ntawv-logger lossis cov ntaub ntawv kaw) yog cov cuab yeej siv hluav taws xob uas sau cov ntaub ntawv dhau sijhawm
Kev Tau Txais Cov Ntaub Ntawv thiab Cov Ntaub Ntawv Pom Kev Pom Zoo rau MotoStudent Fais Fab Sib Tw Tsheb kauj vab: 23 Kauj Ruam
Kev Tshawb Nrhiav Cov Ntaub Ntawv thiab Cov Ntaub Ntawv Pom Zoo rau MotoStudent Hluav Taws Xob Sib Tw Tsheb: Cov ntaub ntawv khaws cov ntaub ntawv yog cov khoom siv khoos phis tawj thiab software ua haujlwm ua ke txhawm rau sau cov ntaub ntawv los ntawm cov ntsuas sab nraud, khaws thiab ua nws tom qab kom nws tuaj yeem pom cov duab thiab txheeb xyuas, tso cai rau cov kws tsim txuj ci los ua
RAWS LI COV NTAUB NTAWV NTSEEG NTAWV NTAWV MUAJ NTAWV TSHUAJ NTAWV TSO CAI RAU RASPBERRY PI: 6 Kauj Ruam (nrog Duab)
RAWS LI COV NTAUB NTAWV NTAWV MUAJ NTAWV TSHUAJ NTXIV RAU RASPBERRY PI: Hauv qhov haujlwm no, peb yuav txuas peb ntawm Atlas Scientific's EZO sensors (pH, yaj cov pa thiab kub) mus rau Raspberry Pi 3B+. Hloov chaw ntawm txuas cov kab hluav taws xob mus rau Raspberry Pi, peb yuav siv Whitebox Labs Tentacle T3 daim ntaub thaiv. T
Kub thiab Vaum Zaub thiab Sau Cov Ntaub Ntawv Nrog Arduino thiab Ua: 13 Kauj Ruam (nrog Duab)
Kub thiab Vaum Zaub thiab Sau Cov Ntaub Ntawv Nrog Arduino thiab Ua: Intro: Qhov no yog Txoj Haujlwm uas siv Arduino board, Sensor (DHT11), lub khoos phis tawj Windows thiab Kev Ua Haujlwm (rub tawm dawb) program los tso saib Kub, Cov ntaub ntawv vaum hauv digital thiab bar kab ntawv, tso tawm lub sijhawm thiab hnub tim thiab suav lub sijhawm suav