İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bunlar, bir Arduino'dan ve diğer birkaç bileşenden bir gitar akort cihazı yapma talimatlarıdır. Temel elektronik ve kodlama bilgisi ile bu gitar tunerini yapabileceksiniz.
Her şeyden önce, malzemelerin ne olduğunu bilmelisiniz.
Malzemeler:
- 1 Arduino (Arduino 1 kullandım)
- 1 LCD Ekran (16x2)
- 1 Potansiyometre
- 1 Elektret Mikrofon
- 1 250 Ohm Direnç
- Birkaç Tel
-Havya
- 1 Piezo
Adım 1: Lehimleme Pimleri
Yapmanız gereken ilk şey, pinleri LCD'ye lehimlemektir, ancak doğru şekilde lehimlendiğinden emin olmalısınız. Yukarıdaki resimde hangi pinlerin nereye bağlanması gerektiğini gösteriyor. GND pini Tinkercad şemasındaki gibi potansiyometrenin bir terminaline bağlanmalıdır. (NOT: Pinleri belirtildiği şekilde bağlamanız çok önemlidir aksi halde tuner çalışmayacaktır.)
2. Adım: Her Şeyi Bağlama
Kabloları LCD'ye lehimledikten sonra bağlamanız gereken birkaç kablo daha var.
1.) Yapmanız gereken ilk şey Arduino üzerindeki GND ve 5V'yi breadboard'a bağlayarak güç almasını sağlamaktır. Ardından elektreti dijital pin 7 ve GND'ye bağlayın.
2.) Ardından piezoyu GND için devre tahtasına bağlayın ve dijital pin 6'ya bağlayın.
3.) Potansiyometre gittikten sonra, terminal 1'i devre tahtasındaki pozitif bir şeride ve terminal 2'yi devre tahtasındaki bir GND şeridine bağlarsınız, ardından sileceği LCD'deki kontrast pimine bağlarsınız.
Adım 3: Kodlama
Her şeyi doğru şekilde bağladıktan sonra, alıcıyı gerçekten işini yapacak şekilde programlamanız gerekir. kod aşağıdadır
// kitaplık kodunu dahil et:#include
// kütüphaneyi LiquidCrystal lcd(12, 11, 5, 4, 3, 2) arabirim pinlerinin numaralarıyla başlat;
int A = 440;
int B = 494;
int C = 523;
int D = 587;
int E = 659;
int F = 699;
int G = 784;
int yüksekA = 880;
int zil = 8; int functionGenerator = A1;
geçersiz kurulum() {
// LCD'nin sütun ve satır sayısını ayarlayın:
lcd.başla(16, 2);
// LCD'ye bir mesaj yazdırın.
lcd.print("merhaba dünya!");
Seri.başla(9600);
// LCD'deki her şeyi temizle, ardından imleci ayarla, printt
lcd.setCursor(0, 1); }
boşluk döngüsü () {
Serial.println(analogRead(functionGenerator));
gecikme (50);
// imleci sütun 0, satır 1'e ayarla
//(not: sayma 0 ile başladığı için 1. satır ikinci satırdır):
if (analogRead(functionGenerator) == 450) {
lcd.clear();
lcd.setCursor(8, 1);
ton(zil, 250);
lcd.print("A");
gecikme(1000);
}else if (analogRead(functionGenerator) == 494) {
lcd.clear();
lcd.setCursor(8, 1);
ton(zil, 250);
lcd.print("B");
gecikme(1000);
}else if (analogRead(functionGenerator) == 523) {
lcd.clear();
lcd.setCursor(8, 1);
ton(zil, 250);
lcd.print("C");
gecikme(1000);
}else if (analogRead(functionGenerator) == 587) {
lcd.clear();
lcd.setCursor(8, 1);
ton(zil, 250);
lcd.print("D");
gecikme(1000);
}else if (analogRead(functionGenerator) == 659) {
lcd.clear();
lcd.setCursor(8, 1);
ton(zil, 250);
lcd.print("E");
gecikme(1000);
}else if (analogRead(functionGenerator) == 699) {
lcd.clear();
lcd.setCursor(8, 1);
ton(zil, 250);
lcd.print("F");
gecikme(1000);
}else if (analogRead(functionGenerator) == 784) {
lcd.clear();
lcd.setCursor(8, 1);
ton(zil, 250);
lcd.print("G");
gecikme(1000);
}else if (analogRead(functionGenerator) == 880) {
lcd.clear();
lcd.setCursor(8, 1);
ton(zil, 250);
lcd.print("A");
gecikme(1000);
}else if (analogRead(functionGenerator)>400&&digitalRead(functionGenerator)<449) {
lcd.clear();
lcd.setCursor(4, 1);
ton(zil, 250);
lcd.print("A");
gecikme(1000);
}else if (analogRead(functionGenerator)>451&&digitalRead(functionGenerator)<470) {
lcd.clear();
lcd.setCursor(12, 1);
ton(zil, 250);
lcd.print("A");
gecikme(1000);
}else if (analogRead(functionGenerator)>471&&digitalRead(functionGenerator)<493) {
lcd.clear();
lcd.setCursor(4, 1);
ton(zil, 250);
lcd.print("B");
gecikme(1000);
}else if (analogRead(functionGenerator)>495&&digitalRead(functionGenerator)<509) {
lcd.clear();
lcd.setCursor(12, 1);
ton(zil, 250);
lcd.print("B");
gecikme(1000);
}else if (analogRead(functionGenerator)>509&&digitalRead(functionGenerator)<522) {
lcd.clear();
lcd.setCursor(4, 1);
ton(zil, 250);
lcd.print("C");
gecikme(1000);
}else if (analogRead(functionGenerator)>524&&digitalRead(functionGenerator)<556) {
lcd.clear();
lcd.setCursor(12, 1);
ton(zil, 250);
lcd.print("C");
gecikme(1000);
}else if (analogRead(functionGenerator)>557&&digitalRead(functionGenerator)<586) {
lcd.clear();
lcd.setCursor(4, 1);
ton(zil, 250);
lcd.print("D");
gecikme(1000);
}else if (analogRead(functionGenerator)>588&&digitalRead(functionGenerator)<620) {
lcd.clear();
lcd.setCursor(12, 1);
ton(zil, 250);
lcd.print("D");
gecikme(1000);
}else if (analogRead(functionGenerator)>621&&digitalRead(functionGenerator)<658) {
lcd.clear();
lcd.setCursor(4, 1);
ton(zil, 250);
lcd.print("E");
gecikme(1000);
}else if (analogRead(functionGenerator)>660&&digitalRead(functionGenerator)<679) {
lcd.clear();
lcd.setCursor(12, 1);
ton(zil, 250);
lcd.print("E");
gecikme(1000);
}else if (analogRead(functionGenerator)>680&&digitalRead(functionGenerator)<698) {
lcd.clear();
lcd.setCursor(4, 1);
ton(zil, 250);
lcd.print("F");
gecikme(1000);
}else if (analogRead(functionGenerator)>700&&digitalRead(functionGenerator)<742) {
lcd.clear();
lcd.setCursor(12, 1);
ton(zil, 250);
lcd.print("F");
gecikme(1000);
}else if (analogRead(functionGenerator)>743&&digitalRead(functionGenerator)<783) {
lcd.clear();
lcd.setCursor(4, 1);
ton(zil, 250);
lcd.print("G");
gecikme(1000);
}else if (analogRead(functionGenerator)>785&&digitalRead(functionGenerator)<845) {
lcd.clear();
lcd.setCursor(12, 1);
ton(zil, 250);
lcd.print("G");
gecikme(1000);
}else if (analogRead(functionGenerator)>846&&digitalRead(functionGenerator)<879) {
lcd.clear();
lcd.setCursor(4, 1);
ton(zil, 250);
lcd.print("A");
gecikme(1000); }
else { noTone(buzzer); } gecikme(10); }
Adım 4: Güce Bağlama
Son adım için tek yapmanız gereken bir güç kaynağı bulmak ve onu Arduino'ya bağlamak, sahip olduğunuz ve tuneri kullanmaya başlayabileceğiniz bir tane.