Სარჩევი:

არდუინო - პიეზო სამი ღილაკიანი ფორტეპიანო: 4 ნაბიჯი
არდუინო - პიეზო სამი ღილაკიანი ფორტეპიანო: 4 ნაბიჯი

ვიდეო: არდუინო - პიეზო სამი ღილაკიანი ფორტეპიანო: 4 ნაბიჯი

ვიდეო: არდუინო - პიეზო სამი ღილაკიანი ფორტეპიანო: 4 ნაბიჯი
ვიდეო: Arduino: How to Use a Piezo Buzzer 2024, ნოემბერი
Anonim
Image
Image

სამი ღილაკიანი ფორტეპიანო არის პროექტი დამწყებთათვის Arduino– ს გამოყენების გარკვეული გამოცდილებით.

მე უნებლიედ ჩავვარდი მის შექმნის მცდელობაში, როდესაც პირველად ვთამაშობდი პიეზო ზუზერთან ერთად. ისეთი ხმამაღალი იყო! სხვადასხვა მეთოდების გააზრების მიზნით, რათა ზუზუნი იყოს უფრო მშვიდი და განსხვავებული სიხშირეები გამოვიყენოთ ტონის () და noTone () ფუნქციის გამოყენებით, მივხვდი, რომ შეიძლება სახალისო იყოს ჩემი არდუინოს სხვა საყვარელ კომპონენტებთან ერთად პიეზო ზუზუნის შერევა. ნაკრები: ღილაკები და პოტენომეტრი.

საჭირო მასალები მოიცავს:

  • 1 არდუინო
  • 1 პურის დაფა
  • 1 USB კაბელი
  • Jumper Wires (სხვადასხვა ფერის)
  • 1 330 კილო-ომის რეზისტორი
  • 1 პიეზო ბუზერი
  • 3 ღილაკი
  • 1 პოტენომეტრი

ნაბიჯი 1: პიეზო ბუზერი

პიეზო ბუზერი
პიეზო ბუზერი

დასაწყებად, დააყენეთ პიეზო არდუინოს პურის დაფაზე. მისი ერთი მხარე (უფრო მოკლე ფეხის მხარე) უნდა გაიქცეს მიწაზე. მეორე მხარე (უფრო გრძელი ფეხის მხარე) უნდა იყოს დაკავშირებული ციფრული შეყვანის პინთან. მე ავირჩიე მისი დაკავშირება 8 -თან.

ნაბიჯი 2: დააჭირეთ ღილაკებს

დააჭირეთ ღილაკებს
დააჭირეთ ღილაკებს
დააჭირეთ ღილაკებს
დააჭირეთ ღილაკებს

შემდეგი, დროა დააყენოთ ღილაკები. პიეზოს მსგავსად, ღილაკებს უნდა დაუკავშირდეთ მიწასთან და ციფრულ შეყვანის პინთან.

ნაბიჯი 3: პოტენომეტრი

პოტენომეტრი
პოტენომეტრი
პოტენომეტრი
პოტენომეტრი

ფიზიკური აღნაგობის ბოლო ნაბიჯი არის პოტენომეტრი. პოტენომეტრები მოდის რამდენიმე სხვადასხვა ფორმით. ჩვენ ვიყენებთ პოტენომეტრს, როგორც ძაბვის გამყოფს, ამიტომ მისი სამივე ფეხი უნდა იყოს დაკავშირებული.

მარჯვენა ფეხი: უარყოფითი ბარი (მიწა)

შუა ფეხი: ანალოგური პინ 0

მარცხენა ფეხი: დადებითი ბარი

ნაბიჯი 4: კოდი

ამ პროექტის კოდის წერისას მე მივმართე ინფორმაციას რამდენიმე კონკრეტული ტიპის ფუნქციის შესახებ:

ტონი ()

noTone () (მე არ გამოვიყენე ეს ერთი. ამის ნაცვლად, მე დავაყენე სიხშირე "0".)

რუკა ()

Piezo Buzzers– ის პირველად მომხმარებლებისთვის კიდევ ერთი მშვენიერი მინიშნება შეგიძლიათ იხილოთ აქ. მიუხედავად იმისა, რომ პიეზო ზუზუნის ხმის შეცვლის იდეა მარტივი ჩანს, ის შეიძლება თავიდანვე დამთრგუნველი იყოს!

ტონი () ფუნქცია შეიძლება დაიყოს სამ ნაწილად:

  1. პინი (პინი, რომელსაც პიეზო ზუზერი უკავშირდება)
  2. სიხშირე (ხმის სიხშირე ჰერცში)
  3. ხანგრძლივობა (ხმის ხანგრძლივობა მოცემული მილიწამებში)

ძირითადად, ასე გამოიყურება: ტონი (პინი, სიხშირე, ხანგრძლივობა). მესამე კომპონენტი (ხანგრძლივობა) არჩევითია, ხოლო დანარჩენი ორი აუცილებელია ზუმერის ფუნქციონირებისათვის. ბგერის ფუნქციის "სიხშირის" კომპონენტი არის ის, რაც შეიძლება ჩაითვალოს როგორც "ხმა", რომელსაც აწარმოებს ზუზუნი.

თქვენ ასევე შეამჩნევთ, რომ კოდი შეიცავს კოდის ორ სხვა ბიტს. არსებობს რამდენიმე თუ სხვა განცხადება, რომელიც არდუინოს ეუბნება რა უნდა გააკეთოს, თუ სხვადასხვა ღილაკზეა დაჭერილი და ასევე "სიხშირე = 0" -ით ისეთ სიტუაციებში, როდესაც არცერთ ღილაკს არ აჭერენ. თუ/სხვა განცხადებებში, რუკა () ფუნქციები გამოიყენება პოტენომეტრის მასშტაბის დასადგენად სიხშირეების ერთობლიობაზე. ესენი შეიძლება შეიცვალოს! ითამაშეთ სხვადასხვა სიხშირის მნიშვნელობით, რომ ნახოთ რა განსხვავებული ბგერები შეგიძლიათ მიიღოთ პიეზოდან.

შეამოწმეთ კოდი, რომელიც მე გამოვიყენე სამი ღილაკის ფორტეპიანოს შესაქმნელად აქ ან შეამოწმეთ ქვემოთ.

int piezoPin = 8; // დააყენეთ Piezo– სთან დაკავშირებული pin.

int sensorPin = 0; // დააინსტალირეთ სენსორთან დაკავშირებული პოტენციალი (პოტენომეტრი). int sensorValue = 0;

int ღილაკი 1 = 5; // დააყენეთ ღილაკებთან დაკავშირებული შეყვანის ქინძისთავები.

int ღილაკი 2 = 4; int ღილაკი 3 = 3;

int სიხშირე = 0;

const int delayTime = 500; // ტონის () ფუნქციაში დროის დაყოვნების ცვლადისთვის მუდმივის დაყენება.

void setup () {

pinMode (ღილაკი 1, INPUT_PULLUP); pinMode (ღილაკი 2, INPUT_PULLUP); pinMode (ღილაკი 3, INPUT_PULLUP); }

ბათილი მარყუჟი () {

sensorValue = analogRead (sensorPin); // სენსორის წაკითხვა. // შეაფასეთ პოტენომეტრი სხვადასხვა მნიშვნელობები სიხშირეების სიმრავლეზე თითოეული სამი ღილაკისთვის. if (digitalRead (button1) == LOW) {სიხშირე = რუკა (sensorValue, 0, 1023, 400, 499); } else if (digitalRead (button2) == LOW) {სიხშირე = რუკა (sensorValue, 0, 1023, 500, 599); } else if (digitalRead (button3) == LOW) {სიხშირე = რუკა (sensorValue, 0, 1023, 600, 699); } else {სიხშირე = 0; } ტონი (piezoPin, სიხშირე, delayTime); // ტონი () ფუნქციების დაყენება ცვლადებით. }

გირჩევთ: