Šajā projektā mēs izstrādāsim toņu ģeneratoru, izmantojot Arduino Uno. Mums būs pogas, kas saskarē ar UNO, un katra no tām rada atšķirīgu toņa intensitāti. ANO ģenerētā signāla biežums ir vienāds visos iekšējos. Tas ir skaņas intensitāte, kas mainās ar katru presi. Tas ir viens no vienkāršākajiem veidiem, kā padarīt klavieres ar Arduino Uno. Pārbaudiet arī šo klavieru shēmu.
Toņus var palielināt līdz 20. Tas nodrošina vislabāko toņu variāciju un daudz vienmērīgākas izmaiņas. Tona intensitāti maina PWM (pulsa platuma modulācija). PWM piemērs ir parādīts zemāk esošajā diagrammā.
PWM signāla biežums vai signāla laika periods (Ton + Toff) vienmēr ir nemainīgs. Mainās tikai ieslēgšanas un izslēgšanās laika attiecība. Piemēram, otrajā attēlā augšējā attēlā IESLĒGŠANAS laiks ir 80% un IESLĒGŠANAS laiks ir 20% no visa ilguma.
Trešajā diagrammā IESLĒGŠANAS laiks ir 50% un IESLĒGŠANAS laiks ir 50% no visa ilguma. Tātad pirmajā gadījumā mums nodokļa likme ir 80%, bet otrajā gadījumā - 20%.
Ar šīm izmaiņām darba attiecībās mums ir izmaiņas Vrms (vidējā sprieguma kvadrātiskā vērtība), kad šis spriegums tiek dots skaņas signālam, tas rada atšķirīgu troksni ikreiz, kad mainās darba attiecība.
Mēs plānosim UNO ieprogrammēt PWM signālu ar dažādu darba attiecību katrai pogai. Tāpēc pie mums ir toņu ģenerators, kas ar katru pogas nospiešanu ģenerē atšķirīgu signālu.
Nepieciešamās sastāvdaļas
Aparatūra: Arduino Uno, barošanas avots (5v), 1000 uF kondensators, 100 nF kondensators, skaņas signāls, pogas (8 gab.).
Programmatūra: AURDINO nakts vai Atmel studija 6.2
Shēmas shēma un darba skaidrojums
Signāla ģeneratora ķēde ir parādīta zemāk esošajā diagrammā.
Lai filtrētu troksni no barošanas sprieguma, kondensatori tiek novietoti pāri spailēm, kā parādīts diagrammā.
Arduino Uno PWM var sasniegt jebkurā no tapām, kuras PCB plāksnē simbolizē kā “~”. UNO ir seši PWM kanāli. Tomēr mēs nevaram izmantot PWM tapas, kas izveidotas, izmantojot PINS 0-7, jo PINS ir priekšroka pogu saskarnei.
PINS 0-7 kā ievades izvēlei ir iemesls, jo PINS 0-7 apzīmē mikrokontrollera PORTD. Tātad pēdējā gadījumā mēs varam ņemt pilnu PORTD BYTE.
Tagad, lai iegūtu atšķirīgu darba attiecību PWM, mēs izmantosim šādu komandu.
analogWrite (9, VALUE); |
No iepriekš minētā nosacījuma mēs varam tieši iegūt PWM signālu attiecīgajā tapā. Pirmais iekavās esošais parametrs ir PWM signāla tapas numura izvēle. Otrais parametrs ir paredzēts rakstīšanas darba attiecībai.
Arduino Uno PWM vērtību var mainīt no 0 līdz 255. Ar “0” kā zemāko uz “255” kā augstāko. Ar 255 kā darba attiecību mēs saņemsim 5V pie PIN9. Ja nodevas koeficients ir norādīts kā 125, mēs saņemsim 2,5 V pie PIN9. Mēs sadalīsim darba attiecību 0–250 starp 8 pogām, kas saskarnes atrodas UNO PORTD. Šeit es katrai pogai izvēlos 25 soļus, bet tas ir jūsu izvēle.
Līdz ar to mums būs PWM signāls, kura darba attiecība mainās ar katru pogu. Tas tiek dots skaņas signālam. Mums ir signālu ģenerators. Šī Arduino bāzes toņu ģeneratora darbība tiek soli pa solim izskaidrota zemāk dotajā C kodā.