Სარჩევი:

Arduino ხმაურის მანქანა: 4 ნაბიჯი
Arduino ხმაურის მანქანა: 4 ნაბიჯი

ვიდეო: Arduino ხმაურის მანქანა: 4 ნაბიჯი

ვიდეო: Arduino ხმაურის მანქანა: 4 ნაბიჯი
ვიდეო: კახი კალაძე დატროლეს 😀🤣🤣 2024, ნოემბერი
Anonim
არდუინოს ხმაურის მანქანა
არდუინოს ხმაურის მანქანა
არდუინოს ხმაურის მანქანა
არდუინოს ხმაურის მანქანა
არდუინოს ხმაურის მანქანა
არდუინოს ხმაურის მანქანა

მე ვიპოვე პატარა სპიკერი ძველი P. C.- ის დანგრევისას. გადამუშავებისთვის და ვიფიქრე, რომ ვნახავ, როგორ ჟღერდა ის არდუინოს ტონის () ფუნქციის გამოყენებით. მე დავიწყე ერთი 10Ω პოტენომეტრით მოედნის გასაკონტროლებლად და დავიწყე ხმაური. Tone () ფუნქცია იყენებს მარტივ პულსის ნიმუშს. ის ხმას ჩართავს და გამორთავს სხვადასხვა სიხშირეზე კვადრატული ტალღის ნიმუშში. მე მქონდა ორი სხვა პოტენომეტრი, რომ მე დავამატე ისინი და გამოვიყენე ისინი ტონის ხანგრძლივობის გასაკონტროლებლად. ერთი აკონტროლებს ტონის სიგრძეს და ერთი აკონტროლებს ჩუმი სივრცეს ტონებს შორის. ის ძირითადად იყენებს სხვა კვადრატულ ტალღის ნიმუშს, მაგრამ გაცილებით დაბალი სიხშირით. ამ მიკროსქემის საშუალებით შეგიძლიათ მიაღწიოთ სხვადასხვა სახის ხმაურს. ის ასევე კარგად მუშაობს პიეზო ზუზერთან, მაგრამ არ აქვს სპიკერის ბასის პასუხი.

ნაბიჯი 1: ნაწილები, რომლებიც დაგჭირდებათ

არდუინო უნო

პურის დაფისა და მხტუნავის მავთულები

1 პატარა დინამიკი ან პიეზოს ზარი

1 ღილაკზე გადამრთველი

3 10Ω პოტენომეტრი

1 22Ω რეზისტორი

1 10kΩ რეზისტორი

ნაბიჯი 2: შექმენით წრე

ააშენეთ წრე
ააშენეთ წრე

შეაერთეთ პურის დაფა თქვენს Arduino 5V პინთან და GND- თან. განათავსეთ Pushbutton გადამრთველი პურის დაფის უკიდურეს მარჯვნივ ან მარცხნივ და შეაერთეთ იგი 5 ვ და მიწასთან 10kΩ რეზისტორის გამოყენებით. შეაერთეთ მავთული გადართვის სქემიდან თქვენს არდუინოს პინ 2 -ზე.

მეორე მხარეს breadboard დააყენეთ სპიკერი/piezo ჩართვა 5v და ადგილზე გამოყენებით 220Ω resistor. ეს რეზისტორი აკონტროლებს დენს რითაც აკონტროლებს მოცულობას; შეგიძლიათ სცადოთ სხვადასხვა რეზისტორი აქ უფრო მაღალი ან დაბალი მოცულობისთვის.

მოათავსეთ თქვენი პოტენომეტრები პურის დაფის ცენტრში და მიეცით საკმარისი ადგილი სახელურებთან დასაჭერად. თითოეული ქოთანი უნდა იყოს დაკავშირებული 5 ვ და მიწასთან, ხოლო ცენტრალური ქინძისთავები თითოეულ მათგანთან დაკავშირებულია ანალოგიურ ქინძისთავებთან A0, A1 და A2

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

პოტენომეტრი ან ქოთანი არის ცვლადი რეზისტორი, რომელიც Arduino– სთან დაკავშირებისას დააბრუნებს მნიშვნელობას 0 – დან 1023 – მდე. ჩვენ გამოვიყენებთ რუკის () ფუნქციას, რომ შევცვალოთ ეს მნიშვნელობები ჩვენივე საჭიროებების შესაბამისად. რუქის () ფუნქცია იღებს ხუთ არგუმენტს და ჩვენს შემთხვევაში ჩვენ გვჭირდება ხელახლა დავათვალიეროთ დიაპაზონი 220-დან 2200-მდე, რათა გონივრული გასაგები ბგერა გამოვიდეს.

ფუნქცია ასე გამოიყურება:

რუკა (ქოთანი, 0, 1023, 220, 2200);

თქვენ შეგიძლიათ ითამაშოთ ბოლო ორი მნიშვნელობით უფრო მაღალი და დაბალი სიხშირის ტონებისთვის, უბრალოდ ფრთხილად იყავით, რომ არ გაანაწყენოთ თქვენი ძაღლი.

ხმაური_მანქანა.ინო

/* ხმაურის აპარატი სამი პოტენომეტრის გამოყენებით, რომლებიც დაკავშირებულია ანალოგიურ საშუალებებთან
და პიეზო ან პატარა სპიკერი. ღილაკზე ჩართულია ხმაური, პოტენომეტრი
აკონტროლეთ მოედანზე Arduino tone () ფუნქციის გამოყენებით და ორი შეფერხებით
მნიშვნელობები, რომლებიც აკონტროლებენ თითოეული ტონის სიგრძეს და მათ შორის სიგრძეს
თითოეული ტონი. პოტენომეტრები იძლევა ანალოგიურ მნიშვნელობებს, რომლებიც იცვლება
რუქის () ფუნქციის გამოყენება თქვენს უფრო დიდ ან პატარა დიაპაზონში
მუსიკალური გემოვნება.
ეს კოდი არის საზოგადოებრივ დომენში.
მეტ ტომასი 2019-04-05
*/
შეზღუდვის ღილაკი Pin = 2; // ღილაკის ღილაკი 2
შეზღუდვის სპიკერი = 9; // სპიკერი ან პიეზო პინ 9 -ში
int ღილაკი სახელმწიფო = 0; // ცვლადი ღილაკისთვის
int potZero; // და პოტენომეტრები
int potOne;
int potTwo;
voidsetup () {
pinMode (9, OUTPUT); // სპიკერი/პიეზო გამომავალი პინი
}
voidloop () {
buttonState = digitalRead (ღილაკი პინი); // დააჭირეთ ღილაკის მდგომარეობას
potZero = analogRead (A0); // ცვლადები ანალოგური მნიშვნელობების წასაკითხად
potOne = analogRead (A1);
potTwo = analogRead (A2);
int htz = რუკა (potZero, 0, 1023, 0, 8800); // ჩაწერეთ ანალოგური კითხვები
int მაღალი = რუკა (potOne, 0, 1023, 0, 100); // ახალი რიცხვების დიაპაზონი და შექმნა
int დაბალი = რუკა (potTwo, 0, 1023, 0, 100); // ახალი ცვლადები
თუ (buttonState == HIGH) {// თუ ღილაკზე დაჭერილია…
ტონი (სპიკერი, htz); // ხმა ჩართულია
დაგვიანება (მაღალი); // ტონის სიგრძე
noTone (სპიკერი); // ხმა გამორთულია
დაგვიანებით (დაბალი); // დრო მომდევნო ტონამდე
} სხვა {
noTone (სპიკერი); // არა ტონი, თუ ღილაკი გათავისუფლებულია
}
}

ნედლეულის ნახვა

ნაბიჯი 4: დასასრული

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

გირჩევთ: