Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Dette er instruksjonene for å lage en gitar tuner av en Arduino og flere andre komponenter. Med grunnleggende kunnskap om elektronikk og koding vil du kunne lage denne gitartuneren.
Først må du vite hva materialene er.
Materialer:
- 1 Arduino (jeg brukte en Arduino 1)
- 1 LCD -skjerm (16x2)
- 1 potensiometer
- 1 Electret -mikrofon
- 1 250 Ohm motstand
- Flere ledninger
-Loddejern
- 1 Piezo
Trinn 1: Loddepinner
Det første du må gjøre er å lodde pinnene til LCD -skjermen, men du må sørge for at de er loddet på riktig måte. På bildet ovenfor viser det hvilke pinner som skal kobles til hvor. GND -pinnen skal kobles til en terminal på potensiometeret som i Tinkercad -diagrammet. (MERK: Det er veldig viktig at du kobler pinnene slik det er instruert, ellers fungerer ikke tuneren.)
Trinn 2: Koble til alt
Etter lodding av ledningene til LCD -skjermen er det flere andre ledninger du må koble til.
1.) Det første du må gjøre er å koble GND og 5V på Arduino til brødbrettet slik at det kan få strøm. Koble deretter elektret til den digitale pinnen 7 og GND.
2.) Koble deretter piezoen til brødbrettet for GND og koble den til digital pin 6.
3.) Etter at potensiometeret går, kobler du terminal 1 til en positiv stripe på brødbrettet og terminal 2 til en GND -stripe på brødbrettet, og deretter kobler du viskeren til kontrastpinnen på LCD -skjermen.
Trinn 3: Koding
Når du har koblet alt på riktig måte, må du programmere tuneren slik at den faktisk gjør jobben sin. Nedenfor er koden
// inkludere bibliotekskoden: #include
// initialiser biblioteket med tallene på grensesnittpinnene LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
int A = 440;
int B = 494;
int C = 523;
int D = 587;
int E = 659;
int F = 699;
int G = 784;
int høyA = 880;
int summer = 8; int functionGenerator = A1;
ugyldig oppsett () {
// konfigurer LCD -antallet kolonner og rader:
lcd.begin (16, 2);
// Skriv ut en melding til LCD -skjermen.
lcd.print ("hei, verden!");
Serial.begin (9600);
// tøm alt i LCD, og sett deretter markøren, skriveren
lcd.setCursor (0, 1); }
void loop () {
Serial.println (analogRead (functionGenerator));
forsinkelse (50);
// sett markøren til kolonne 0, linje 1
// (merk: linje 1 er den andre raden, siden tellingen begynner med 0):
if (analogRead (functionGenerator) == 450) {
lcd.clear ();
lcd.setCursor (8, 1);
tone (summer, 250);
lcd.print ("A");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator) == 494) {
lcd.clear ();
lcd.setCursor (8, 1);
tone (summer, 250);
lcd.print ("B");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator) == 523) {
lcd.clear ();
lcd.setCursor (8, 1);
tone (summer, 250);
lcd.print ("C");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator) == 587) {
lcd.clear ();
lcd.setCursor (8, 1);
tone (summer, 250);
lcd.print ("D");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator) == 659) {
lcd.clear ();
lcd.setCursor (8, 1);
tone (summer, 250);
lcd.print ("E");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator) == 699) {
lcd.clear ();
lcd.setCursor (8, 1);
tone (summer, 250);
lcd.print ("F");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator) == 784) {
lcd.clear ();
lcd.setCursor (8, 1);
tone (summer, 250);
lcd.print ("G");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator) == 880) {
lcd.clear ();
lcd.setCursor (8, 1);
tone (summer, 250);
lcd.print ("A");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator)> 400 && digitalRead (functionGenerator) <449) {
lcd.clear ();
lcd.setCursor (4, 1);
tone (summer, 250);
lcd.print ("A");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator)> 451 && digitalRead (functionGenerator) <470) {
lcd.clear ();
lcd.setCursor (12, 1);
tone (summer, 250);
lcd.print ("A");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator)> 471 && digitalRead (functionGenerator) <493) {
lcd.clear ();
lcd.setCursor (4, 1);
tone (summer, 250);
lcd.print ("B");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator)> 495 && digitalRead (functionGenerator) <509) {
lcd.clear ();
lcd.setCursor (12, 1);
tone (summer, 250);
lcd.print ("B");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator)> 509 && digitalRead (functionGenerator) <522) {
lcd.clear ();
lcd.setCursor (4, 1);
tone (summer, 250);
lcd.print ("C");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator)> 524 && digitalRead (functionGenerator) <556) {
lcd.clear ();
lcd.setCursor (12, 1);
tone (summer, 250);
lcd.print ("C");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator)> 557 && digitalRead (functionGenerator) <586) {
lcd.clear ();
lcd.setCursor (4, 1);
tone (summer, 250);
lcd.print ("D");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator)> 588 && digitalRead (functionGenerator) <620) {
lcd.clear ();
lcd.setCursor (12, 1);
tone (summer, 250);
lcd.print ("D");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator)> 621 && digitalRead (functionGenerator) <658) {
lcd.clear ();
lcd.setCursor (4, 1);
tone (summer, 250);
lcd.print ("E");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator)> 660 && digitalRead (functionGenerator) <679) {
lcd.clear ();
lcd.setCursor (12, 1);
tone (summer, 250);
lcd.print ("E");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator)> 680 && digitalRead (functionGenerator) <698) {
lcd.clear ();
lcd.setCursor (4, 1);
tone (summer, 250);
lcd.print ("F");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator)> 700 && digitalRead (functionGenerator) <742) {
lcd.clear ();
lcd.setCursor (12, 1);
tone (summer, 250);
lcd.print ("F");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator)> 743 && digitalRead (functionGenerator) <783) {
lcd.clear ();
lcd.setCursor (4, 1);
tone (summer, 250);
lcd.print ("G");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator)> 785 && digitalRead (functionGenerator) <845) {
lcd.clear ();
lcd.setCursor (12, 1);
tone (summer, 250);
lcd.print ("G");
forsinkelse (1000);
} annet hvis (analogRead (functionGenerator)> 846 && digitalRead (functionGenerator) <879) {
lcd.clear ();
lcd.setCursor (4, 1);
tone (summer, 250);
lcd.print ("A");
forsinkelse (1000); }
annet {noTone (summer); } forsinkelse (10); }
Trinn 4: Koble den til strøm
For det siste trinnet er alt du trenger å gjøre å finne en strømkilde og koble den til Arduino, en du har som du kan begynne å bruke tuneren.