Inhaltsverzeichnis:

Osu! Tastatur: 8 Schritte (mit Bildern)
Osu! Tastatur: 8 Schritte (mit Bildern)

Video: Osu! Tastatur: 8 Schritte (mit Bildern)

Video: Osu! Tastatur: 8 Schritte (mit Bildern)
Video: Die besten Nintendo Switch Tipps #shorts 2024, Juni
Anonim
Osu! Klaviatur
Osu! Klaviatur

Ich habe vor kurzem angefangen, ein Rhythmusspiel namens osu zu spielen! und nachdem ich ein Video einer kommerziellen Mini-Tastatur gesehen hatte, dachte ich, es wäre ein lustiges Projekt, selbst eine zu entwerfen. Nicht lange danach entschied ich, dass es eine gute Idee wäre, es als mein erstes Projekt auf instructables zu setzen.

Wenn Sie dieses Projekt genau bis zur letzten Anweisung replizieren möchten, dann seien Sie mein Gast, aber einige der Entscheidungen, die ich getroffen habe, basieren nicht auf dem niedrigsten Preis oder der besten Qualität. Einige Komponenten sind fast rein gewählt, weil ich sie herumliegen hatte. Wenn Sie damit umgehen können, würde ich Sie ermutigen, Ihr Projekt anzupassen.

Hinweis 1: SMD-Komponenten (kleine Elektronik) werden verwendet. Wenn Sie dieses Projekt replizieren, sind Lötkenntnisse erforderlich. Vielleicht wird eine einfach zu lötende Version hinzugefügt, aber diese LEDs werden nicht in einem Trogloch-Paket geliefert

Hinweis 2: Ich habe den Code mehrmals aktualisiert und bin jetzt auf Version 3ish. Ich werde den gesamten Code online lassen, aber ich empfehle Ihnen, die letzte Version zu verwenden. Es hat derzeit keine LED-Funktionalität, aber es sollte das leistungsstärkste sein.

Schritt 1: Materialien und Erklärungen

Materialien und Erklärungen
Materialien und Erklärungen

Je nachdem, wie Sie Ihr Projekt erstellen, benötigen Sie möglicherweise verschiedene Komponenten, aber diese Komponenten sind die, die ich verwendet habe. Wenn Sie Zeit haben und Geld sparen möchten, bestellen Sie das Formular aliexpress und bestellen Sie nicht die Leiterplatte.

1 Arduino Pro Micro + USB-Kabel

3 rote Kailh BOX-Schalter

3 10k Widerstand (0805 SMD)

3 100nF Kondensator (0805 SMD)

4 APA102 RGB-LED (5050 SMD)

3 Tastenkappen

1 Leiterplatte (PCB) in diesem Projekt bereitgestellt

1 in diesem Projekt bereitgestellter 3D-gedruckter Koffer

Warum verwende ich ein Arduino Pro Micro?

Die meisten Arduino-Boards wie das Uno (Atmega328) bieten keine native Unterstützung für die USB-Kommunikation. Ja, Sie können sie sehr einfach über USB programmieren und ich denke, es gibt Problemumgehungen, aber ich halte es gerne einfach, wenn es um die USB-Kommunikation geht, und ich weiß nicht, ob die Problemumgehungen so reaktionsschnell sind. Diese Boards verwenden einen externen Chip, um die USB-Kommunikation zu ermöglichen, während der Arduino Pro Micro (Atmega32U4) ihn eingebaut hat.

Die Schalter

Es gibt viele mechanische Schalter, die Sie verwenden können. Linear, taktil oder klickig von Kailh oder Cherry MX. Wählen Sie, was Ihnen gefällt. Ich habe die Kailh-Switches verwendet, weil sie bei Ailexpress billig waren. Wenn Sie sich für die Verwendung der Platine entscheiden, benötigen Sie Kailh BOX-Schalter. Die Farbe bestimmt das Gefühl.

Die elektronischen Komponenten

In diesem Kapitel gibt es nicht viel zu erklären, aber wenn Sie die Platine nicht verwenden, würde ich zum einfachen Löten nur normale Durchgangslochkomponenten empfehlen. Leider sind die verwendeten LEDs nicht in Troglochpaketen erhältlich. Ich würde auch nicht empfehlen, Drähte auf SMD-Gehäusen zu verwenden, es sei denn, Sie sind sehr sicher in Ihren Lötfähigkeiten. Auch für SMD auf einer Leiterplatte werden "fortgeschrittene" Lötkenntnisse vorausgesetzt.

Das Gehäuse

Ich stelle in diesem Projekt eine Unterkunft zur Verfügung, aber es ist im Moment fehlerhaft. Es sind Modifikationen erforderlich, um Schrauben zu montieren, die Öffnungen für die LEDs sind nicht optimal, das Arduino ist freigelegt und ein Teil muss ausgeschnitten werden, damit der USB passt. In Zukunft kann ein neues Gehäuse hinzukommen. Wenn Sie einen 3D-Drucker haben, drucken Sie ihn aus, aber bitte geben Sie sich nicht die Mühe, diesen fehlerhaften Fall zu drucken, wenn Sie dies nicht tun, und verwenden Sie einfach eine Art Projektbox.

Schritt 2: Der Schaltplan

Der Schaltplan
Der Schaltplan

Der Schaltplan für dieses Projekt ist ziemlich einfach, aber ich möchte die Komponenten für diejenigen erklären, die interessiert sind und diese Implementierung nicht kennen.

Wechseln Sie die Verbindungen zum Arduino

Die Schalter sind mit den Arduino-Pins 0, 2 und 3 verbunden, da diese Pins als externe Interrupts verwendet werden können. Dies wird im Codeabschnitt näher erläutert.

Die Entprellschaltung

Auf der linken Seite des Schaltplans befindet sich eine Schaltung, die dreimal kopiert wird. Diese Schaltung wird verwendet, um den Schalter zu entprellen. Um zu wissen, was Entprellen ist, müssen Sie das Springen von Schaltern verstehen, und es ist nicht schwer zu verstehen.

Schauen Sie sich zuerst diese Simulation an, um ein erstes Bild zu malen (klicken Sie schnell auf den Schalter und sehen Sie sich das Signal unten an)

Wenn Sie einen Schalter drücken oder loslassen, springt er und Ihr Signal wechselt einige Millisekunden lang zwischen High und Low. Ein Arduino ist wirklich schnell und liest jedes Hoch und Tief in dieser kurzen Zeit. Das Programm sendet jedes Mal, wenn ein Hoch oder Tief gelesen wird, einen Tastendruck oder eine Tastenfreigabe, sodass Ihr Computer bei jedem Tastendruck mehrere Tastendrücke empfängt. Nicht ideal für ein Rhythmusspiel.

Diese Entprellschaltung verlangsamt die fallende Flanke des Signals. Das Signal an den Arduino kann sich nicht so schnell ändern, wie das Prellen auftritt, sodass es als ein Druck gelesen wird. Machen Sie sich keine Sorgen, dass es für die nächste echte Presse zu langsam wird, denn das wird es.

Fortschrittlich:

Der Atmaga32U4 liest ein digitales Low bei 0,2Vcc - 0,1V = 0,9 Volt. Die Spannung des Kondensators zu jedem Zeitpunkt seiner Entladung beträgt Vcc * e^(-t/RC). Wenn Sie an Ihrem Schalter eine andere Entprellzeit messen, können Sie Ihre Widerstands- und Kondensatorwerte berechnen.

Formelformular

Die LEDs

Die RGB-LEDs sind APA102-LEDs, die über eine Takt- und Datenleitung einzeln adressierbar sind. Es werden keine externen Komponenten benötigt, damit sie funktionieren. Für viele LEDs sollten Sie einen Kondensator parallel zu 5 Volt und Masse verwenden, aber bei nur 4 LEDs brauchen Sie ihn nicht.

Schritt 3: Das Board-Design

Das Board-Design
Das Board-Design

Die Leiterplatte wurde in JLCPCB entworfen. Ich werde nicht von ihnen gesponsert, aber für billige Prototypen stellen sie ausgezeichnete PCBs her. Für 2 Dollar bekommt man 10 Stück des gleichen Boards, aber der Versand kostete bei mir etwa 11 Dollar. Wenn Sie nicht unbedingt eine RGB-Beleuchtung wünschen und nur eine herstellen möchten, sollten Sie in Betracht ziehen, Ihre Tastatur ohne PCB zu bauen.

Das Design des Boards war ziemlich geradlinig. Ich musste nur eine Komponente für die Schalter hinzufügen, aber nachdem ich einige Videos gesehen hatte, hatte ich den Dreh raus. Der einzige Fehler, den ich festgestellt habe, ist, dass die Löcher etwas zu nahe an den Schaltern liegen.

Um die Platine zu bestellen, gehen Sie zu https://jlcpcb.com/ und wählen Sie die 2-Schicht-Option. Es wird Sie nach einer Gerber-Datei fragen. Laden Sie die ".zip"-Datei herunter und ziehen Sie sie in das Fenster. Sie müssen es nicht entpacken. Die Einstellungen sollten in Ordnung sein und Sie können die Bestellung abschließen.

Schritt 4: Tipps zum Gehäusedesign und zur Montage

Tipps zum Gehäusedesign und zur Montage
Tipps zum Gehäusedesign und zur Montage
Tipps zum Gehäusedesign und zur Montage
Tipps zum Gehäusedesign und zur Montage
Tipps zum Gehäusedesign und zur Montage
Tipps zum Gehäusedesign und zur Montage
Tipps zum Gehäusedesign und zur Montage
Tipps zum Gehäusedesign und zur Montage

Entwurf

Wie bereits erwähnt, ist mein Design fehlerhaft, aber Sie können es trotzdem drucken, wenn Sie möchten. Das Design wurde in Fusion 360 erstellt. Es ist eine kostenlose 3D-Modellierungssoftware und mit meiner Erfahrung von Erfinder und Solidworks war es ziemlich einfach, damit zu arbeiten. Die Kreise an den Ecken des Gehäuses sollen ein Ablösen vom Druckbett verhindern.

Wenn Sie Ihren eigenen Fall machen, ist nur eines wirklich wichtig. Ihre Schalter müssen fest platziert und nicht in der Lage sein, sich zu bewegen. Ich habe Bilder der quadratischen Ausschnitte mit Abmessungen zur Verfügung gestellt, damit Sie sie für Ihr eigenes Design verwenden können, vorausgesetzt, Sie verwenden Kailh BOX-Schalter.

Montage

Jetzt haben Sie alle Komponenten, die Sie zum Zusammenbauen benötigen. Es gibt einen Montageauftrag für diese erste Version, da die Schalter gelötet sind.

1. Löten Sie die SMD-Komponenten. Dies sind die Widerstände, Kondensatoren und LEDs.

2. Löten Sie das Arduino Pro-Mikro.

3. Platzieren Sie die 3 Schalter vor dem Löten in der 3D-gedruckten Abdeckplatte. Die Abdeckplatte kann nach dem Löten der Schalter nicht entfernt werden. Das Entlöten der Schalter wird nicht empfohlen und kann sie zerstören.

4. Löten Sie nun die Schalter fest. Tun Sie dies so schnell wie möglich, da die Kunststoffschalter schmelzen und sie ruinieren oder die Anzahl der Klicks drastisch verringern können.

5. Legen Sie die zusammengebaute Abdeckplatte in das 3D-gedruckte Gehäuse und befestigen Sie sie mit Klebeband oder verwenden Sie Schrauben, wenn sie die Tastenkappen nicht beeinträchtigen.

6. Setzen Sie die keyCaps auf die Schalter und fertig.

Empfehlungen

Entlöten oder maskieren Sie die LEDs auf dem Arduino, nachdem Sie Ihren Code hochgeladen haben. Die LEDs sind schön zu haben, wenn Ihr Code nicht hochgeladen wird, aber sie sind nicht schön als fertiges Produkt anzusehen. Geschick und spitze Pinzette sind erforderlich.

Auch einige Grip-Füße an der Unterseite sind schön für Anti-Rutsch und lassen das RGB-Licht durchscheinen.

Schritt 5: Der Code V1 (Hardware-Entprellung)

Der Code V1 (Hardware-Entprellung)
Der Code V1 (Hardware-Entprellung)
Der Code V1 (Hardware-Entprellung)
Der Code V1 (Hardware-Entprellung)

Der Code für dieses Projekt ist nicht anfängerfreundlich. Wenn Sie also gerade erst mit dem Programmieren in Arduino beginnen, wird dieser Code Sie möglicherweise ein wenig erschrecken. Ich werde jedoch versuchen, so gut wie möglich zu erklären, was los ist. Einige Dinge werden später in diesem Text erklärt. Wenn Sie also Fragen haben, lesen Sie bitte zuerst das Ganze.

Hochladen des Codes

Laden Sie zuerst alle 3 ".ino"-Dateien herunter und legen Sie sie in einen Ordner. Wenn Sie die Arduino IDE nicht haben, laden Sie sie einfach kostenlos von der offiziellen Arduino-Site herunter.

Verbinden Sie Ihr Arduino mit Ihrem PC und öffnen Sie "OSU_Keyboard_code_V1.ino". Wählen Sie im Tools Board "Arduino/Genuino Micro". Wählen Sie auch in Tools den richtigen COM-Port aus. Dies kann sich manchmal ändern. Um den Code auf Ihren Arduino hochzuladen, klicken Sie einfach auf den Pfeil oben links auf dem Bildschirm und warten Sie, bis er Ihnen unten links mitteilt, dass er abgeschlossen ist.

OSU_Keyboard_code_V1

Einschließen und definieren

Zuerst müssen Sie die Tastaturbibliothek einbinden. Dadurch ist es möglich, das Arduino als Tastatur zu verwenden.

Als nächstes definiere ich einige Werte. Define ist wie eine Variable, aber sie können sich nicht ändern, während das Programm läuft. Die ersten 9 sind für das Tastaturzeichen, die Arduino-Pinnummer und die Port-Bits.

Dann die Portbits der LED Daten und Takt.

Auch die Anzahl der LEDs wird definiert und eine Variable für den Winkel des Farbkreises.

Aufstellen

Dieser Teil des Codes wird nur einmal ausgeführt, wenn das Arduino angeschlossen ist.

Zuerst werden die Clock- und Data-Pins der LEDs als Ausgänge und die Switch-Pins als Eingänge gesetzt. Dies ist die erweiterte Version von pinMode(). Wenn Sie interessiert sind, suchen Sie nach "direkte Port-Manipulation".

Keyboard.begin() startet einfach die USB-Verbindung als Tastatur.

Die nächsten 3 Interrupts sind mit den Schalterpins verbunden. Jedes Mal, wenn eine Änderung am Schaltstift erkannt wird, wird ein winziges Programm ausgeführt. Dieses kleine Programm wird weiter gemacht.

Schleife

Dieser Teil wird kontinuierlich wiederholt, während das Arduino mit Strom versorgt wird.

Ich benutze es nur, um die Farbe der LEDs zu ändern und zu aktualisieren.

Unterbrechungen

Hier werden die kleinen Programme gemacht, die nur ausgeführt werden, wenn eine Änderung an den Schalterpins erkannt wird. Sie sind identisch, außer auf welchen Pin sie reagieren.

Zuerst prüft es, ob die Taste gedrückt oder losgelassen wird und sendet den richtigen Tastaturbefehl.

LED (in anderer Reihenfolge erklärt)

Wenn Sie neugierig sind, wie die LEDs angesteuert werden, sollten Sie sich das APA102-Datenblatt ansehen.

OneBit

Dies ist wiederum die direkte Port-Manipulationsversion des digitalen Schreibens.

Zuerst prüft er, ob er eine 0 oder 1 senden soll und zieht den Datenpin jeweils auf Low oder High. Dann schreibt es den Clock-Pin hoch sehr kurz und schreibt ihn wieder niedrig.

EinByte

Dies wiederholt oneBit 8-mal mit einer "for"-Schleife. Es liest das erste Bit in einem Byte und übergibt seinen Wert an die oneBit-Funktion und macht dasselbe für die nächsten 7 Bits.

LedData

Dies wiederholt ein Byte 4-mal, um die für eine LED benötigten Daten bereitzustellen. Das erste Byte beginnt mit 111xxxxx und einem 5 Bit Helligkeitswert an der Stelle des xxxxx. Die Helligkeit kann von 0 bis 31 (2^5 = 32 Stufen) eingestellt werden.

Die nächsten 3 Bytes sind für die blauen, grünen und roten Werte. Ein Byte für jede Farbe.

FarbeWheelThisLed

Diese Funktion ruft ledData auf und gibt ihm die RGB-Farben abhängig von einem Winkel im Farbkreis.

Der 16-Bit-Wert wird in 6 gleich beabstandete Abschnitte von 60 Grad geteilt. Wenn Sie sich die Bilder ansehen, können Sie es besser verstehen.

(Eine 8-Bit-Version wird ebenfalls bereitgestellt, aber auskommentiert, da sie zu flimmernd ist)

StartEndFrame

Der Startrahmen muss jedes Mal verwendet werden, wenn Sie neue Farben an die LEDs senden und die tatsächliche Farbe der LEDs aktualisieren möchten

Ich verwende nur den Startframe, da der Endframe nicht benötigt wird. Der Startrahmen ist 4 Byte 0. Der Endrahmen ist 4 Byte 255 (11111111).

Schritt 6: Der Code V2 (Software-Entprellung mit Timern)

Der Code V2 (Software-Entprellung mit Timern)
Der Code V2 (Software-Entprellung mit Timern)

Nach einer Weile des Spielens bemerkte ich einige Double-Tapping-Probleme mit der Hardware-Entprellung. Dies könnte mit einigen anderen Wertwiderständen oder Kondensatoren behoben werden, aber da die Tasten und der Deckel nicht abnehmbar sind, dachte ich, dass eine Software-Entprellung eine gute Lösung wäre. Die Software-Entprellung sollte funktionieren, unabhängig davon, ob die Hardware-Entprellung implementiert ist oder nicht. In meinem aktuellen Setup konnte ich den Deckel nicht entfernen, also habe ich nur die Widerstände und Kondensatoren an Ort und Stelle gelassen.

Ich werde den Code nicht so ausführlich erklären wie in der vorherigen Version, da er etwas schwieriger zu erklären ist.

Grundsätzlich funktioniert der größte Teil des Codes gleich und der LED-Code bleibt unberührt. Was sich geändert hat, ist, dass die externen Interrupts die Arduino-Funktionen nicht mehr verwenden. Jetzt funktioniert es in reinem C-Code. Und jetzt kommt der Software-Interrupt hinzu. Dazu habe ich die AVR-Timer verwendet, um eine gewisse Zeit zu warten, bis das Prellen aufgehört hat. Da die Timer auf Interrupts basieren, wird die Abklingzeit nicht durch irgendetwas in der Schleife beeinflusst.

Der einzige Nachteil, den ich mir einfallen lassen kann, ist, dass die Arduino-Delay-Funktionen nicht mehr verwendet werden können. Weil Verzögerungsfunktionen Timer 0 verwenden und dieses Programm Timer 0 zum Entprellen verwendet.

Im Bild sehen Sie, wie der Code ungefähr funktioniert. Das mem-Bit zeigt an, ob ein Timer läuft. Nicht dargestellt ist der Fall, dass am Ende des Tastendrucks der Eingang niedrig ist. In diesem Fall würde nur ein Tastendruck gesendet werden, während die Taste bereits losgelassen ist. Das bedeutet, dass die Taste für den Computer gedrückt gehalten wird. Für diese seltene Ausnahme wird eine Prüfung durchgeführt, wenn ein Timer abläuft. Wenn am Ende eines Timers die Taste nicht gedrückt wird, wird ein Tastenfreigabebefehl gesendet.

Schritt 7: Der Code V3 (Software-Entprellung mit vertikalem Zähler) (empfohlen) (keine LED)

Der Code V3 (Software-Entprellung mit vertikalem Zähler) (empfohlen) (keine LED)
Der Code V3 (Software-Entprellung mit vertikalem Zähler) (empfohlen) (keine LED)

Dieser Code hat AUCH eine Version, bei der Sie keine Pull-Down-Widerstände benötigen. Stellen Sie sicher, dass Sie jede Taste mit dem Eingang und GROUND verbinden! Der eingebaute Klimmzug wird verwendet

Ich habe auch einige unregistrierte Pressen im Code V2 erlebt. Ich denke, der Code ist mit seinem Timer- und externen Interrupt einfach zu komplex geworden und ich habe vielleicht einige Ausnahmen übersehen. Aus diesem Grund habe ich mit der Suche im Internet nach Software-Entprellmethoden von Grund auf angefangen.

(ehrlich gesagt, mindestens die Hälfte dieses Projekts ist zu diesem Zeitpunkt zu einer Knopfentprellung geworden)

Nach einigem Suchen bin ich auf diesen Beitrag gestoßen:

www.compuphase.com/electronics/debouncing….

Um ehrlich zu sein, habe ich einige Zeit gebraucht, um vollständig zu verstehen, wie es genau funktioniert. Es beinhaltet einige ziemlich komplexe Bit-Manipulationen, aber ich werde versuchen, es so einfach wie möglich zu machen. Meine Erläuterungen sind jedoch nur eine Ergänzung zum Beitrag, daher sollten Sie zumindest die "vertikalen Zähler", "eine kommentierte Implementierung" und "Latenz reduzieren" lesen.

Meine Erklärung

Das Timing-Diagramm (erstellt in WaveDrom), das ich hinzugefügt habe, sollte diese schwer verständliche Bit-Mathematik zumindest ein wenig verständlicher machen. Beachten Sie, dass das Bild 2 Zählerbits hat, mein Code jedoch 3. Dies bedeutet eine längere Entprellzeit.

Ein Bit pro Wert

Mit der vertikalen Zählerimplementierung ist es möglich, mehrere Tasten gleichzeitig und parallel zu entprellen. Alle Werte sind vom Typ Byte(uint8_t) und bestehen aus 8 Bit. Uns interessiert nicht, welchen Wert eines dieser Bytes enthält, sondern wir interessieren uns eher für die Bits an sich. Jeder zu entprellende Button verwendet nur ein Bit jedes Bytes. Die erste Schaltfläche verwendet nur das erste Bit jedes Bytes, die zweite Schaltfläche verwendet das zweite Bit usw.

Alles zur selben Zeit

Durch die Verwendung von Bit-Mathematik ist es möglich, diese Pin-Entprellungen parallel auszuführen. Und obwohl Bit-Mathematik ziemlich kompliziert ist, ist sie für den Prozessor sehr effizient.

Bei einem 8-Bit-Datentyp ist dies somit für 8 Tasten möglich. Die Verwendung größerer Datentypen ermöglicht mehr Entprellungen auf einmal.

Die Entprellung

Die Entprellungsroutine wird alle 1 Millisekunde mit einem Timer-Interrupt ausgeführt.

Wenn die Taste gedrückt wird, wird der ButtonState, der der entprellte Zustand ist, sofort nach unten gehen, was einen Tastendruck anzeigt. Um ein Loslassen zu erkennen, muss der Knopf lange genug hoch sein, um anzuzeigen, dass er eine bestimmte Zeit lang nicht geprellt wurde. Toggle wird verwendet, um einen Tastenwechsel anzuzeigen. Die Zählerbits werden verwendet für …. zählen, wie lange es keinen Absprung gegeben hat.

Delta gibt einen Unterschied zwischen dem Eingang und dem entprellten Zustand an. Nur wenn es einen Unterschied gibt, zählt der Zähler. der Zähler wird zurückgesetzt, wenn ein Bounce erkannt wird (Delta ist 0).

Schritt 8: Das Ergebnis

Image
Image

Wenn alles gut gelaufen ist, solltest du jetzt eine funktionierende Tastatur haben, um Osu zu spielen! An. Ich persönlich habe keine Latenz bemerkt. Wenn Sie dies tun, lassen Sie es mich bitte wissen. Auch wenn es Fragen gibt, können Sie gerne alles fragen.

Die vorherigen Erwähnungen über eine V2 sind nicht als Versprechen gedacht, also verschieben Sie dieses Projekt nicht, weil Sie auf V2 warten möchten.

Ich hoffe, Sie genießen Ihre Tastatur!

Osu! Name: Thomazz3

Fehlerbehebung

Wenn Sie vermuten, dass Sie Probleme mit Ihrer Tastatur haben, öffnen Sie zunächst einen Texteditor und drücken Sie jede Taste einmal kurz.

Funktioniert ein oder mehrere Schlüssel nicht?

Möglicherweise haben Sie beim Löten einen Schalter intern zerstört. Wenn Sie ein Multimeter haben, stellen Sie es auf Durchgang / Piepen, legen Sie es parallel zum Schalter, während das Arduino nicht angeschlossen ist, und drücken Sie die Taste. Es sollte piepsen.

Stimmen die gerade eingegebenen Zeichen mit den Tasten überein, die Sie in Osu konfiguriert haben! ?

Ändern Sie die Zeichen im Arduino-Code in den ersten 3 #Defines (' ' ist notwendig!).

Oder ändern Sie Ihre Osu! Einstellungen, um die konfigurierten Tasten zu verwenden.

Werden eine oder mehrere Tasten mehrmals wiederholt?

Die Entprellschaltung funktioniert wahrscheinlich nicht für Ihre Schalter oder ist nicht richtig gelötet. Überprüfen Sie Ihre Lötverbindungen. Wenn es immer noch auftritt, versuchen Sie einen Kondensatorwert von 1uF. Dies wird für die PCB-Benutzer sehr schwierig sein.

Wenn Sie Probleme mit Ihren LEDs haben

Flackern die LEDs?

Eine Lötverbindung kann locker sein. Wenn Sie die Platine verwenden, überprüfen Sie, ob das Lötzinn wirklich auf dem Pad auf dem Druck geflossen ist.

Funktioniert keine der LEDs oder funktioniert ab einer bestimmten Anzahl von LEDs nicht mehr?

Prüfen Sie auf Kurzschlüsse zwischen den Anschlüssen der ersten LED (folgen Sie den Spuren) und prüfen Sie, ob an den Ausgängen des Arduino und erneut der ersten LED gut verbundenes Zinn vorhanden ist. Wenn bestätigt, dass es korrekt und immer noch defekt ist, müssen Sie möglicherweise die erste LED ersetzen.

Wenn dies behoben ist, wiederholen Sie dies bei Bedarf für die nächsten LEDs.

Empfohlen: