Talaan ng mga Nilalaman:

Arduino - Piezo Three Button Piano: 4 Hakbang
Arduino - Piezo Three Button Piano: 4 Hakbang

Video: Arduino - Piezo Three Button Piano: 4 Hakbang

Video: Arduino - Piezo Three Button Piano: 4 Hakbang
Video: Arduino - Three Button Piezo Piano 2024, Nobyembre
Anonim
Image
Image

Ang three-button piano ay isang proyekto para sa mga nagsisimula na may ilang karanasan sa paggamit ng Arduino.

Hindi sinasadya akong natangay sa pagsubok na likhain ito habang naglalaro sa piezo buzzer sa kauna-unahang pagkakataon. Napakalakas nito! Sa pagsubok na malaman ang iba't ibang mga pamamaraan upang gawing mas tahimik ang buzzer at subukan ang iba't ibang mga frequency gamit ang tone () at noTone () na paggana, napagtanto kong maaaring maging masaya na subukan at ihalo ang piezo buzzer kasama ang aking iba pang mga paboritong bahagi ng aking Arduino kit: mga pindutan at potensyomiter.

Kasama sa mga materyal na kinakailangan ang:

  • 1 Arduino
  • 1 Breadboard
  • 1 USB Cable
  • Jumper Wires (iba't ibang kulay)
  • 1 330 Kilo-ohm Resistor
  • 1 Piezo Buzzer
  • 3 Mga Push Button
  • 1 Potensyomiter

Hakbang 1: Piezo Buzzer

Piezo Buzzer
Piezo Buzzer

Upang magsimula, i-set up ang piezo sa breadboard ng Arduino. Ang isang gilid nito (ang mas maikliang bahagi ng binti) ay kailangang tumakbo sa lupa. Ang kabilang panig (ang mas mahabang gilid ng binti) ay kailangang kumonekta sa isang digital input pin. Pinili kong ikonekta ito sa 8.

Hakbang 2: Mga Push Button

Mga Push Button
Mga Push Button
Mga Push Button
Mga Push Button

Susunod, oras na upang i-set up ang mga push button. Tulad ng piezo, ang mga pindutan ng push ay kailangang kumonekta sa lupa at sa isang digital input pin.

Hakbang 3: Potensyomiter

Potensyomiter
Potensyomiter
Potensyomiter
Potensyomiter

Ang pangwakas na hakbang sa pisikal na pagbuo ay ang potensyomiter. Ang mga potensyal ay nagmula sa ilang magkakaibang anyo. Gagamitin namin ang potensyomiter bilang isang divider ng boltahe, kaya lahat ng mga binti nito ay kailangang ikonekta.

Kanang binti: Negatibong Bar (Ground)

Gitnang binti: Analog Pin 0

Left Leg: Positive Bar

Hakbang 4: Code

Habang nagsusulat ng code para sa proyektong ito, sumangguni ako ng impormasyon sa ilang mga tukoy na uri ng pag-andar:

tono ()

noTone () (Hindi ako nagtapos gamit ang isang ito. Itinakda ko sa halip ang dalas sa "0".)

mapa ()

Ang isa pang kahanga-hangang sanggunian para sa mga unang gumagamit ng Piezo Buzzers ay matatagpuan dito. Kahit na ang ideya ng pagbabago ng tunog ng piezo buzzer ay tila simple, maaari itong maging medyo napakatindi sa una!

Ang paggana ng tone () ay maaaring hatiin sa tatlong bahagi:

  1. I-pin (ang pin kung saan nakakonekta ang piezo buzzer)
  2. Dalas (ang dalas ng tunog sa hertz)
  3. Tagal (ang tagal ng tunog na ibinigay sa milliseconds)

Talaga, ganito ang hitsura nito: tono (pin, dalas, tagal). Ang pangatlong sangkap (tagal) ay opsyonal, habang ang dalawa pa ay kinakailangan para gumana ang buzzer. Ang "dalas" na bahagi ng pagpapaandar ng tono ay kung ano ang maaaring isipin bilang "tunog" na ginagawa ng buzzer.

Mapapansin mo rin na nagtatampok ang code ng dalawang iba pang mga piraso ng code. Mayroong ilang mga kung / iba pang mga pahayag na naka-set up upang sabihin sa Arduino kung ano ang gagawin kung ang iba't ibang mga pindutan ay pinindot pati na rin upang i-set up ito ng "dalas = 0" sa mga sitwasyon kung wala sa mga pindutan ang pinindot. Sa loob ng kung / iba pang mga pahayag, ang mga pagpapaandar ng mapa () ay ginagamit upang mapa ang sukat ng potensyomiter sa isang hanay ng mga frequency. Ang mga ito ay maaaring mabago! Maglaro sa paligid ng iba't ibang mga halaga ng dalas upang makita kung ano ang iba't ibang mga tunog na maaari mong makuha mula sa piezo.

Suriin ang code na ginamit ko upang likhain ang three-button piano dito o suriin sa ibaba.

int piezoPin = 8; // I-set up ang pin na konektado sa Piezo.

int sensorPin = 0; // I-set up ang pin na konektado sa sensor (ang potensyomiter). int sensorValue = 0;

int button1 = 5; // I-set up ang mga input pin na konektado sa mga pindutan.

int button2 = 4; int button3 = 3;

int dalas = 0;

Const int delayTime = 500; // Mag-set up ng isang pare-pareho para sa variable ng oras ng pagkaantala sa pagpapaandar ng tone ().

walang bisa ang pag-setup () {

pinMode (button1, INPUT_PULLUP); pinMode (button2, INPUT_PULLUP); pinMode (button3, INPUT_PULLUP); }

void loop () {

sensorValue = analogRead (sensorPin); // Basahin ang sensor. // Map ang iba't ibang mga halaga ng potensyomiter sa isang hanay ng mga frequency para sa bawat isa sa tatlong mga pindutan. kung (digitalRead (button1) == LOW) {frequency = map (sensorValue, 0, 1023, 400, 499); } iba pa kung (digitalRead (button2) == LOW) {frequency = map (sensorValue, 0, 1023, 500, 599); } iba pa kung (digitalRead (button3) == LOW) {frequency = map (sensorValue, 0, 1023, 600, 699); } iba pa {frequency = 0; } tono (piezoPin, dalas, delayTime); // I-set up ang tone () na mga function na may mga variable. }

Inirerekumendang: