Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Arduino HID-basierter CNC-Anhänger

Komponenten und Verbrauchsmaterialien

Arduino Leonardo
× 1
Kurzzeitdrucktasten, Beleuchtung und Beschriftungen können hinzugefügt werden!
× 1

Über dieses Projekt

Letzte Artikelaktualisierung:

2018-07-31:CAD-Dateien hinzugefügt

2018-07-24:Schaltplan und Programmierung hinzugefügt

Warum dieses Projekt?

Sie können einen Anhänger für Ihre CNC-Maschine kaufen, aber ich habe meine Holz-CNC-Maschine gebaut, warum also nicht meinen eigenen Anhänger herstellen?

Außerdem würde ein normales Pendant für mein Controllerboard 100 Euro kosten und nur 2 Knöpfe und ein Handrad haben.

Mein Pendant hat 23 Tasten mit bis zu 6 Funktionen pro Taste und ein Handrad.

Ein Kommentar könnte lauten:"Es ist groß und schwer!" In der Praxis hat es sich jedoch unerwartet als sehr praktisch erwiesen, einen Anhänger zu haben, der beim Drehen des Handrads in Position bleibt...

Wie funktioniert das?

Die Schönheit des Arduino mit einem 32u4-Chip (nicht alle Modelle haben diesen Chip) ist die Fähigkeit, eine Tastatur und/oder Maus zu emulieren. Wenn Sie das Leonardo an einen PC anschließen, "sieht" es eine Tastatur. Großartig!

Wenn Sie also den Arduino programmieren, einige Schalter hinzufügen und ihn an einen PC oder Mac anschließen, können Sie (mehrere) Tastenanschläge / Mausbewegungen an den Computer senden, indem Sie eine Taste drücken. Wie bereits erwähnt, 23 Tasten/6 Funktionen pro Taste =viele Optionen..

Es hängt alles von der Verwendung der richtigen Bibliothek für die Arduino-Skizze ab! Nach stundenlangem Suchen habe ich endlich eine tolle Bibliothek gefunden, die ich auf dieser Seite eingebunden habe:Clickbutton.

Mit dieser Bibliothek erhalten Sie diese Möglichkeiten für jeden (momentanen!) Button:

  • Einzelklick
  • Doppelklick
  • Dreifach-Kick
  • Einmal klicken und halten
  • Doppelklicken und halten
  • Dreifach klicken und halten

Außerdem erhalten Sie eine Entprellungsfunktion in der Clickbutton-Bibliothek, was wichtig ist.

Sie können die Timings für jede Taste anpassen, aber die Standardzeiten sind>=250 ms, um einen Klick zu erkennen, und>=1000 ms, um ein Halten einer Taste zu erkennen.

Nur ein Auszug aus meiner Skizze für die 3-Funktions-X-Achsen-Schaltfläche (Taste 13):

if (button[13].clicks !=0)
{
switch (button[13].clicks)
{
case 1:// Einfachklick
// Handrad auf X
Shortcut_HANDWHEEL_X();
break;
Fall 2:// Doppelklick
// Null X
Shortcut_ZERO_X( );
break;
case 3:// Dreifachklick
break;
case -1:// Einfachklick und halten
// USER MACRO 18:X -axis:goto work zero position G0 X0.00000
press_ESC();
goto_MAIN_MENU();
user_MACRO_18();
break;
case -2:/ / Doppelklick und gedrückt halten
break;
case -3:// Dreifachklick und halten
break;
}
}

Das Gehäuse

Ich entschied mich für Mahagoniholz ​​für das Pendelgehäuse. Ich liebe es mit Holz zu arbeiten und die Optik und Haptik ist wunderbar. Auch auf diese Weise konnte ich einen wirklich maßgeschneiderten Koffer herstellen, was mit einem vorgefertigten ABS-Koffer, den Sie für 20-50 Euro kaufen können, nicht immer möglich ist.

Die Zeichnung wurde mit der Software Vectric Cut2D erstellt. Ich bin froh, dass ich in dieses Softwarepaket investiert habe, weil es die CNC-Lernkurve viel weniger steil und mehr Spaß gemacht hat. Es hilft Ihnen auch, doppelseitige Jobs ganz einfach zu entwerfen.

Nach ein wenig Schleifen hat das Holz viele Schichten Klarlack bekommen.

Feedrate in diesem Video:

2400 mm/min (~ 94"/min) von 40 mm/sek. (~ 1,57") mit einem Schnitt von 3 mm (1/8") zu diesem Zeitpunkt

Die Schalter

Die Schalter sind super. Sie sind der momentane Typ, mit Ausnahme des Schalters, mit dem ich die LEDs ein- und ausschalte. Sie können ein Etikett hinter die durchsichtige obere Abdeckung kleben und wenn Sie möchten, können Sie den Schalter mit der eingebauten LED beleuchten.

Ich habe einen 1KΩ Widerstand pro Schalter mit 2mA bei 5Volt verwendet.

Hier ist ein Video mit niederländischem Ton, nur damit Sie den Ton hören können, den die Schalter machen. Meine Kommentare sind nicht wichtig. Ich habe gesagt, dass die Schalter etwas laut sind, aber zumindest weißt du, wann du sie gedrückt hast;)

Ein Nachteil bei der Verwendung dieser Switches besteht darin, dass sie ein ziemlich hohes oder „dickes“ Gehäuse benötigen. Die Holzdicke betrug 21 mm (0,82" oder 53/64") für den oberen UND unteren Teil. Nach der Bearbeitung beträgt die Gesamtstärke des Anhängers 36,5 mm (14,37 oder 14 3/8 Zoll)

Das Anschließen der Schalter ist so einfach ... Ich verwende die Arduino-Pull-up-Widerstände, so dass Sie nur eine Seite aller Schalter mit Masse und die andere Seite mit den Arduino-Eingängen verbinden müssen.

Die Schalterbezeichnungen

Zur Beschriftung der Schalter habe ich einen hochwertigen Poly-Vinyl-Aufkleber für meinen Farblaserdrucker verwendet. (Auch für Tintenstrahldrucker verfügbar). Auf Normalpapier zu drucken war keine Option, da man die Struktur des Papiers im beleuchteten Zustand sehr gut sieht.

Dann habe ich die transparenten Kappen von den Schaltern abgenommen und die Etiketten auf das Plastikstück darunter geklebt.

Die Symbole sind die gleichen, die in der Eding CNC-Software verwendet werden, die beim Kauf der Hardware mitgeliefert wird. Ich habe gerade die JPEG-Symbole aus dem Softwareverzeichnis kopiert und einige in einem Grafikprogramm geändert, um sie an meine Bedürfnisse anzupassen.

Das Handrad

Nun, dies ist ein standardmäßiges 60mm 100PPR 6 Terminal elektronisches CNC-Handrad

Also 100 Impulse pro Umdrehung, in der meisten CNC-Software können Sie diesen Wert bearbeiten.

Die Elektronik

Als HID (Human Interface Device) habe ich einen Arduino Leonardo Mikrocontroller verwendet.

Dieses Mikrocontroller-Board ist abgekündigt, aber ich konnte es in mehreren Online-Shops kaufen. Als Alternative können Sie das Arduino Micro verwenden, das den gleichen 32u4-Chip verwendet.

Auf diese Weise konnte ich Tastatureingaben nachahmen und viele Funktionen der CNC-Bearbeitungssoftware steuern, in meinem Fall Eding CNC.

Der Arduino Leonardo hat 23 Eingangspins, also mehr als genug. Wie gesagt, Sie können pro Taste 6 Funktionen zuweisen.

Der Gesamtstromverbrauch beträgt 150 mA bei eingeschalteten Tasten-LEDs.

Programmierung des Arduino-Mikrocontrollers

Um den Arduino zu programmieren, müssen Sie den Anhänger an das CNC-Netzteil angeschlossen lassen und die neue Skizze mit der Arduino IDE-Software hochladen. (Siehe Hinweis unten) Sie verwenden also natürlich den gleichen USB-Stecker, der zur Emulation der Tastatur verwendet wird.

Wenn Sie einen anderen PC (Laptop) zum Programmieren verwenden möchten, stecken Sie einfach den USB-Stecker in den anderen PC und programmieren Sie den Arduino

Viel Spaß beim Basteln deines eigenen Anhängers!

Code

  • CNC-Anhängercode
CNC-AnhängercodeArduino
/* Diese Skizze dient dazu, einen Leanardo als HID für in diesem Fall einen Eding CNC-Anhänger zu verwenden Das Schöne an der Verwendung eines Leonardo ist, dass Sie so flexibel sind! Ich habe 20 Schlüssel auf meinem Anhänger, aber pro Schlüssel können Sie 6 verschiedene Funktionen verwenden. Viel zu viel, aber ich benutze auf einigen Tasten 3 Funktionen. Sehr bequem und einfach zu bedienen und zu verwalten.*/#include "ClickButton.h"#include "Keyboard.h"long int aux1_delay =0;// Nr. of buttons im arrayconst int buttons =20;// der Button// buttonPin0 ist ein Dummy, weil ich mit '1' statt '0' beginnen möchte const int buttonPin0 =0;// diese werden tatsächlich verwendetconst int buttonPin1 =0;const int buttonPin2 =1;const int buttonPin3 =2;const int buttonPin4 =3;const int buttonPin5 =4;const int buttonPin6 =5;const int buttonPin7 =6;const int buttonPin8 =7;const int buttonPin9 =8;const int buttonPin10 =9;const int buttonPin11 =10;const int buttonPin12 =11;const int buttonPin13 =12;const int buttonPin14 =13;const int buttonPin15 =A0;const int buttonPin16 =A1;const int buttonPin17 =A2;const int buttonPin18 =A3;const int buttonPin19 =A4;const int buttonPin20 =A5;// ClickButton-Objekte in einem Array instanziierenClickButton button[21] ={ // Dummy-ClickButton (buttonPin0, LOW, CLICKBTN_PULLUP), // verwendet Instanzen von Clickbutton ClickButton (buttonPin1 , LOW, CLICKBTN_PULLUP), ClickButton (buttonPin2, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin3, LOW, CLICKBTN_ PULLUP), ClickButton (buttonPin4, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin5, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin6, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin7, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin8, LOW, CLICKUP), ClickButton (buttonPin8, LOW, CLICKUP) buttonPin9, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin10, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin11, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin12, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin13, LOW, CLICKBTN_PULLUP), Click,Button LOW, CLICKBTN_PULLUP), ), ClickButton (buttonPin15, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin16, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin17, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin18, LOW, CLICKBTN_PULLUP), ClickButton (ButtonPin19, LOW, CLICKin20), , LOW, CLICKBTN_PULLUP),};void setup () {// Setup-Button-Timer (alle in Millisekunden / ms) für (int i =1; i <=Tasten; i++) { button[i].debounceTime =20; // Entprell-Timer in ms button[i].multiclickTime =250; // Zeitlimit für Mehrfachklicks button[i].longClickTime =1000; // Zeit bis lange Klicks registrieren }}void loop(){ // Status aller Schaltflächen im Array aktualisieren // HINWEIS:nicht bei '0' sondern '1' für (int i =1; i <=buttons .) gestartet; i++) { // Status aller Tasten aktualisieren button[i].Update(); } // Tastendrücke ausführen if (button[1].clicks !=0) { switch (button[1].clicks) { Fall 1:// Einfachklick // RESET-Taste drücken (F1) press_RESET(); brechen; Fall 2:// Doppelklick press_ESC(); brechen; Fall 3:// Dreifache Klickpause; case -1:// Einfach klicken und halten // TREIBER AUSSCHALTEN press_ESC(); // Handradmodus verlassen goto_MACHINE_IO_MENU(); press_F2(); goto_MAIN_MENU(); brechen; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[2].clicks !=0) { switch (button[2].clicks) { Fall 1:// Einfachklick // Gehe zum MAIN menu press_ESC(); // Handradmodus verlassen goto_MAIN_MENU(); brechen; Fall 2:// Doppelklick Pause; Fall 3:// Dreifache Klickpause; case -1:// Einmaliges Klicken und Halten break; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[3].clicks !=0) { switch (button[3].clicks) { case 1:// Einzelklickpause; Fall 2:// Doppelklick Pause; Fall 3:// Dreifache Klickpause; case -1:// Einfach klicken und halten // HOME alle Achsen press_ESC(); // Handradmodus verlassen goto_MAIN_MENU(); Shortcut_HOME_ALL(); brechen; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[4].clicks !=0) { switch (button[4].clicks) { Fall 1:// Einzelklick // TOGGLE MDI Shortcut_TOGGLE_MDI(); brechen; Fall 2:// Doppelklick Pause; Fall 3:// Dreifache Klickpause; case -1:// Einmaliges Klicken und Halten break; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[5].clicks !=0) { switch (button[5].clicks) { case 1:// Einzelklick // USER MACRO 1:SET Z HEIGHT press_ESC(); // Handradmodus verlassen goto_AUTO_MENU(); user_MACRO_1(); // Z-HÖHE EINSTELLEN break; Fall 2:// Doppelklick Pause; Fall 3:// Dreifache Klickpause; case -1:// Einmaliges Klicken und Halten break; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[6].clicks !=0) { switch (button[6].clicks) { Fall 1:// Einzelklick // gehe zum AUTO-Menü press_ESC(); // Handradmodus verlassen goto_AUTO_MENU(); brechen; Fall 2:// Doppelklick Pause; Fall 3:// Dreifache Klickpause; case -1:// Einmaliges Klicken und Halten break; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[7].clicks !=0) { switch (button[7].clicks) { Fall 1:// Einfachklick // GRAFIKBILDSCHIRM NEU ZEICHNEN press_ESC(); // Handradmodus verlassen goto_AUTO_MENU(); press_F3(); // Pause neu zeichnen; Fall 2:// Doppelklick Pause; Fall 3:// Dreifache Klickpause; case -1:// Einmaliges Klicken und Halten break; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[8].clicks !=0) { switch (button[8].clicks) { Fall 1:// Einfachklick // LOAD FILE press_ESC(); // Handradmodus verlassen goto_AUTO_MENU(); press_F2(); // eine Dateiunterbrechung laden; Fall 2:// Doppelklick Pause; Fall 3:// Dreifache Klickpause; case -1:// Einmaliges Klicken und Halten break; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[9].clicks !=0) { switch (button[9].clicks) { Fall 1:// Einzelklick // AUX1 TOGGLE (Staubsauger) // Verhindern Sie das Umschalten zu früh, also erst nach / / eine Verzögerung von 1000ms if (millis() - aux1_delay> 1000) {// AUX1 ein- oder ausschalten Shortcut_TOGGLE_AUX1(); // Verzögerungszeitgeber starten aux1 aux1_delay =millis (); } brechen; Fall 2:// Doppelklick Pause; Fall 3:// Dreifache Klickpause; case -1:// Einmaliges Klicken und Halten break; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[10].clicks !=0) { switch (button[10].clicks) { Fall 1:// Einzelklick // MIST TOGGLE (light) keyboard_TOGGLE_MIST(); brechen; Fall 2:// Doppelklick Pause; Fall 3:// Dreifache Klickpause; case -1:// Einmaliges Klicken und Halten break; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[11].clicks !=0) { switch (button[11].clicks) { Fall 1:// Einzelklick // Gehe zu P1 (g28) - BENUTZERMENÜ OPTIE 16 press_ESC(); user_MACRO_16(); brechen; Fall 2:// Doppelklick Pause; Fall 3:// Dreifache Klickpause; case -1:// Einmaliges Klicken und Halten break; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[12].clicks !=0) { switch (button[12].clicks) { Fall 1:// Einzelklick // Gehe zu P2 (g30) - BENUTZERMENÜ OPTIE 17 press_ESC(); user_MACRO_17(); brechen; Fall 2:// Doppelklick Pause; Fall 3:// Dreifache Klickpause; case -1:// Einmaliges Klicken und Halten break; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[13].clicks !=0) { switch (button[13].clicks) { Fall 1:// Einfachklick // Handrad auf X Shortcut_HANDWHEEL_X(); brechen; Fall 2:// Doppelklick // Null X Shortcut_ZERO_X(); brechen; Fall 3:// Dreifache Klickpause; case -1:// Einfach klicken und halten // BENUTZERMAKRO 18:X-Achse:Goto Work Zero Position G0 X0.0000 press_ESC(); goto_MAIN_MENU(); user_MACRO_18(); brechen; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[14].clicks !=0) { switch (button[14].clicks) { Fall 1:// Einfachklick // Handrad auf Y Shortcut_HANDWHEEL_Y(); brechen; Fall 2:// Doppelklick // Null Y Shortcut_ZERO_Y(); brechen; Fall 3:// Dreifache Klickpause; case -1:// Einfach klicken und halten // BENUTZERMAKRO 19:Y-Achse:Goto Work Zero Position G0 Y0.0000 press_ESC(); goto_MAIN_MENU(); user_MACRO_19(); brechen; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[15].clicks !=0) { switch (button[15].clicks) { Fall 1:// Einfachklick // Handrad auf Z Shortcut_HANDWHEEL_Z(); brechen; Fall 2:// Doppelklick // Null Z Shortcut_ZERO_Z(); brechen; Fall 3:// Dreifache Klickpause; case -1:// Einfach klicken und halten // USER MACRO 20:Z-Achse-Goto MASCHINE aufwärts Position G53 G0 Z29.0000 press_ESC(); goto_MAIN_MENU(); user_MACRO_20(); brechen; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } // Eine Achse if (button[16].clicks !=0) { switch (button[16].clicks) { case 1:// Einzelklickpause; Fall 2:// Doppelklick Pause; Fall 3:// Dreifache Klickpause; case -1:// Einmaliges Klicken und Halten break; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[17].clicks !=0) { switch (button[17].clicks) { Fall 1:// Einfachklick // Handradgeschwindigkeit 1x shortcut_HANDWHEEL_X1(); brechen; Fall 2:// Doppelklick Pause; Fall 3:// Dreifache Klickpause; case -1:// Einmaliges Klicken und Halten break; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[18].clicks !=0) { switch (button[18].clicks) { Fall 1:// Einfachklick // Handradgeschwindigkeit 10x shortcut_HANDWHEEL_X10(); brechen; Fall 2:// Doppelklick Pause; Fall 3:// Dreifache Klickpause; case -1:// Einmaliges Klicken und Halten break; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[19].clicks !=0) { switch (button[19].clicks) { Fall 1:// Einzelklick // Handradgeschwindigkeit 100x shortcut_HANDWHEEL_X100(); brechen; Fall 2:// Doppelklick Pause; Fall 3:// Dreifache Klickpause; case -1:// Einmaliges Klicken und Halten break; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } } if (button[20].clicks !=0) { switch (button[20].clicks) { Fall 1:// Einzelklick-Verknüpfung_TOGGLE_MACHINE_COORDINATES(); brechen; Fall 2:// Doppelklick Pause; Fall 3:// Dreifache Klickpause; case -1:// Einmaliges Klicken und Halten break; case -2:// Doppelklicken und halten break; case -3:// Triple Click and Hold break; } }}/* Hinweise zur Aduino-Website zur Verwendung eines Leonardo als HID:Die Tastaturfunktionen ermöglichen es einem Leonardo, Micro oder Due, Tastenanschläge an einen angeschlossenen Computer zu senden. Hinweis:Nicht alle möglichen ASCII-Zeichen, insbesondere die nicht druckbaren, können mit der Tastaturbibliothek gesendet werden. Die Bibliothek unterstützt die Verwendung von Modifikatortasten. Modifikatortasten ändern das Verhalten einer anderen Taste, wenn sie gleichzeitig gedrückt werden. Weitere Informationen zu unterstützten Schlüsseln und deren Verwendung finden Sie hier. Keyboard.begin() Keyboard.end() Keyboard.press() Keyboard.print() Keyboard.println() Keyboard.release() Keyboard.releaseAll() Keyboard.write() Referenzsprache | Bibliotheken | Vergleich | Änderungen der Tastaturmodifikatoren Die Befehle Keyboard.write() und Keyboard.press() und Keyboard.release() funktionieren nicht mit jedem möglichen ASCII-Zeichen, sondern nur mit denen, die einer Taste auf der Tastatur entsprechen. Die Rücktaste funktioniert beispielsweise, aber viele der anderen nicht druckbaren Zeichen führen zu unvorhersehbaren Ergebnissen. Bei Großbuchstaben (und anderen Tasten) wird die Umschalttaste plus das Zeichen gesendet (d. h. das Äquivalent zum Drücken dieser beiden Tasten auf der Tastatur). Eine Modifikatortaste ist eine spezielle Taste auf einer Computertastatur, die die normale Aktion einer anderen Taste ändert, wenn die beiden gleichzeitig gedrückt werden. Weitere Informationen zu ASCII-Werten und den Zeichen oder Funktionen, die sie darstellen, finden Sie unter asciitable.com Verwenden Sie für mehrere Tastendrücke Keyboard.press() Die Leonardo-Definitionen für Zusatztasten sind unten aufgeführt:Schlüssel Hexadezimalwert Dezimalwert KEY_LEFT_CTRL 0x80 128 KEY_LEFT_SHIFT 0x81 129 KEY_LEFT_ALT 0x82 130 KEY_LEFT_GUI 0x83 131 KEY_RIGHT_CTRL 0x84 132 KEY_RIGHT_SHIFT 0x85 133 KEY_RIGHT_ALT 0x86 134 KEY_RIGHT_GUI 0x87 135 KEY_UP_ARROW 0xDA 218 KEY_DOWN_ARROW 0xD9 217 KEY_LEFT_ARROW 0xD8 216 KEY_RIGHT_ARROW 0xD7 215 KEY_BACKSPACE 0xB2 178 KEY_TAB 0xB3 179 KEY_RETURN 0xB0 176 KEY_ESC 0xB1 177 KEY_INSERT 0xD1 209 KEY_DELETE 0xD4 212 KEY_PAGE_UP 0xD3 211 KEY_PAGE_DOWN 0xD6 214 KEY_HOME 0xd2 210 KEY_END 0xD5 213 KEY_CAPS_LOCK 0xC1 193 KEY_F1 0xC2 194 KEY_F2 0xC3 195 KEY_F3 0xC4 196 KEY_F4 0xC5 197 KEY_F5 0xC6 198 KEY_F6 0xC7 199 KEY_F7 0xC8 200 KEY_F8 0xC9 201 KEY_F9 0xCA 202 KEY_F10 0xCB 203 KEY_F11 0xCC 204 KEY_F12 0xCD 205 * / void press_RESET () { Keyboard.begin (); Tastatur.drücken (KEY_F1); Verzögerung (100); Keyboard.releaseAll();}void press_ESC(){ Keyboard.begin(); Tastatur.drücken (KEY_ESC); Verzögerung (100); Keyboard.releaseAll();}void press_F2(){ Keyboard.begin(); Tastatur.press(KEY_F2); Verzögerung (100); Keyboard.releaseAll();}void press_F3(){ Keyboard.begin(); Tastatur.drücken (KEY_F3); Verzögerung (100); Keyboard.releaseAll();}void press_F4(){ Keyboard.begin(); Tastatur.drücken (KEY_F4); Verzögerung (100); Keyboard.releaseAll();}void press_F5(){ Keyboard.begin(); Tastatur.drücken (KEY_F5); Verzögerung (100); Keyboard.releaseAll();}void press_F6(){ Keyboard.begin(); Tastatur.drücken (KEY_F6); Verzögerung (100); Keyboard.releaseAll();}void press_F7(){ Keyboard.begin(); Tastatur.press(KEY_F7); Verzögerung (100); Keyboard.releaseAll();}void press_F8(){ Keyboard.begin(); Tastatur.drücken (KEY_F8); Verzögerung (100); Keyboard.releaseAll();}void press_F9(){ Keyboard.begin(); Tastatur.drücken (KEY_F9); Verzögerung (100); Keyboard.releaseAll();}void press_F10(){ Keyboard.begin(); Tastatur.press(KEY_F10); Verzögerung (100); Keyboard.releaseAll();}void press_F11(){ Keyboard.begin(); Tastatur.drücken (KEY_F11); Verzögerung (100); Keyboard.releaseAll();}void press_F12(){ Keyboard.begin(); Tastatur.drücken (KEY_F12); Verzögerung (100); Keyboard.releaseAll();}void goto_MAIN_MENU(){ Keyboard.begin(); Tastatur.press(KEY_LEFT_ALT); Tastatur.drücken (KEY_F1); Verzögerung (100); Keyboard.releaseAll();}void goto_HOME_MENU(){ Keyboard.begin(); Tastatur.press(KEY_LEFT_ALT); Tastatur.press(KEY_F2); Verzögerung (100); Keyboard.releaseAll();}void goto_ZERO_MENU(){ Keyboard.begin(); Tastatur.press(KEY_LEFT_ALT); Tastatur.drücken (KEY_F3); Verzögerung (100); Keyboard.releaseAll();}void goto_AUTO_MENU(){ Keyboard.begin(); Tastatur.press(KEY_LEFT_ALT); Tastatur.drücken (KEY_F4); Verzögerung (100); Keyboard.releaseAll();}void goto_MACHINE_IO_MENU(){ Keyboard.begin(); Tastatur.press(KEY_LEFT_ALT); Tastatur.press(KEY_F7); Verzögerung (100); Keyboard.releaseAll();}void goto_GRAPHICS_MENU(){ Keyboard.begin(); Tastatur.press(KEY_LEFT_ALT); Tastatur.drücken (KEY_F8); Verzögerung (100); Keyboard.releaseAll();}void goto_JOG_MENU(){ Keyboard.begin(); Tastatur.press(KEY_LEFT_ALT); Tastatur.drücken (KEY_F9); Verzögerung (100); Keyboard.releaseAll();}void goto_JOG_PAD(){ Keyboard.begin(); Tastatur.press(KEY_LEFT_ALT); Tastatur.press(KEY_F10); Verzögerung (100); Keyboard.releaseAll();}void goto_USER1_MENU(){ Keyboard.begin(); Tastatur.press(KEY_LEFT_ALT); Tastatur.drücken (KEY_F11); Verzögerung (100); Keyboard.releaseAll();}void goto_USER2_MENU(){ Keyboard.begin(); Tastatur.press(KEY_LEFT_ALT); Tastatur.drücken (KEY_F12); Verzögerung (100); Keyboard.releaseAll();}void Shortcut_HOME_ALL(){ Keyboard.begin(); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('h'); Verzögerung (100); Keyboard.releaseAll();}void Shortcut_ZERO_X(){ Keyboard.begin(); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('1'); Verzögerung (100); Keyboard.releaseAll();}void Shortcut_ZERO_Y(){ Keyboard.begin(); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('2'); Verzögerung (100); Keyboard.releaseAll();}void Shortcut_ZERO_Z(){ Keyboard.begin(); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('3'); Verzögerung (100); Keyboard.releaseAll();}void Shortcut_HANDWHEEL_X(){ Keyboard.begin(); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press(KEY_LEFT_SHIFT); Keyboard.press('x'); Verzögerung (100); Keyboard.releaseAll();}void Shortcut_HANDWHEEL_Y(){ Keyboard.begin(); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press(KEY_LEFT_SHIFT); Keyboard.press('y'); Verzögerung (100); Keyboard.releaseAll();}void Shortcut_HANDWHEEL_Z(){ Keyboard.begin(); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press(KEY_LEFT_SHIFT); Keyboard.press('z'); Verzögerung (100); Keyboard.releaseAll();}void Shortcut_HANDWHEEL_X1(){ Keyboard.begin(); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('n'); Verzögerung (100); Keyboard.releaseAll();}void Shortcut_HANDWHEEL_X10(){ Keyboard.begin(); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('o'); Verzögerung (100); Keyboard.releaseAll();}void Shortcut_HANDWHEEL_X100(){ Keyboard.begin(); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('p'); Verzögerung (100); Keyboard.releaseAll();}void Shortcut_TOGGLE_MDI(){ Keyboard.begin(); Keyboard.press(KEY_LEFT_CTRL); Tastatur.drücken (KEY_F6); Verzögerung (100); Keyboard.releaseAll();}void Shortcut_TOGGLE_MACHINE_COORDINATES(){ Keyboard.begin(); // MASCHINE/ARBEITSKOORDINATEN UMSCHALTEN Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('w'); Verzögerung (100); Keyboard.releaseAll();}void Shortcut_TOGGLE_AUX1(){ Keyboard.begin(); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('m'); Verzögerung (100); Keyboard.releaseAll();}void Shortcut_TOGGLE_MIST(){ Keyboard.begin(); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('l'); Verzögerung (100); Keyboard.releaseAll();}void Shortcut_TOGGLE_FLOOD(){ Keyboard.begin(); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('k'); Verzögerung (100); Keyboard.releaseAll();}void user_MACRO_1(){ Keyboard.begin(); Tastatur.press(KEY_LEFT_ALT); Keyboard.press('1'); Verzögerung (100); Keyboard.releaseAll();}void user_MACRO_2(){ Keyboard.begin(); Tastatur.press(KEY_LEFT_ALT); Keyboard.press('2'); Verzögerung (100); Keyboard.releaseAll();}void user_MACRO_3(){ Keyboard.begin(); Tastatur.press(KEY_LEFT_ALT); Keyboard.press('3'); Verzögerung (100); Keyboard.releaseAll();}void user_MACRO_4(){ Keyboard.begin(); Tastatur.press(KEY_LEFT_ALT); Keyboard.press('4'); Verzögerung (100); Keyboard.releaseAll();}void user_MACRO_5(){ Keyboard.begin(); Tastatur.press(KEY_LEFT_ALT); Keyboard.press('5'); Verzögerung (100); Keyboard.releaseAll();...Diese Datei wurde gekürzt, bitte laden Sie sie herunter, um den vollen Inhalt zu sehen.

Kundenspezifische Teile und Gehäuse

Dies ist die wichtigste Bibliothek, die Sie benötigen, um die meisten Funktionen pro Schaltfläche zu erhalten clickbutton_hq5qeT4toX.zip cnc_pendant_SenmxC8UCj.zip

Schaltpläne

Ein nicht so guter Schaltplan, aber es wird den Job machen ...

Herstellungsprozess

  1. Schaltfläche
  2. Dimmen von Lichtern mit PWM über Drucktasten
  3. Arduino Spybot
  4. FlickMote
  5. Selbstgemachter Fernseher B-Gone
  6. Hauptuhr
  7. Finde mich
  8. So erstellen Sie eine anpassbare stanzbare Tastaturtaste
  9. Drahtloser Anhänger verbindet sich mit CNC-Systemen
  10. Was ist die RESET-Taste auf dem CNC-Bedienfeld