Სარჩევი:

მუსიკალური ზღაპრების შუქები: 6 ნაბიჯი (სურათებით)
მუსიკალური ზღაპრების შუქები: 6 ნაბიჯი (სურათებით)

ვიდეო: მუსიკალური ზღაპრების შუქები: 6 ნაბიჯი (სურათებით)

ვიდეო: მუსიკალური ზღაპრების შუქები: 6 ნაბიჯი (სურათებით)
ვიდეო: რა ხდება კანონიერი ქურდების საკნებში 2024, ივლისი
Anonim
Image
Image

ავტორი IanCumming დაიცავით მეტი ავტორის მიერ:

არდუინოს ინტერვალომეტრი
არდუინოს ინტერვალომეტრი
არა მხოლოდ საათის ტაიმერი
არა მხოლოდ საათის ტაიმერი
არა მხოლოდ საათის ტაიმერი
არა მხოლოდ საათის ტაიმერი
ერთი პიქსელის თერმომეტრი
ერთი პიქსელის თერმომეტრი
ერთი პიქსელის თერმომეტრი
ერთი პიქსელის თერმომეტრი

შესახებ: მე მიყვარს ნივთების დამზადება რაკეტებიდან ელექტრონიკამდე. მეტი IanCumming- ის შესახებ »

მოგესალმებით ყველას

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

ნაბიჯი 1: გამოყენებული ნაწილები

ნაწილები მეორადი
ნაწილები მეორადი

მე გამოვიყენებ შემდეგს:

  • 12 LED
  • 12 მიმდინარე შეზღუდვის რეზისტორები
  • 1 ULN 2803 დარლინგტონის ტრანზისტორი მასივი
  • ზოგიერთი Jumper Wires
  • პიეზო სპიკერი
  • პურის დაფა და
  • არდუინო
  • ზღაპრის შუქების შესაქმნელად გამოვიყენე 5 მავთული Ethernet კაბელიდან

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

// GLOBAL VARS int barTime = 1200; // 8/8 = 1000ms ბაიტი nrLEDS = 4; // 4 ძირითადი LED, შეგიძლიათ დაამატოთ ბევრი პარალელური ბაიტი led = {3, 4, 5, 6}; ბაიტის სპიკერი = 11; ბაიტი patternLength = 64; // ნიმუში სიგრძე სიგრძე ბაიტი songLength = 51; const byte სიმღერა = {// Jingle Bells Data 29, 2, 29, 2, 29, 4, 29, 2, 29, 2, 29, 4, 29, 2, 32, 2, 25, 3, 27, 1, 29, 8, 30, 2, 30, 2, 30, 3, 30, 1, 30, 2, 29, 2, 29, 2, 29, 1, 29, 1, 29, 2, 27, 2, 27, 2, 29, 2, 27, 4, 32, 4, 29, 2, 29, 2, 29, 4, 29, 2, 29, 2, 29, 4, 29, 2, 32, 2, 25, 3, 27, 1, 29, 8, 30, 2, 30, 2, 30, 2, 30, 2, 30, 2, 29, 2, 29, 2, 29, 1, 29, 1, 32, 2, 32, 2, 30, 2, 27, 2, 25, 8}; // სტრუქტურა არის შენიშვნის ნომერი შემდეგ // შენიშვნა სიგრძე მე -8 კონსტ ბაიტის ნიმუშში = {// ნიმუშის მონაცემები 0b0001, 0b0010, 0b0100, 0b1000, // ბიტები შეესაბამება Leds მასივში 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

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

  • სიმღერა ინახავს მელოდიას; ამ შემთხვევაში ეს არის ჯინგლის ზარები.
  • ნიმუში ინახავს და გამორთავს პოზიციებს მასივის მნიშვნელობების ბიტებში.

პერსონალური ფუნქციები

// FUNCTIONS int noteToHz (int note) {// გადაიყვანეთ შენიშვნა Nr. to Frequency float freq = 440 * (ძალა (1.059463094359, შენიშვნა -21)); // -21 გაძლევთ 1 შენიშვნას C3 (I think) return int (freq); // შედეგები ზუსტია 1 ჰერცი} void lightLEDs (ბაიტი PORT_X) {// LED- ის მდგომარეობის კონტროლი (int q = 0; q

ორი ფუნქცია, რაც მე მაქვს, შემდეგს გააკეთებს:

  • მარყუჟში ტონის ფუნქციის სიხშირის გამოთვლა
  • ჩართეთ ან გამორთეთ LED- ები ფუნქციაზე გადატანილი მნიშვნელობის მიხედვით

დაყენების ფუნქცია

void setup () {// setup OUTPUT ქინძისთავები pinMode (სპიკერი, OUTPUT); for (int t = 0; t <nrLEDS; t ++) {pinMode (leds [t], OUTPUT); }}

დაყენების ფუნქციაში მე დავაყენე ქინძისთავები, რომლებიც საჭიროა OUTPUT.

მარყუჟის ფუნქცია

void loop () {// Music Loop for (int t = 0; t <songLength; t ++) {// Notes, Length and play the melody int note = noteToHz (song [t * 2]); int სიგრძე = ((სიმღერა [(t * 2) +1] * barTime) / 8); ტონი (სპიკერი, შენიშვნა, სიგრძე - 50); // მოციმციმე შუქები! lightLEDs (ნიმუში [t % patternLength]); შეფერხება (სიგრძე); } // Silence Loop int randomSilence = შემთხვევითი (1000, 5000); for (int t = 0; t

მე მაქვს 2 მარყუჟი Main Loop ფუნქციაში. სიმღერის მარყუჟი და დუმილის მარყუჟი

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

სიმღერის მარყუჟი იქნება,

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

სიჩუმის მარყუჟში

მხოლოდ LED ნათურები ანათებს

შეაერთეთ Arduino და ატვირთეთ კოდი. (შემდეგ გამორთეთ)

ნაბიჯი 3: ჩართეთ წრე

ჩართვა ჩართვა
ჩართვა ჩართვა
ჩართვა ჩართვა
ჩართვა ჩართვა
ჩართვა ჩართვა
ჩართვა ჩართვა
ჩართვა ჩართვა
ჩართვა ჩართვა

მე დავიწყებ სინათლის სიმებით

  • მე გამოვიყენე მავთული Ethernet კაბელიდან და 4 LED შევაერთე პარალელურად ოთხჯერ, დავრწმუნდი რომ LED- ები თანაბრად გავანაწილე დაახლოებით 2 მეტრზე
  • მე გავამახვილე თითოეული ლიდერის ანოდი ერთ მავთულზე.
  • შემდეგ თითოეული LED- ის კათოდური 4 ცალკე მავთული. რეზისტორით, რა თქმა უნდა
  • ეს პროცესი 3 -ჯერ გავიმეორე 12 LED- ის სტრიქონის მისაღებად და 5 სადენის ბოლოს დავამატე სათაურის ქინძისთავები

შეაერთეთ პოზიტიური და დაფქული რელსები პურის დაფაზე

ნაბიჯი 4: ULN2803

ULN2803
ULN2803
ULN2803
ULN2803
ULN2803
ULN2803

მოათავსეთ ULN2308 ჩიპი პურის დაფაზე

ULN2308 არის ტრანზისტორი მასივის ჩიპი; მონაცემთა ფურცლიდან ვხედავ

  • ეს პინი 1 არის შეყვანა, რომელიც ჩართავს პინ 18 -ს "ON"
  • პინი 2 ჩართულია 17 -ზე. და ა.შ.
  • პინი 9 დაფქულია
  • შეაერთეთ ჩიპის პინი 9 მიწასთან
  • შეაერთეთ პოზიტიური რკინიგზა ტერმინალის ზოლთან, ერთი ზოლი პინ 18 -ზე ზემოთ (ნახავთ რატომ ერთ წუთში)
  • შეაერთეთ ჩიპის პინი 1 არდუინოს პინ 3 -თან
  • 2 მიდის 4 -ზე
  • ჩიპის 3 მიდის 5 -ზე და
  • 4 მიდის Arduino– ს მე –6 პინზე
  • განათავსეთ LED სტრიქონი პურის დაფაზე. სადაც საერთო ანოდის მავთული უკავშირდება ზოლს, რომელიც დაკავშირებულია 5 ვოლტთან. ზღაპრის დანარჩენი ქინძისთავები უნდა მიდიოდეს ჩიპის 18, 17, 16 და 15 პინზე.

ნაბიჯი 5: ხმის დამატება

ხმის დამატება
ხმის დამატება
  • დააკავშირეთ პიეზო სპიკერი 2 ტერმინალის ზოლს შორის
  • შეაერთეთ პიეზო ელემენტის უარყოფითი პოლუსი მიწასთან და
  • სპიკერის მეორე ბოლო 11 პინზე

ნაბიჯი 6: დასკვნა

დასკვნა
დასკვნა
დასკვნა
დასკვნა

მე მაქვს სინათლის სტრიქონი, რომელიც შემთხვევით ჟღერს ჟანგლის ზარებს, რომ შემახსენოს, რომ სადღესასწაულო სეზონია.

გირჩევთ: