Cov txheej txheem:

Arduino - Piezo Peb Khawm Piano: 4 Kauj Ruam
Arduino - Piezo Peb Khawm Piano: 4 Kauj Ruam

Video: Arduino - Piezo Peb Khawm Piano: 4 Kauj Ruam

Video: Arduino - Piezo Peb Khawm Piano: 4 Kauj Ruam
Video: Arduino Examples - Knock (Piezo Sesnor) 2024, Kaum ib hlis
Anonim
Image
Image

Peb-khawm piano yog qhov haujlwm rau cov pib nrog qee qhov kev paub siv Arduino.

Kuv tau ua tsis tau zoo los sim ua qhov no thaum ua si ib puag ncig nrog piezo buzzer thawj zaug. Nws nrov heev! Hauv kev sim txiav txim siab ntau txoj hauv kev los ua kom lub suab nrov ntsiag to thiab sim tawm ntau zaus siv lub suab () thiab noTone () ua haujlwm, Kuv pom tau tias nws yuav lom zem los sim thiab sib tov piezo buzzer ua ke nrog kuv lwm yam nyiam ntawm kuv Arduino cov khoom siv: cov nyees khawm thiab lub hwj chim.

Cov ntaub ntawv xav tau suav nrog:

  • 1 Arduino
  • 1 Cov qhob cij
  • 1 USB Cable
  • Jumper Wires (ntau yam xim)
  • 1330 Kilo-ohm Resistor
  • 1 Piezo Buzzer
  • 3 Laub Khawm
  • 1 Potentiometer

Kauj ruam 1: Piezo Buzzer

Piezo Buzzer Cov
Piezo Buzzer Cov

Txhawm rau pib tawm, teeb tsa piezo ntawm lub khob cij ntawm Arduino. Ib sab ntawm nws (sab ceg luv dua) yuav tsum khiav mus rau hauv av. Lwm sab (sab ceg ntev dua) xav tau txuas rau tus lej nkag digital. Kuv xaiv txuas nws mus rau 8.

Kauj ruam 2: Laub Khawm

Laub Khawm
Laub Khawm
Laub Khawm
Laub Khawm

Ntxiv mus, nws yog lub sijhawm los teeb tsa lub laub khawm. Zoo li lub piezo, cov laub khawm xav tau txuas rau hauv av thiab rau tus lej nkag.

Kauj Ruam 3: Potentiometer

Potentiometer
Potentiometer
Potentiometer
Potentiometer

Kauj ruam kawg hauv kev tsim lub cev yog lub hwj chim. Potentiometers tuaj hauv ob peb daim ntawv sib txawv. Peb yuav siv lub zog ntsuas hluav taws xob ua qhov faib hluav taws xob, yog li peb ntawm nws ob txhais ceg yuav tsum txuas nrog.

Txoj Cai Ncaj Ncees: Tsis Zoo Bar (Hauv av)

Nruab Nrab Sab: Analog Pin 0

Sab laug ceg: Zoo Bar

Kauj ruam 4: Code

Thaum sau cov cai rau txoj haujlwm no, Kuv tau hais txog cov ntaub ntawv ntawm qee yam tshwj xeeb ntawm kev ua haujlwm:

lub suab ()

noTone () (Kuv tsis tau siv qhov no. Kuv teeb tsa zaus rau "0" xwb.)

daim ntawv qhia ()

Lwm qhov zoo siv rau thawj tus neeg siv Piezo Buzzers tuaj yeem pom ntawm no. Txawm hais tias lub tswv yim hloov lub suab ntawm piezo buzzer zoo li yooj yim, nws tuaj yeem nyuaj me ntsis thaum xub thawj!

Lub suab () ua haujlwm tuaj yeem tawg ua peb ntu:

  1. Pin (tus pin uas piezo buzzer txuas nrog)
  2. Zaus (zaus ntawm lub suab hauv hertz)
  3. Ntev (lub sijhawm ntawm lub suab muab hauv milliseconds)

Yeej, nws zoo li qhov no: lub suab (tus pin, zaus, sijhawm). Qhov tivthaiv thib peb (sijhawm) yog nyob ntawm yeem, thaum ob qho ntxiv yog qhov tsim nyog rau lub tswb nrov kom ua haujlwm. Qhov "zaus" ntawm lub suab ua haujlwm yog dab tsi tuaj yeem xav txog "suab" uas tau tsim los ntawm lub suab nrov.

Koj tseem yuav pom tias txoj cai muaj ob qho ntxiv ntawm cov lej. Muaj qee qhov yog/lwm nqe lus teeb tsa los qhia rau Arduino yuav ua li cas yog tias cov nyees khawm sib txawv raug nias ntxiv rau teeb tsa nws nrog "zaus = 0" hauv cov xwm txheej thaum tsis muaj cov nyees khawm raug nias. Tsis pub dhau qhov yog/lwm nqe lus, daim ntawv qhia () ua haujlwm tau siv los qhia txog qhov ntsuas ntawm lub hwj chim ntsuas hluav taws xob mus rau txheej ntawm cov zaus. Cov no tuaj yeem hloov pauv! Ua si ib puag ncig nrog ntau zaus sib txawv kom pom lub suab sib txawv koj tuaj yeem tau txais los ntawm piezo.

Txheeb xyuas cov cai uas kuv siv los tsim peb-khawm piano ntawm no lossis kos hauv qab no.

int piezoPin = 8; // Teeb tus pin txuas nrog Piezo.

int sensorPin = 0; // Teeb tus pin txuas nrog lub sensor (lub hwj chim ntsuas). int sensorValue = 0;

int khawm 1 = 5; // Teeb tsa cov tswv yim txuas nrog khawm.

int khawm 2 = 4; int khawm 3 = 3;

int zaus = 0;

const int ncua sij hawm = 500; // Teeb tsa qhov tsis tu ncua rau qhov sib txawv ntawm ncua sijhawm hauv lub suab () ua haujlwm.

void teeb tsa () {

pinMode (khawm 1, INPUT_PULLUP); pinMode (khawm 2, INPUT_PULLUP); pinMode (khawm 3, INPUT_PULLUP); }

void voj () {

sensorValue = analogRead (sensorPin); // Nyeem lub sensor. // Daim ntawv qhia qhov sib txawv qhov tseem ceeb ntawm lub hwj chim rau txheej ntawm cov zaus rau txhua ntawm peb lub khawm. yog (digitalRead (button1) == LOW) {zaus = daim ntawv qhia (sensorValue, 0, 1023, 400, 499); } lwm tus yog (digitalRead (button2) == LOW) {zaus = daim ntawv qhia (sensorValue, 0, 1023, 500, 599); } lwm tus yog (digitalRead (button3) == LOW) {zaus = daim ntawv qhia (sensorValue, 0, 1023, 600, 699); } lwm {zaus = 0; } lub suab (piezoPin, zaus, ncua sijhawm); // Teeb tsa lub suab () ua haujlwm nrog cov hloov pauv. }

Pom zoo: