Talaan ng mga Nilalaman:

Arduino Noise Machine: 4 na Hakbang
Arduino Noise Machine: 4 na Hakbang

Video: Arduino Noise Machine: 4 na Hakbang

Video: Arduino Noise Machine: 4 na Hakbang
Video: Complete Guide for 15A 400W MOSFET AOD4184A to control motor or load 2024, Nobyembre
Anonim
Arduino Noise Machine
Arduino Noise Machine
Arduino Noise Machine
Arduino Noise Machine
Arduino Noise Machine
Arduino Noise Machine

Natagpuan ko ang isang maliit na tagapagsalita habang pinupunit ang isang matandang P. C. para sa pag-recycle at naisip na makikita ko kung ano ang tunog tulad ng paggamit ng Arduino Tone () function. Nagsimula ako sa isang 10Ω potentiometer upang makontrol ang pitch at nagsimulang gumawa ng ingay. Ang pagpapaandar ng Tone () ay gumagamit ng isang simpleng pattern ng pulso. Pinapatay at pinapatay nito ang tunog sa iba't ibang mga frequency sa isang parisukat na pattern na alon. Mayroon akong dalawa pang potentiometers na nakahiga kaya idinagdag ko sila at ginamit ito upang makontrol ang tagal ng tono. Isa upang makontrol ang haba ng tono at isa upang makontrol ang tahimik na puwang sa pagitan ng mga tono. Karaniwan itong gumagamit ng isa pang parisukat na pattern ng alon ngunit sa isang mas mababang dalas. Maaari mong makamit ang isang mahusay na iba't ibang mga ingay sa circuit na ito. Gumagana ito ng maayos sa isang piezo buzzer din, ngunit wala ang tugon sa bass ng isang speaker.

Hakbang 1: Mga Bahaging Kakailanganin Mo

Arduino Uno

Breadboard at jumper wires

1 Maliit na speaker o Piezo buzzer

1 Pushbutton switch

3 10Ω Mga Potensyal

1 22Ω risistor

1 10kΩ risistor

Hakbang 2: Buuin ang Circuit

Buuin ang Circuit
Buuin ang Circuit

Ikonekta ang breadboard sa iyong Arduino 5V pin at GND. Ilagay ang switch ng Pushbutton sa dulong kanan o kaliwa ng breadboard at ikonekta ito sa 5V at lupa gamit ang 10kΩ resistor. Ikonekta ang isang kawad mula sa circuit ng switch sa pin 2 sa iyong Arduino.

Sa kabilang panig ng breadboard i-set up ang speaker / piezo circuit sa 5v at ground gamit ang 220Ω resistor. Kinokontrol ng risistor ang kasalukuyang kaya kontrolado ang dami; maaari mong subukan ang iba't ibang mga resistors dito para sa mas mataas o mas mababang dami.

Ayusin ang iyong potentiometers sa gitna ng breadboard na nagbibigay ng sapat na puwang upang makalikot sa mga knobs. Ang bawat palayok ay kailangang maiugnay sa 5V at ground at ang mga center pin sa bawat konektado sa mga analog pin na A0, A1 at A2

Hakbang 3: Ang Code

Ang potentiometer o palayok ay isang variable risistor kung saan kapag nakakonekta sa isang Arduino ay magbabalik ng halaga sa pagitan ng 0 at 1023. Gagamitin namin ang mapa () na pagpapaandar upang baguhin ang mga halagang ito upang umangkop sa aming sariling mga pangangailangan. Ang pagpapaandar ng mapa () ay tumatagal ng limang mga argumento at sa aming kaso kailangan naming muling mapa ang saklaw sa pagitan ng 220 at 2200 upang makagawa ng isang makatwirang tunog na naririnig.

Mukhang ganito ang pagpapaandar:

mapa (palayok, 0, 1023, 220, 2200);

Maaari kang maglaro sa huling dalawang halaga para sa mas mataas at mas mababang mga tono ng dalas, mag-ingat lamang na hindi mo mapataob ang iyong aso.

Ingay_Machine.ino

/ * Ingay na makina gamit ang tatlong potentiometers na konektado sa mga analog input
at isang piezo o maliit na nagsasalita. Ang isang pindutan ay nakabukas ang ingay, ang mga potensyal
kontrolin ang pitch gamit ang Arduino tone () function, at dalawang pagkaantala
mga halagang kinokontrol ang haba ng bawat tono at haba sa pagitan
bawat tono. Ang potentiometers ay nagbibigay ng mga halagang analog na binago
gamit ang mapa () na paggana sa mas malaki o mas maliit na mga saklaw upang umangkop sa iyong
kagustuhan sa musika.
Ang code na ito ay nasa pampublikong domain.
Matt Thomas 2019-04-05
*/
Constint buttonPin = 2; // Pushbutton pin 2
pagpipilit speaker = 9; // Speaker o piezo sa pin 9
int buttonState = 0; // Mga variable para sa pindutan
int potZero; // at potentiometers
int potOne;
int potTwo;
voidsetup () {
pinMode (9, OUTPUT); // Speaker / piezo output pin
}
voidloop () {
buttonState = digitalRead (buttonPin); // Basahin ang estado ng pushbutton
potZero = analogRead (A0); // Mga variable para sa pagbabasa ng mga halagang analog
potOne = analogRead (A1);
potTwo = analogRead (A2);
int htz = mapa (potZero, 0, 1023, 0, 8800); // Map the analog readings into
int high = mapa (potOne, 0, 1023, 0, 100); // bagong mga saklaw ng numero at lumikha
int low = mapa (potTwo, 0, 1023, 0, 100); // mga bagong variable
kung (buttonState == MATAAS) {// Kung ang pushbutton ay pinindot…
tono (nagsasalita, htz); // Sound on
pagkaantala (mataas); // Haba ng tono
noTone (speaker); // Tumunog
antala (mababa); // Oras hanggang sa susunod na tono
} iba pa {
noTone (speaker); // Walang tono kung ang pindutan ay pinakawalan
}
}

tingnan ang rawNoise_Machine.ino naka-host sa ❤ ng GitHub

Hakbang 4: Ang Wakas

Kaya't nandiyan lang iyon. Maglaro sa paligid ng mga halaga sa code, magdagdag ng higit pang mga kaldero / pindutan at makita kung ano pa ang maaari mong kontrolin. Ipaalam sa akin kung nakagawa ako ng anumang mga pagkakamali at inaasahan kong nasisiyahan ka sa musika.

Inirerekumendang: