Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Bunlar bir Arduinodan və bir neçə digər komponentdən gitar tuner hazırlamaq təlimatlarıdır. Əsas elektronika və kodlaşdırma bilikləri ilə bu gitara tunerini edə biləcəksiniz.
Əvvəlcə materialların nə olduğunu bilməlisiniz.
Materiallar:
- 1 Arduino (Arduino 1 istifadə etdim)
- 1 LCD Ekran (16x2)
- 1 potansiyometr
- 1 elektret mikrofonu
- 1250 Ohm müqavimət
- Bir neçə tel
-Lehimleme dəmir
- 1 ədəd Piezo
Addım 1: Lehim pinləri
Etməli olduğunuz ilk şey, pinləri LCD -yə lehimləməkdir, lakin onların düzgün şəkildə lehimləndiyinə əmin olmalısınız. Yuxarıdakı şəkildə, hansı pinlərin hara bağlanmalı olduğunu göstərir. GND pin, Tinkercad diaqramında olduğu kimi potansiyometrenin terminalına bağlanmalıdır. (DİQQƏT: Pimləri təlimat verildiyi kimi bağlamağınız çox vacibdir, əks halda tuner işləməyəcək.)
Addım 2: Hər şeyi birləşdirin
Kabelləri LCD -yə lehimlədikdən sonra bağlamalı olduğunuz bir neçə başqa tel var.
1.) Etməyiniz lazım olan ilk şey, Arduino üzərindəki GND və 5V -nin gücə sahib olmasına imkan verən çörək taxtasına qoşulmasıdır. Sonra elektreti rəqəmsal pin 7 və GND -yə bağlayın.
2.) Sonra piezonu GND üçün çörək taxtasına bağlayın və rəqəmsal pin 6 -ya bağlayın.
3.) Potansiyometr getdikdən sonra, terminal 1 -ni çörək lövhəsindəki pozitiv zolağa və terminal 2 -ni çörək lövhəsindəki GND şeridinə bağlayırsınız, sonra silecekini LCD -dəki kontrast pinə bağlayırsınız.
Addım 3: Kodlaşdırma
Hər şeyi düzgün bir şəkildə bağladıqdan sonra, tuneri proqramlaşdırmalısınız ki, əslində öz işini görsün. Kod aşağıda verilmişdir
// kitabxana kodunu daxil edin: #include
// kitabxananı LiquidCrystal lcd (12, 11, 5, 4, 3, 2) interfeys pinlərinin nömrələri ilə işə salın;
int A = 440;
int B = 494;
int C = 523;
int D = 587;
int E = 659;
int F = 699;
int G = 784;
int yüksəkA = 880;
int buzzer = 8; int functionGenerator = A1;
boş quraşdırma () {
// LCD -nin sütun və satır sayını təyin edin:
lcd.begin (16, 2);
// LCD -yə mesaj yazın.
lcd.print ("salam, dünya!");
Serial.begin (9600);
// LCD -də hər şeyi silin, sonra kursoru, çapı təyin edin
lcd.setCursor (0, 1); }
boşluq döngəsi () {
Serial.println (analogRead (functionGenerator));
gecikmə (50);
// kursoru 0 sütunun 1 -ci sətirinə qoyun
// (qeyd: say 1 0 -dan başladığı üçün ikinci sətirdir):
əgər (analogRead (functionGenerator) == 450) {
lcd.clear ();
lcd.setCursor (8, 1);
ton (səs -küy, 250);
lcd.print ("A");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator) == 494) {
lcd.clear ();
lcd.setCursor (8, 1);
ton (səs -küy, 250);
lcd.print ("B");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator) == 523) {
lcd.clear ();
lcd.setCursor (8, 1);
ton (səs -küy, 250);
lcd.print ("C");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator) == 587) {
lcd.clear ();
lcd.setCursor (8, 1);
ton (səs -küy, 250);
lcd.print ("D");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator) == 659) {
lcd.clear ();
lcd.setCursor (8, 1);
ton (səs -küy, 250);
lcd.print ("E");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator) == 699) {
lcd.clear ();
lcd.setCursor (8, 1);
ton (səs -küy, 250);
lcd.print ("F");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator) == 784) {
lcd.clear ();
lcd.setCursor (8, 1);
ton (səs -küy, 250);
lcd.print ("G");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator) == 880) {
lcd.clear ();
lcd.setCursor (8, 1);
ton (səs -küy, 250);
lcd.print ("A");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator)> 400 && digitalRead (functionGenerator) <449) {
lcd.clear ();
lcd.setCursor (4, 1);
ton (səs -küy, 250);
lcd.print ("A");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator)> 451 && digitalRead (functionGenerator) <470) {
lcd.clear ();
lcd.setCursor (12, 1);
ton (səs -küy, 250);
lcd.print ("A");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator)> 471 && digitalRead (functionGenerator) <493) {
lcd.clear ();
lcd.setCursor (4, 1);
ton (səs -küy, 250);
lcd.print ("B");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator)> 495 && digitalRead (functionGenerator) <509) {
lcd.clear ();
lcd.setCursor (12, 1);
ton (səs -küy, 250);
lcd.print ("B");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator)> 509 && digitalRead (functionGenerator) <522) {
lcd.clear ();
lcd.setCursor (4, 1);
ton (səs -küy, 250);
lcd.print ("C");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator)> 524 && digitalRead (functionGenerator) <556) {
lcd.clear ();
lcd.setCursor (12, 1);
ton (səs -küy, 250);
lcd.print ("C");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator)> 557 && digitalRead (functionGenerator) <586) {
lcd.clear ();
lcd.setCursor (4, 1);
ton (səs -küy, 250);
lcd.print ("D");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator)> 588 && digitalRead (functionGenerator) <620) {
lcd.clear ();
lcd.setCursor (12, 1);
ton (səs -küy, 250);
lcd.print ("D");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator)> 621 && digitalRead (functionGenerator) <658) {
lcd.clear ();
lcd.setCursor (4, 1);
ton (səs -küy, 250);
lcd.print ("E");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator)> 660 && digitalRead (functionGenerator) <679) {
lcd.clear ();
lcd.setCursor (12, 1);
ton (səs -küy, 250);
lcd.print ("E");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator)> 680 && digitalRead (functionGenerator) <698) {
lcd.clear ();
lcd.setCursor (4, 1);
ton (səs -küy, 250);
lcd.print ("F");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator)> 700 && digitalRead (functionGenerator) <742) {
lcd.clear ();
lcd.setCursor (12, 1);
ton (səs -küy, 250);
lcd.print ("F");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator)> 743 && digitalRead (functionGenerator) <783) {
lcd.clear ();
lcd.setCursor (4, 1);
ton (səs -küy, 250);
lcd.print ("G");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator)> 785 && digitalRead (functionGenerator) <845) {
lcd.clear ();
lcd.setCursor (12, 1);
ton (səs -küy, 250);
lcd.print ("G");
gecikmə (1000);
} başqa halda (analogRead (functionGenerator)> 846 && digitalRead (functionGenerator) <879) {
lcd.clear ();
lcd.setCursor (4, 1);
ton (səs -küy, 250);
lcd.print ("A");
gecikmə (1000); }
başqa {noTone (səs siqnalı); } gecikmə (10); }
Addım 4: Gücə qoşun
Son addım üçün, bir güc mənbəyi tapmaq və onu tunerdən istifadə etməyə başlaya biləcəyiniz Arduino -ya bağlamaq kifayətdir.