Inhaltsverzeichnis:
- Schritt 1: Teile & Werkzeuge
- Schritt 2: 3D-Druck des Gehäuses
- Schritt 3: Alles zusammenfügen + Schaltplan
- Schritt 4: Die Stecker
- Schritt 5: Der Code
- Schritt 6: Notizen
- Schritt 7: Änderungsprotokoll
Video: Arduino Gitarren-Klinkenschlüsselhalter mit Klinkenerkennung & OLED - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Einführung:
Dieses anweisbare wird den Build meines Arduino-basierten Guitar Jack-Plugin-Schlüsselhalters detailliert beschreiben
Dies ist mein erstes anweisbares, also bitte mit mir, da ich auf dem Weg Änderungen / Aktualisierungen vornehmen kann
Schritt 1: Teile & Werkzeuge
Die meisten Teile habe ich bei Amazon.co.uk oder eBay gekauft, einige hatte ich bereits herumgewirbelt - Hier ist eine Liste mit dem, was Sie brauchen.
Amazon-Links sind alle Affiliate-Links, die Sie woanders möglicherweise billiger finden können - ich benutze Amazon Prime viel, also war Amazon zufällig meine Anlaufstelle.
Ich wollte diesen Build ziemlich kostengünstig und budgetfreundlich halten. Sie können einen größeren TFT-Bildschirm verwenden, wenn Sie dies wünschen, sowie einen anderen Arduino. Verwenden Sie kein NANO, da es aufgrund der hohen Speicherauslastung abstürzt. Der Code verwendet etwa 72% des RAM des Pro Micro und ist stabil, aber nach Tests stürzt ein NANO ab und friert ein.
(Weitere Details im Schritt Code.)
TEILE
1x Arduino Pro Micro -
1x 0,96" OLED mit gelbem & blauem Display -
4x WS2812 'Pixel' -
1x DS3231 RTC -
4x 1/4 Mono Jack (Oder so viele Sie wollen) - Amazon (Gold) oder Amazon (Silber) oder eBay.co.uk
1x gemischtes Widerstandspaket -
4x 1/4 Gitarrenbuchsen -
1x Micro-USB-Kabelverlängerungskabel -
4x M3-Schrauben
WERKZEUGE & MATERIALIEN
- Lötkolben (Dies ist der, den ich gekauft habe - ein TS100 - da er mit zusätzlichen Tipps geliefert wurde
- Löten
- Heißklebepistole (https://amzn.to/2UTd9PN)
- Draht (https://amzn.to/2VK2ILU)
- Drahtschneider / Abisolierer (https://amzn.to/2KzqUzp)
- 3D-Drucker oder 3D-Druckservice
OPTIONAL - Diese Artikel sind optional, je nachdem, wie Sie alles anschließen
- Veroboard / Stripboard (https://amzn.to/2KzMFPE)
- Schraubklemmen-Steckverbinder (2-polig | 3-polig | 4-polig)
- PCB-Header (https://amzn.to/2X7RjWf)
Schritt 2: 3D-Druck des Gehäuses
Ich habe meine auf meinem Creality CR-10S mit Black PLA+ gedruckt (https://amzn.to/2X2SDtE)
Gedruckt habe ich mit 0,2 Schichthöhe, mit 25% Füllung.
Schritt 3: Alles zusammenfügen + Schaltplan
Wie Sie Ihr Arduino anschließen, liegt ganz bei Ihnen - ich habe mich persönlich dafür entschieden, mich sozusagen zu einem "Schild" zu machen. Um die Abschirmung herzustellen, habe ich Buchsenleisten an das Veroboard gelötet, um dem Pro Micro zu entsprechen, und dann an gegenüberliegenden Enden eine Schiene von + 5 V und GND hinzugefügt. Ich habe ein Überbrückungskabel verwendet, um die + 5 V mit meiner jetzt 5 V-Schiene zu verbinden, und dasselbe für die GND. Ich habe dann meine 4x 100k-Widerstände hinzugefügt, ein Ende für alle mit +5V verbunden und dann die andere Seite mit A0, A1, A2 und A3 verbunden. Ich habe dann den analogen Pins A0, A1, A2 & A3 sowie den Pins 2 (SDA), 3 (SCL) & 4. Schraubklemmen hinzugefügt
Messen Sie Ihre Verkabelung aus und schneiden Sie sie auf die entsprechenden Längen. Ich habe zuerst mit den WS2812-Pixel-LEDs begonnen - die ERSTE WS2812-LED verbindet sich mit + 5 V vom Arduino, GND vom Arduino und DIN verbindet sich mit Pin 4. Danach werden die restlichen 3 miteinander verkettet und verketten alle 5 V > 5 V, GND > GND-Pins und DOUT von einem Pixel, verbindet sich mit DIN des nächsten. Drücken Sie diese nach dem Löten vorsichtig in die quadratischen Löcher oben und kleben Sie sie mit Heißkleber fest, um die Rückseite vor versehentlichen Verbindungen oder Kurzschlüssen zu schützen.
Nach den LEDs habe ich dann die Gitarrenbuchsen eingeschraubt. Jeweils ein Pin wird mit GND verbunden, und der zweite Pin von jedem wird entsprechend mit A0, A1, A2 und A3 verbunden. Das sind Buchse 1 bis A0, Buchse 2 bis A1, Buchse 3 bis A2 und Buchse 4 bis A3.
Als nächstes lötete ich 4 Drähte an die OLED-Anschlüsse und kürzte überschüssiges Lot so weit wie möglich. Sie möchten Ihre Drähte von der Rückseite des Bildschirms anbringen, also löten Sie an der Vorderseite des Bildschirms.
Achten Sie auf die Stifte! Einige OLEDs haben außen GND, dann VCC, einige haben außen VCC und dann GND
Sobald Sie gelötet haben und Sie die Lötverbindung so weit wie möglich getrimmt oder abgeflacht haben, drücken Sie den Bildschirm vorsichtig in seine Position. Es ist vom Design her ein bisschen eng, aber seien Sie sich bewusst, dass unterschiedliche Drucktoleranzen dies beeinflussen können und Sie möglicherweise einige kleinere Nachbearbeitungen vornehmen müssen, um es passend zu machen. Sobald es an Ort und Stelle ist, legen Sie etwas Heißkleber über jede der 4 Ecken, um es an Ort und Stelle zu halten.
Schließen Sie alles so an, dass es dem Schaltplan und den Bildern entspricht, und wenn Sie zufrieden sind, können Sie auch das Pro Micro und die RTC-Uhr mit Heißkleber anbringen und dann die USB-Verlängerung an das Pro Micro anschließen.
Ich habe eine Micro-USB-Verlängerung verwendet, damit a) der USB zur Stromversorgung verwendet werden kann, aber mehr noch, b) damit es möglich ist, den Pro Micro bei Bedarf neu zu programmieren, ohne alles auseinander zu nehmen
Wenn Sie zufrieden sind, schrauben Sie das Gehäuse mit den 4 Schrauben zusammen
Schritt 4: Die Stecker
Dies funktioniert so, dass ein Teil des Designs in jeder Hinsicht als "Ohmmeter" funktioniert. Ein Ohmmeter ist ein Instrument zur Messung des elektrischen Widerstands. Die meisten Multimeter haben diese Funktion, bei der Sie die Skala auswählen und dann einen Widerstand messen, um seinen Wert zu ermitteln. Das Arbeitsprinzip besteht darin, dass Sie einen BEKANNTEN Widerstand mit +ve verbinden, der dann mit einem UNBEKANNTEN Widerstand verbunden wird, der mit -ve verbunden ist. Die Verbindung zwischen den 2 Widerständen ist mit dem Arduino-Analogpin verbunden, damit die Spannung gelesen und der Widerstand berechnet werden kann.
Es funktioniert wie ein Spannungsteiler und berechnet den Widerstandswert des unbekannten Widerstands.
Als Spannungsteilernetzwerk aus Widerständen R1 und R2, Vout = Vin * R2 / (R1 + R2) - Wir verwenden 100k für unseren bekannten (R1) Widerstand. Dies gibt uns den "Spannungsabfall"
Daraus können wir nun den Widerstandswert des unbekannten (R2) Widerstands berechnen, R2 = Vout * R1 / (Vin – Vout) - wobei R1 unser 100k (100.000 Ohm) Widerstand ist
Durch die Verwendung eines anderen Widerstands in jeder gewünschten Steckerbuchse können Sie dann den Code entsprechend der verwendeten Buchse anpassen.
Ich verwende 4 Klinkenstecker. Ich habe mich für die Verwendung entschieden:
Bekannter Widerstand (x4) - 100k
Klinkenstecker 1 - 5,6 k
Klinkenstecker 2 - 10k
Klinkenstecker 3 - 22k
Klinkenstecker 4 - 39k
Sie können dies natürlich erweitern und so viele Codes einfügen, wie Sie möchten.
Schritt 5: Der Code
Zuerst benötigen Sie die Arduino IDE, die hier erhältlich ist:
Sie müssen auch sicherstellen, dass Sie auch ein paar Arduino-Bibliotheken haben:
Adafruit NeoPixel:
u8g2:
Adafruit RTCLib:
Adafruit SleepyDog (optional):
Ein Hinweis zur Auswahl des richtigen "Arduino"-Boards. Ursprünglich habe ich dieses Projekt mit einem Arduino Nano begonnen, weil sie in Großbritannien mit etwa 3 bis 4 £ oder nur 1,50 £ beim Kauf bei AliExpress super günstig sind (aber die 30-50 Tage Wartezeit haben nichts ausgemacht)). Das Problem mit dem Nano ist, dass sein SRAM 2 KB (2048 Bytes) beträgt. Diese Skizze verwendet 1728 Bytes dynamischen Speichers mit globalen Variablen. Das sind 84 % des SRAM, sodass nur 320 Byte für lokale Variablen frei bleiben. Dies war unzureichend und würde dazu führen, dass der Nano blockiert und einfriert.
Der Pro Micro (Leonardo) hat 2,5K SRAM (2560 Bytes), was bedeutet, dass 694 Bytes für lokale Variablen frei sind (Der Sketch verwendet 72% des SRAMs des Pro Micro). Bisher hat sich dies für meine Verwendung als völlig ausreichend und stabil erwiesen. Wenn Sie viele Klinkenstecker verwenden möchten, sollten Sie möglicherweise etwas mit mehr SRAM verwenden.
Was den Flash-Speicher betrifft, verwendet dieser Sketch 88% (25252 Bytes) von 30k (Der ATMega328p [Nano] und der ATMega32u4 [Pro Micro] haben beide 32k, aber 2k ist für den Bootloader reserviert)
Ich habe im Laufe der Jahre Hunderte von Arduino-Skizzen geschrieben, aber ich bin ein Bastler - denken Sie also daran, dass einige Teile des Codes ineffizient sein können oder es möglicherweise "bessere Möglichkeiten" gibt, dies zu tun. Wie gesagt, bei mir funktioniert es einwandfrei und ich bin zufrieden. Ich habe Bibliotheken verwendet, die auf den meisten Boards funktionieren sollten, sei es AVR (die meisten grundlegenden Arduinos) oder SAMD21 (ich habe eine Handvoll Cortex M0-Geräte).
Ich wollte auch eine andere Grafik basierend auf der verwendeten Buchse anzeigen. Wenn Sie Ihre eigenen erstellen möchten, ist dies eine brillante einfache Anleitung zum Erstellen des C-Arrays für Bilder, die mit diesem Display verwendet werden sollen:
sandhansblog.wordpress.com/2017/04/16/interfacing-displaying-a-custom-graphic-on-an-0-96-i2c-oled/
Stellen Sie sicher, dass Sie PROGMEM für Ihre Grafiken verwenden. Z. B:
static const unsigned char YOUR_IMAGE_NAME PROGMEM = { }
Der Bildschirm wird absichtlich nach 5 Sekunden "timeout" und kehrt zur Anzeige der Zeit zurück.
Die meisten Einstellungen sind in Settings.h zu finden, insbesondere sind hier die Namen der zugehörigen Klinkenstecker codiert:
#define STECKER1 "SCHLÜSSEL"
#define PLUG2 "P2" #define PLUG3 "P3" #define PLUG4 "P4" #define GENERIC "NA"
Es gibt auch einige wichtige Codeteile in Variables.h
Schwimmer R1=96700.0;
Schwimmer R2=96300.0; Schwimmer R3=96500.0; Schwimmer R4=96300.0;
Dies sind die BEKANNTEN Widerstandswerte in Ohm von jedem der 4 Widerstände.
R1 mit A0 verbunden, R2 mit A1, R3 mit A2 und R4 mit A3.
Es ist ratsam, Ihre 100k-Widerstände mit einem Multimeter zu messen und den genauen Wert des Widerstands zu verwenden. Nehmen Sie die Messung des Widerstands vor, wenn alles angeschlossen ist. (Aber nicht eingeschaltet).
Achten Sie bei der Auswahl von Widerständen für Ihre Klinkenstecker darauf, dass zwischen ihnen ein guter Ohm-Abstand vorhanden ist, und geben Sie sich beim Codieren einen schönen Bereich, der niedriger und höher als der von Ihnen gewählte Widerstand ist. Folgendes habe ich in meinem Code verwendet:
Schwimmer P1_MIN=4000.0, P1_MAX=7000.0; // 5,6K
Schwimmer P2_MIN=8000.0, P2_MAX=12000.0; // 10K Float P3_MIN=20000.0, P3_MAX=24000.0; // 22K Schwimmer P4_MIN=36000.0, P4_MAX=42000.0; // 39K
Der Grund dafür ist, den analogen Messwert und die geringfügigen Spannungsschwankungen usw. zu berücksichtigen
Wenn der erkannte Widerstand zwischen 4000 Ohm und 7000 Ohm liegt, gehen wir davon aus, dass Sie einen 5,6-k-Widerstand verwendet haben und der Code dies als Jack Plug 1 sieht. Wenn der gemessene Widerstand zwischen 8000 Ohm und. liegt 12000 Ohm, die Annahme ist, dass es sich um einen 10k-Widerstand handelt und es sich um einen Klinkenstecker 2 usw. handelt.
Wenn Sie etwas debuggen müssen (lassen Sie es in der 'Produktion' nicht unkommentiert, da das serielle Debuggen kostbaren Arbeitsspeicher verbraucht), entkommentieren Sie einfach die gewünschten Zeilen oben in Settings.h
//#define SERIAL_DEBUG
//#define WAIT_FOR_SERIAL
Zum Entkommentieren einfach die // …. Um die Zeile wieder auszukommentieren, fügen Sie das // am Anfang der Zeile erneut hinzu.
SERIAL_DEBUG ermöglicht das serielle Debugging und die Verwendung von Dingen wie (zum Beispiel)
Serial.println (F ("Hallo Welt"));
WAIT_FOR_SERIAL ist ein zusätzlicher Schritt, das heißt, bis Sie den Serial Monitor öffnen, wird der Code nicht fortgesetzt. Dadurch wird sichergestellt, dass Sie keine wichtigen Seriennachrichten verpassen. - LASSEN SIE DIES NIEMALS AKTIVIERT
Wenn Sie WAIT_FOR_SERIAL aktiviert lassen, können Sie Ihren Schlüsselhalter nicht in einer "realen Welt" verwenden, da er auf den seriellen Arduino IDE-Monitor wartet, bevor er in die Hauptschleife des Sketches weitergehen kann. Nachdem Sie das Debugging abgeschlossen haben, stellen Sie sicher, dass Sie diese Zeile wieder auskommentieren und Ihre Skizze für die Produktion/Vervollständigung erneut hochladen.
Bei Verwendung der Option SERIAL_DEBUG enthält mein Code Folgendes:
#ifdef SERIAL_DEBUG
Serial.print (F ("ACTIVE JACK =")); Serial.println (ACTIVE_JACK); int len = sizeof(SOCKET_1234_HAS_PLUGTYPE_X)/sizeof(SOCKET_1234_HAS_PLUGTYPE_X[0]); für (int i=0;i<len;i++) {Serial.print (F("SOCKET_1234_HAS_PLUGTYPE_X[")); Serial.print (i); Serial.print (F("] = ")); Serial.println (SOCKET_1234_HAS_PLUGTYPE_X); } Serial.println(); if (INSERTED[socket]) {Serial.print (F("Steckdose einstecken")); Serial.print (Buchse + 1); Serial.print (F(" hat einen Widerstand von: ")); Serial.println (Widerstand); } #endif
Die letzte Serial.print-Zeile zeigt Ihnen den Widerstand in Ohm der zuletzt eingesteckten Buchse an. Sie können diese Skizze also auch als eine Art Ohmmeter verwenden, um den Widerstand eines Klinkensteckers zu überprüfen.
Schritt 6: Notizen
Ich denke, ich habe alles abgedeckt, aber bitte kommentieren Sie und ich werde mein Bestes tun, um zu lesen und zu antworten, wenn ich kann:)
Entschuldigung für das etwas schlechte Video - ich habe kein Stativ, kein Aufnahme-Setup oder einen richtigen Arbeitsraum, also wurde dies (schlecht) gefilmt, als ich das Telefon in einer Hand hielt und mit der anderen versuchte, es zu demonstrieren.
Danke fürs Lesen.
Empfohlen:
Einen Arduino-Gitarren-Tuner herstellen – wikiHow
So bauen Sie einen Arduino-Gitarren-Tuner: Dies sind die Anweisungen, um einen Gitarren-Tuner aus einem Arduino und mehreren anderen Komponenten zu machen. Mit Grundkenntnissen in Elektronik und Codierung können Sie dieses Gitarrenstimmgerät herstellen. Zuerst müssen Sie wissen, was die Materialien sind. Ma
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Wie man eine Babygewichtsmaschine mit Arduino Nano, HX-711 Wägezelle und OLED 128X64 herstellt -- Kalibrierung des HX-711: 5 Schritte
Wie man eine Babygewichtsmaschine mit Arduino Nano, HX-711-Wägezelle und OLED 128X64 herstellt || Kalibrierung von HX-711: Hallo Instructables, vor wenigen Tagen wurde ich Vater eines süßen Babys?. Als ich im Krankenhaus war, stellte ich fest, dass das Gewicht des Babys so wichtig ist, um das Wachstum des Babys zu überwachen. Also ich habe eine Idee? um eine Babygewichtsmaschine von meinem Selbst zu machen. In diesem Instructable ich
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: 7 Schritte (mit Bildern)
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: Hallo, und willkommen zu meinem ersten instructable! :) In diesem instructables möchte ich eine fantastische Bibliothek für die Schnittstelle der Tastatur mit Arduino teilen - 'Password Library' einschließlich 'Keypad Library'. Diese Bibliothek enthält die besten Funktionen, die wir wi
$3 & 3 Steps Laptopständer (mit Lesebrille & Stiftablage): 5 Schritte
3 $ & 3 Steps Laptopständer (mit Lesebrille & Stiftablage): Dieser $ 3 & Der Laptopständer mit 3 Schritten kann innerhalb von 5 Minuten hergestellt werden. Es ist sehr stark, leicht und kann zusammengeklappt werden, um es überall hin mitzunehmen