Taula de continguts:
2025 Autora: John Day | [email protected]. Última modificació: 2025-01-13 06:57
Aquestes són les instruccions per fabricar un sintonitzador de guitarra amb un Arduino i diversos components més. Amb coneixements bàsics d’electrònica i codificació, podreu fabricar aquest sintonitzador de guitarra.
Primer de tot, primer cal saber quins són els materials.
Materials:
- 1 Arduino (he utilitzat un Arduino 1)
- 1 pantalla LCD (16x2)
- 1 potenciòmetre
- 1 micròfon Electret
- Resistència de 1 250 Ohm
- Diversos cables
-Soldador
- 1 Piezo
Pas 1: passadors de soldadura
El primer que heu de fer és soldar els pins a la pantalla LCD, però heu d’assegurar-vos que es soldin de la manera correcta. A la imatge superior, es mostra quins pins han d’anar connectats on. El pin GND hauria d’anar connectat a un terminal del potenciòmetre com al diagrama de Tinkercad. (NOTA: És molt important que connecteu els pins de la manera que s'indica, en cas contrari el sintonitzador no funcionarà.)
Pas 2: connectar-ho tot
Després de soldar els cables a la pantalla LCD, hi ha diversos cables que cal connectar.
1.) El primer que heu de fer és connectar el GND i el 5V de l'Arduino a la placa de control, cosa que li permet tenir energia. A continuació, connecteu l'electret al pin digital 7 i GND.
2.) A continuació, connecteu el piezo a la taula de suport per a GND i connecteu-lo al pin digital 6.
3.) Després d'això va el potenciòmetre, connecteu el terminal 1 a una tira positiva de la placa de connexió i el terminal 2 a una tira GND de la placa de control, i després connecteu l'eixugaparabrises al pin de contrast de la pantalla LCD.
Pas 3: Codificació
Un cop hàgiu connectat tot correctament, heu de programar el sintonitzador perquè realment faci el seu treball. A continuació es mostra el codi
// inclou el codi de la biblioteca: #include
// inicialitzeu la biblioteca amb els números dels pins de la interfície 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 highA = 880;
int buzzer = 8; int functionGenerator = A1;
configuració nul·la () {
// configureu el nombre de columnes i files de la pantalla LCD:
lcd.begin (16, 2);
// Imprimiu un missatge a la pantalla LCD.
lcd.print ("hola, món!");
Serial.begin (9600);
// esborreu-ho tot a la pantalla LCD i, a continuació, configureu el cursor, la impressió
lcd.setCursor (0, 1); }
bucle buit () {
Serial.println (analogRead (functionGenerator));
retard (50);
// configureu el cursor a la columna 0, línia 1
// (nota: la línia 1 és la segona fila, ja que el recompte comença per 0):
if (analogRead (functionGenerator) == 450) {
lcd.clear ();
lcd.setCursor (8, 1);
to (brunzidor, 250);
lcd.print ("A");
retard (1000);
} else if (analogRead (functionGenerator) == 494) {
lcd.clear ();
lcd.setCursor (8, 1);
to (brunzidor, 250);
lcd.print ("B");
retard (1000);
} else if (analogRead (functionGenerator) == 523) {
lcd.clear ();
lcd.setCursor (8, 1);
to (brunzidor, 250);
lcd.print ("C");
retard (1000);
} else if (analogRead (functionGenerator) == 587) {
lcd.clear ();
lcd.setCursor (8, 1);
to (brunzidor, 250);
lcd.print ("D");
retard (1000);
} else if (analogRead (functionGenerator) == 659) {
lcd.clear ();
lcd.setCursor (8, 1);
to (brunzidor, 250);
lcd.print ("E");
retard (1000);
} else if (analogRead (functionGenerator) == 699) {
lcd.clear ();
lcd.setCursor (8, 1);
to (brunzidor, 250);
lcd.print ("F");
retard (1000);
} else if (analogRead (functionGenerator) == 784) {
lcd.clear ();
lcd.setCursor (8, 1);
to (brunzidor, 250);
lcd.print ("G");
retard (1000);
} else if (analogRead (functionGenerator) == 880) {
lcd.clear ();
lcd.setCursor (8, 1);
to (brunzidor, 250);
lcd.print ("A");
retard (1000);
} else if (analogRead (functionGenerator)> 400 && digitalRead (functionGenerator) <449) {
lcd.clear ();
lcd.setCursor (4, 1);
to (brunzidor, 250);
lcd.print ("A");
retard (1000);
} else if (analogRead (functionGenerator)> 451 && digitalRead (functionGenerator) <470) {
lcd.clear ();
lcd.setCursor (12, 1);
to (brunzidor, 250);
lcd.print ("A");
retard (1000);
} else if (analogRead (functionGenerator)> 471 && digitalRead (functionGenerator) <493) {
lcd.clear ();
lcd.setCursor (4, 1);
to (brunzidor, 250);
lcd.print ("B");
retard (1000);
} else if (analogRead (functionGenerator)> 495 && digitalRead (functionGenerator) <509) {
lcd.clear ();
lcd.setCursor (12, 1);
to (brunzidor, 250);
lcd.print ("B");
retard (1000);
} else if (analogRead (functionGenerator)> 509 && digitalRead (functionGenerator) <522) {
lcd.clear ();
lcd.setCursor (4, 1);
to (brunzidor, 250);
lcd.print ("C");
retard (1000);
} else if (analogRead (functionGenerator)> 524 && digitalRead (functionGenerator) <556) {
lcd.clear ();
lcd.setCursor (12, 1);
to (brunzidor, 250);
lcd.print ("C");
retard (1000);
} else if (analogRead (functionGenerator)> 557 && digitalRead (functionGenerator) <586) {
lcd.clear ();
lcd.setCursor (4, 1);
to (brunzidor, 250);
lcd.print ("D");
retard (1000);
} else if (analogRead (functionGenerator)> 588 && digitalRead (functionGenerator) <620) {
lcd.clear ();
lcd.setCursor (12, 1);
to (brunzidor, 250);
lcd.print ("D");
retard (1000);
} else if (analogRead (functionGenerator)> 621 && digitalRead (functionGenerator) <658) {
lcd.clear ();
lcd.setCursor (4, 1);
to (brunzidor, 250);
lcd.print ("E");
retard (1000);
} else if (analogRead (functionGenerator)> 660 && digitalRead (functionGenerator) <679) {
lcd.clear ();
lcd.setCursor (12, 1);
to (brunzidor, 250);
lcd.print ("E");
retard (1000);
} else if (analogRead (functionGenerator)> 680 && digitalRead (functionGenerator) <698) {
lcd.clear ();
lcd.setCursor (4, 1);
to (brunzidor, 250);
lcd.print ("F");
retard (1000);
} else if (analogRead (functionGenerator)> 700 && digitalRead (functionGenerator) <742) {
lcd.clear ();
lcd.setCursor (12, 1);
to (brunzidor, 250);
lcd.print ("F");
retard (1000);
} else if (analogRead (functionGenerator)> 743 && digitalRead (functionGenerator) <783) {
lcd.clear ();
lcd.setCursor (4, 1);
to (brunzidor, 250);
lcd.print ("G");
retard (1000);
} else if (analogRead (functionGenerator)> 785 && digitalRead (functionGenerator) <845) {
lcd.clear ();
lcd.setCursor (12, 1);
to (brunzidor, 250);
lcd.print ("G");
retard (1000);
} else if (analogRead (functionGenerator)> 846 && digitalRead (functionGenerator) <879) {
lcd.clear ();
lcd.setCursor (4, 1);
to (brunzidor, 250);
lcd.print ("A");
retard (1000); }
else {noTone (timbre); } retard (10); }
Pas 4: connectar-lo a l'alimentació
Per a l'últim pas, només cal trobar una font d'alimentació i connectar-la a l'Arduino, una que teniu per començar a utilitzar el sintonitzador.