Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino HID-gebaseerde CNC-hanger

Componenten en benodigdheden

Arduino Leonardo
× 1
Momentele drukknoppen, verlicht en labels kunnen worden toegevoegd!
× 1

Over dit project

Laatste artikelupdate:

2018-07-31:de CAD-bestanden toegevoegd

2018-07-24:de schema- en programmeersectie toegevoegd

Waarom dit project?

U kunt een hanger voor uw CNC-machine kopen, maar ik heb mijn houten CNC-machine gebouwd, dus waarom zou u niet mijn eigen hanger maken?

Daarnaast zou een gewone hanger voor mijn controller board 100 euro kosten en maar 2 knoppen en een handwiel hebben.

Mijn hanger heeft 23 knoppen met maximaal 6 functies per knop en een handwiel.

Een opmerking zou kunnen zijn:"hij is groot en zwaar!" Maar in de praktijk bleek het onverwacht erg handig om een ​​hanger te hebben die blijft zitten als je aan het handwiel draait...

Hoe werkt dit?

De schoonheid van de Arduino met een 32u4-chip (niet alle modellen hebben deze chip) is de mogelijkheid om een ​​toetsenbord en/of muis te emuleren. Wanneer je de Leonardo op een pc aansluit, 'ziet' hij een toetsenbord. Geweldig!

Dus als je de Arduino programmeert, er wat schakelaars aan toevoegt en hem aansluit op een pc of Mac, kun je met een druk op de knop (meerdere) toetsaanslagen/muisbewegingen naar de computer sturen. Zoals ik al zei, 23 knoppen/6 functies per knop =veel opties..

Het hangt allemaal af van het gebruik van de juiste bibliotheek voor de Arduino-schets! Na uren zoeken vond ik eindelijk een geweldige bibliotheek die ik op deze pagina heb opgenomen:Clickbutton.

Met deze bibliotheek krijg je deze mogelijkheden voor elke (kortstondige!) knop:

  • Eén klik
  • Dubbelklik
  • Drievoudige klap
  • Eén keer klikken en vasthouden
  • Dubbelklik en houd vast
  • Drie keer klikken en vasthouden

U krijgt ook debounce-functionaliteit in de Clickbutton-bibliotheek, wat belangrijk is.

u kunt de timing voor elke knop aanpassen, maar de standaard timing is>=250 ms om een ​​klik te herkennen en>=1000 ms om een ​​ingedrukte knop te herkennen.

Gewoon een fragment uit mijn schets voor de X-as-knop met 3 functies (toets 13):

if (button[13].clicks !=0)
{
switch (button[13].clicks)
{
geval 1:// Enkele klik
// Handwiel op X
shortcut_HANDWHEEL_X();
pauze;
geval 2:// Dubbelklik
// Zero X
shortcut_ZERO_X( );
pauze;
geval 3:// Driemaal klikken
pauze;
geval -1:// Eén keer klikken en vasthouden
// GEBRUIKER MACRO 18:X -axis:ga naar werk nulpositie G0 X0.0000
press_ESC();
goto_MAIN_MENU();
user_MACRO_18();
break;
case -2:/ / Double Click and Hold
break;
case -3:// Triple Click and Hold
break;
}
}

De behuizing

Ik koos ervoor om mahoniehout te gebruiken voor de hangende behuizing. Ik werk graag met hout en de look en feel is prachtig. Op deze manier kon ik ook echt een koffer op maat maken, wat niet altijd mogelijk is met een kant-en-klare koffer van het ABS-type die je voor 20-50 euro kunt kopen.

De tekening is gemaakt met de Vectric Cut2D software. Ik ben blij dat ik in dit softwarepakket heb geïnvesteerd omdat het de CNC-leercurve een stuk minder steil en leuker maakte. Het helpt je ook om heel gemakkelijk dubbelzijdige jobs te ontwerpen.

Na een beetje schuren kreeg het hout vele lagen blanke lak.

Feedrate in deze video:

2400 mm/min (~ 94"/min) van 40 mm/sec. (~ 1,57") met een snede van 3 mm (1/8") op dat moment

De schakelaars

De schakelaars zijn geweldig. Ze zijn van het tijdelijke type, behalve de schakelaar die ik gebruik om de LED's in of uit te schakelen. Je kunt een label achter de doorzichtige bovenklep plaatsen en als je wilt, kun je de schakelaar verlichten met de ingebouwde LED.

Ik gebruikte een weerstand van 1KΩ per schakelaar, met 2mA bij 5Volt.

Hier is een video met nederlandse audio, alleen om je het geluid te laten horen dat de schakelaars maken. Mijn opmerkingen zijn niet belangrijk. Ik zei wel dat de schakelaars een beetje luid zijn, maar je weet tenminste wanneer je erop drukt;)

Een nadeel van het gebruik van deze switches is dat ze een vrij hoge of 'dikke' behuizing nodig hebben. De houtdikte was 21 mm (0,82" of 53/64") voor het bovenste EN onderste deel. na bewerking is de totale dikte van de hanger 36,5 mm (14,37 of 14 3/8 inch)

Het aansluiten van de schakelaars is zo eenvoudig... Ik gebruik de Arduino ingebouwde pull-up weerstanden, dus alles wat je hoeft te doen is de ene kant van alle schakelaars op aarde en de andere kant op de Arduino-ingangen aan te sluiten.

De schakellabels

Voor het labelen van de schakelaars heb ik een hoogwaardige Poly-Vinyl sticker gebruikt voor mijn kleurenlaserprinter. (Ook beschikbaar voor inkjetprinters). Afdrukken op gewoon papier was geen optie omdat je de structuur van het papier heel goed ziet als het verlicht is.

Daarna heb ik de transparante doppen van de schakelaars gehaald en de labels op het stuk plastic eronder geplakt.

De pictogrammen zijn dezelfde als die worden gebruikt in de Eding CNC-software die bij de hardware wordt geleverd wanneer u deze koopt. Ik heb zojuist de JPEG-pictogrammen gekopieerd uit de softwaredirectory en ik heb er enkele in een grafisch programma gewijzigd om ze aan te passen aan mijn behoefte.

Het handwiel

Welnu, dit is een standaard 60 mm 100PPR 6 Terminal Eletronic CNC-handwiel

Dus 100 pulsen per rotatie, in de meeste CNC-software kun je deze waarde bewerken.

De elektronica

Als HID (Human Interface Device) heb ik een Arduino Leonardo-microcontroller gebruikt.

Dit microcontrollerbord is niet meer leverbaar, maar ik kon het bij verschillende online winkels kopen. Als alternatief kunt u de Arduino Micro gebruiken die dezelfde 32u4-chip gebruikt.

Op deze manier kon ik toetsenbordaanslagen nabootsen en veel functies van de CNC-bewerkingssoftware bedienen, in mijn geval Eding CNC.

De Arduino Leonardo heeft 23 ingangspinnen dus meer dan genoeg. Zoals gezegd kun je per knop 6 functies toewijzen.

Het totale stroomverbruik is 150 mA met de belangrijkste LED's aan.

De Arduino-microcontroller programmeren

Om de Arduino te programmeren, moet je de hanger aangesloten laten op de CNC-voeding en de nieuwe schets uploaden met behulp van de Arduino IDE-software. (Zie de opmerking hieronder) U gebruikt dus natuurlijk dezelfde USB-stekker die wordt gebruikt voor het emuleren van het toetsenbord.

Als u een andere pc (laptop) wilt gebruiken om te programmeren, steekt u gewoon de USB-stekker in de andere pc en programmeert u de Arduino, waarbij u de hanger opnieuw aangesloten laat en gevoed door de CNC-voeding

Veel plezier met het maken van je eigen hanger!

Code

  • CNC-hangercode
CNC-hangercodeArduino
/* Deze schets is om een ​​Leanardo als HID te gebruiken voor in dit geval een Eding CNC Pendant Het mooie van het gebruik van een Leonardo is dat je zo flexibel bent! Ik heb 20 sleutels op mijn hanger maar per sleutel kun je 6 verschillende functies gebruiken. Veel te veel maar ik gebruik op sommige toetsen wel 3 functies. Zeer handig en gemakkelijk te gebruiken en te beheren.*/#include "ClickButton.h"#include "Keyboard.h"long int aux1_delay =0;// Nr. van knoppen in de arrayconst int buttons =20;// de Button// buttonPin0 is een dummy omdat ik wil beginnen met '1' in plaats van '0'const int buttonPin0 =0;// deze worden feitelijk gebruiktconst int buttonPin1 =0;const int-knopPin2 =1;const int-knopPin3 =2;const int-knopPin4 =3;const int-knopPin5 =4;const int-knopPin6 =5;const int-knopPin7 =6;const int-knopPin8 =7;const int-knopPin9 =8;const int-knopPin10 =9;const int-knopPin11 =10;const int-knopPin12 =11;const int-knopPin13 =12;const int-knopPin14 =13;const int-knopPin15 =A0;const int-knopPin16 =A1;const int-knopPin17 =A2;const int-knopPin18 =A3;const int buttonPin19 =A4;const int buttonPin20 =A5;// Instantie van ClickButton-objecten in een arrayClickButton-knop [21] ={ // dummy ClickButton (buttonPin0, LOW, CLICKBTN_PULLUP), // gebruikte exemplaren van 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, (button, CLICKBTN_PULLUP), ClickButton buttonPin9, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin10, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin11, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin12, LOW, CLICKBTN_PULLUP), ClickButton (buttonPinCLin13, LOW, PULLUP) ), ClickButton (buttonPin15, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin16, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin17, LOW, CLICKBTN_PULLUP), ClickButton (buttonPin18, LOW, CLICKBTN_PULLUP), (knopPin20) , LOW, CLICKBTN_PULLUP),};void setup(){ // Setup-knoptimers (allemaal in milliseconden / ms) voor (int i =1; ik <=knoppen; i++) { button[i].debounceTime =20; // Debounce-timer in ms-knop [i].multiclickTime =250; // Tijdslimiet voor knop met meerdere klikken [i].longClickTime =1000; // Tijd tot lange klikken registreren }}void loop(){ // Update status van alle knoppen in de array // OPMERKING:niet gestart bij '0' maar '1' voor (int i =1; i <=knoppen; i++) { // Update de status van alle knoptonen [i].Update(); } // druk op de knop uitvoeren als (knop [1].kliks!=0) { schakelaar (knop[1].kliks) { geval 1:// Enkele klik // druk op de RESET-knop (F1) press_RESET(); pauze; geval 2:// Dubbelklik op press_ESC(); pauze; geval 3:// Triple click break; case -1:// Eén keer klikken en vasthouden // DRIVERS UITSCHAKELEN press_ESC(); // verlaat de handwielmodus goto_MACHINE_IO_MENU(); druk_F2(); goto_MAIN_MENU(); pauze; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[2].clicks!=0) { switch (button[2].clicks) { case 1:// Enkele klik // ga naar HOOFDmenu press_ESC(); // verlaat de handwielmodus goto_MAIN_MENU(); pauze; geval 2:// Dubbelklik pauze; geval 3:// Triple click break; case -1:// Single Click and Hold break; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[3].clicks!=0) { switch (button[3].clicks) { case 1:// Enkele klik pauze; geval 2:// Dubbelklik pauze; geval 3:// Triple click break; case -1:// Enkele klik en houd vast // HOME alle assen press_ESC(); // verlaat de handwielmodus goto_MAIN_MENU(); sneltoets_HOME_ALL(); pauze; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[4].clicks!=0) { switch (button[4].clicks) { case 1:// Enkele klik // TOGGLE MDI shortcut_TOGGLE_MDI(); pauze; geval 2:// Dubbelklik pauze; geval 3:// Triple click break; case -1:// Single Click and Hold break; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[5].clicks!=0) { switch (button[5].clicks) { case 1:// Enkele klik // GEBRUIKERSMACRO 1:SET Z HEIGHT press_ESC(); // verlaat de handwielmodus goto_AUTO_MENU(); gebruiker_MACRO_1(); // SET Z HOOGTE pauze; geval 2:// Dubbelklik pauze; geval 3:// Triple click break; case -1:// Single Click and Hold break; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[6].clicks!=0) { switch (button[6].clicks) { case 1:// Enkele klik // ga naar het AUTO-menu press_ESC(); // verlaat de handwielmodus goto_AUTO_MENU(); pauze; geval 2:// Dubbelklik pauze; geval 3:// Triple click break; case -1:// Single Click and Hold break; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[7].clicks!=0) { switch (button[7].clicks) { case 1:// Enkele klik // GRAFISCH SCHERM OPNIEUW DRAAIEN press_ESC(); // verlaat de handwielmodus goto_AUTO_MENU(); druk_F3(); // pauze opnieuw tekenen; geval 2:// Dubbelklik pauze; geval 3:// Triple click break; case -1:// Single Click and Hold break; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[8].clicks!=0) { switch (button[8].clicks) { case 1:// Enkele klik // BESTAND LADEN press_ESC(); // verlaat de handwielmodus goto_AUTO_MENU(); druk_F2(); // laad een bestandsonderbreking; geval 2:// Dubbelklik pauze; geval 3:// Triple click break; case -1:// Single Click and Hold break; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[9].clicks!=0) { switch (button[9].clicks) { case 1:// Enkele klik // AUX1 TOGGLE (VACUUM CLEANER) // voorkom overschakelen naar snel dus pas na / / een vertraging van 1000 ms if ( millis () - aux1_delay> 1000 ) { // schakel AUX1 in of uit shortcut_TOGGLE_AUX1(); // startvertragingstimer aux1 aux1_delay =millis (); } pauze; geval 2:// Dubbelklik pauze; geval 3:// Triple click break; case -1:// Single Click and Hold break; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[10].clicks!=0) { switch (button[10].clicks) { case 1:// Enkele klik // MIST TOGGLE (licht) shortcut_TOGGLE_MIST(); pauze; geval 2:// Dubbelklik pauze; geval 3:// Triple click break; case -1:// Single Click and Hold break; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[11].clicks!=0) { switch (button[11].clicks) { case 1:// Enkele klik // Ga naar P1 (g28) - GEBRUIKERSMENU OPTIE 16 press_ESC(); gebruiker_MACRO_16(); pauze; geval 2:// Dubbelklik pauze; geval 3:// Triple click break; case -1:// Single Click and Hold break; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[12].clicks!=0) { switch (button[12].clicks) { case 1:// Enkele klik // Ga naar P2 (g30) - GEBRUIKERSMENU OPTIE 17 press_ESC(); gebruiker_MACRO_17(); pauze; geval 2:// Dubbelklik pauze; geval 3:// Triple click break; case -1:// Single Click and Hold break; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[13].clicks!=0) { switch (button[13].clicks) { case 1:// Enkele klik // Handwiel op X shortcut_HANDWHEEL_X(); pauze; geval 2:// Dubbelklik // Zero X shortcut_ZERO_X(); pauze; geval 3:// Triple click break; case -1:// Enkele klik en houd vast // GEBRUIKER MACRO 18:X-as:ga naar werknulpositie G0 X0.0000 press_ESC(); goto_MAIN_MENU(); gebruiker_MACRO_18(); pauze; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[14].clicks!=0) { switch (button[14].clicks) { case 1:// Enkele klik // Handwiel op Y shortcut_HANDWHEEL_Y(); pauze; geval 2:// Dubbelklik // Zero Y shortcut_ZERO_Y(); pauze; geval 3:// Triple click break; case -1:// Enkele klik en houd vast // GEBRUIKER MACRO 19:Y-as:ga naar werknulpositie G0 Y0.0000 press_ESC(); goto_MAIN_MENU(); gebruiker_MACRO_19(); pauze; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[15].clicks!=0) { switch (button[15].clicks) { case 1:// Enkele klik // Handwiel op Z shortcut_HANDWHEEL_Z(); pauze; geval 2:// Dubbelklik // Zero Z shortcut_ZERO_Z(); pauze; geval 3:// Triple click break; case -1:// Enkele klik en houd vast // GEBRUIKER MACRO 20:Z-as-ga naar MACHINE omhoog positie G53 G0 Z29.0000 press_ESC(); goto_MAIN_MENU(); gebruiker_MACRO_20(); pauze; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } // Een as if (button[16].clicks!=0) { switch (button[16].clicks) { case 1:// Single click break; geval 2:// Dubbelklik pauze; geval 3:// Triple click break; case -1:// Single Click and Hold break; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[17].clicks!=0) { switch (button[17].clicks) { case 1:// Enkele klik // Handwielsnelheid 1x shortcut_HANDWHEEL_X1(); pauze; geval 2:// Dubbelklik pauze; geval 3:// Triple click break; case -1:// Single Click and Hold break; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[18].clicks!=0) { switch (button[18].clicks) { case 1:// Enkele klik // Handwielsnelheid 10x shortcut_HANDWHEEL_X10(); pauze; geval 2:// Dubbelklik pauze; geval 3:// Triple click break; case -1:// Single Click and Hold break; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[19].clicks!=0) { switch (button[19].clicks) { case 1:// Enkele klik // Handwielsnelheid 100x shortcut_HANDWHEEL_X100(); pauze; geval 2:// Dubbelklik pauze; geval 3:// Triple click break; case -1:// Single Click and Hold break; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } } if (button[20].clicks!=0) { switch (button[20].clicks) { case 1:// Enkele klik shortcut_TOGGLE_MACHINE_COORDINATES(); pauze; geval 2:// Dubbelklik pauze; geval 3:// Triple click break; case -1:// Single Click and Hold break; geval -2:// Dubbelklik en houd pauze; geval -3:// Triple Click and Hold break; } }}/* Opmerkingen over de website van Aduino over het gebruik van een Leonardo als HID:Met de toetsenbordfuncties kan een Leonardo, Micro of Due toetsaanslagen naar een aangesloten computer sturen. Opmerking:niet elk mogelijk ASCII-teken, met name de niet-afdrukbare, kan met de toetsenbordbibliotheek worden verzonden. De bibliotheek ondersteunt het gebruik van modificatietoetsen. Modificatietoetsen veranderen het gedrag van een andere toets wanneer ze tegelijkertijd worden ingedrukt. Zie hier voor meer informatie over ondersteunde sleutels en hun gebruik. Keyboard.begin() Keyboard.end() Keyboard.press() Keyboard.print() Keyboard.println() Keyboard.release() Keyboard.releaseAll() Keyboard.write() Referentietaal | Bibliotheken | Vergelijking | Wijzigingen Toetsenbordmodificaties De opdrachten Keyboard.write() en Keyboard.press() en Keyboard.release() werken niet met alle mogelijke ASCII-tekens, alleen die overeenkomen met een toets op het toetsenbord. Backspace werkt bijvoorbeeld, maar veel van de andere niet-afdrukbare tekens produceren onvoorspelbare resultaten. Voor hoofdletters (en andere toetsen) wordt shift plus het teken verzonden (d.w.z. het equivalent van het indrukken van beide toetsen op het toetsenbord). Een modificatietoets is een speciale toets op een computertoetsenbord die de normale werking van een andere toets wijzigt wanneer de twee in combinatie worden ingedrukt. Voor meer informatie over ASCII-waarden en de tekens of functies die ze vertegenwoordigen, zie asciitable.com. Gebruik Keyboard.press() voor meerdere toetsaanslagen. De definities van Leonardo voor modificatietoetsen worden hieronder weergegeven:Toets Hexadecimale waarde Decimale waarde 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(){ Toetsenbord.begin(); Toetsenbord.druk (KEY_F1); vertraging (100); Keyboard.releaseAll();}void press_ESC(){ Keyboard.begin(); Toetsenbord.press(KEY_ESC); vertraging (100); Keyboard.releaseAll();}void press_F2(){ Keyboard.begin(); Toetsenbord.druk (KEY_F2); vertraging (100); Keyboard.releaseAll();}void press_F3(){ Keyboard.begin(); Toetsenbord.druk (KEY_F3); vertraging (100); Keyboard.releaseAll();}void press_F4(){ Keyboard.begin(); Toetsenbord.druk (KEY_F4); vertraging (100); Keyboard.releaseAll();}void press_F5(){ Keyboard.begin(); Toetsenbord.druk (KEY_F5); vertraging (100); Keyboard.releaseAll();}void press_F6(){ Keyboard.begin(); Toetsenbord.druk (KEY_F6); vertraging (100); Keyboard.releaseAll();}void press_F7(){ Keyboard.begin(); Toetsenbord.druk (KEY_F7); vertraging (100); Keyboard.releaseAll();}void press_F8(){ Keyboard.begin(); Toetsenbord.druk (KEY_F8); vertraging (100); Keyboard.releaseAll();}void press_F9(){ Keyboard.begin(); Toetsenbord.druk (KEY_F9); vertraging (100); Keyboard.releaseAll();}void press_F10(){ Keyboard.begin(); Toetsenbord.druk (KEY_F10); vertraging (100); Keyboard.releaseAll();}void press_F11(){ Keyboard.begin(); Toetsenbord.druk (KEY_F11); vertraging (100); Keyboard.releaseAll();}void press_F12(){ Keyboard.begin(); Toetsenbord.druk (KEY_F12); vertraging (100); Keyboard.releaseAll();}void goto_MAIN_MENU(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_ALT); Toetsenbord.druk (KEY_F1); vertraging (100); Keyboard.releaseAll();}void goto_HOME_MENU(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_ALT); Toetsenbord.druk (KEY_F2); vertraging (100); Keyboard.releaseAll();}void goto_ZERO_MENU(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_ALT); Toetsenbord.druk (KEY_F3); vertraging (100); Keyboard.releaseAll();}void goto_AUTO_MENU(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_ALT); Toetsenbord.druk (KEY_F4); vertraging (100); Keyboard.releaseAll();}void goto_MACHINE_IO_MENU(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_ALT); Toetsenbord.druk (KEY_F7); vertraging (100); Keyboard.releaseAll();}void goto_GRAPHICS_MENU(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_ALT); Toetsenbord.druk (KEY_F8); vertraging (100); Keyboard.releaseAll();}void goto_JOG_MENU(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_ALT); Toetsenbord.druk (KEY_F9); vertraging (100); Keyboard.releaseAll();}void goto_JOG_PAD(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_ALT); Toetsenbord.druk (KEY_F10); vertraging (100); Keyboard.releaseAll();}void goto_USER1_MENU(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_ALT); Toetsenbord.druk (KEY_F11); vertraging (100); Keyboard.releaseAll();}void goto_USER2_MENU(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_ALT); Toetsenbord.druk (KEY_F12); vertraging (100); Keyboard.releaseAll();}void shortcut_HOME_ALL(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_CTRL); Toetsenbord.press('h'); vertraging (100); Keyboard.releaseAll();}void shortcut_ZERO_X(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_CTRL); Toetsenbord.press('1'); vertraging (100); Keyboard.releaseAll();}void shortcut_ZERO_Y(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_CTRL); Toetsenbord.press('2'); vertraging (100); Keyboard.releaseAll();}void shortcut_ZERO_Z(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_CTRL); Toetsenbord.press('3'); vertraging (100); Keyboard.releaseAll();}void shortcut_HANDWHEEL_X(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_CTRL); Toetsenbord.press(KEY_LEFT_SHIFT); Toetsenbord.press('x'); vertraging (100); Keyboard.releaseAll();}void shortcut_HANDWHEEL_Y(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_CTRL); Toetsenbord.press(KEY_LEFT_SHIFT); Toetsenbord.press('y'); vertraging (100); Keyboard.releaseAll();}void shortcut_HANDWHEEL_Z(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_CTRL); Toetsenbord.press(KEY_LEFT_SHIFT); Toetsenbord.press('z'); vertraging (100); Keyboard.releaseAll();}void shortcut_HANDWHEEL_X1(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_CTRL); Toetsenbord.press('n'); vertraging (100); Keyboard.releaseAll();}void shortcut_HANDWHEEL_X10(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_CTRL); Toetsenbord.press('o'); vertraging (100); Keyboard.releaseAll();}void shortcut_HANDWHEEL_X100(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_CTRL); Toetsenbord.press('p'); vertraging (100); Keyboard.releaseAll();}void shortcut_TOGGLE_MDI(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_CTRL); Toetsenbord.druk (KEY_F6); vertraging (100); Keyboard.releaseAll();}void shortcut_TOGGLE_MACHINE_COORDINATES(){ Keyboard.begin(); // TOGGLE MACHINE/WERKCORDINATEN Keyboard.press (KEY_LEFT_CTRL); Toetsenbord.press('w'); vertraging (100); Keyboard.releaseAll();}void shortcut_TOGGLE_AUX1(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_CTRL); Toetsenbord.press('m'); vertraging (100); Keyboard.releaseAll();}void shortcut_TOGGLE_MIST(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_CTRL); Toetsenbord.press('l'); vertraging (100); Keyboard.releaseAll();}void shortcut_TOGGLE_FLOOD(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_CTRL); Toetsenbord.press('k'); vertraging (100); Keyboard.releaseAll();}void user_MACRO_1(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_ALT); Toetsenbord.press('1'); vertraging (100); Keyboard.releaseAll();}void user_MACRO_2(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_ALT); Toetsenbord.press('2'); vertraging (100); Keyboard.releaseAll();}void user_MACRO_3(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_ALT); Toetsenbord.press('3'); vertraging (100); Keyboard.releaseAll();}void user_MACRO_4(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_ALT); Toetsenbord.press('4'); vertraging (100); Keyboard.releaseAll();}void user_MACRO_5(){ Keyboard.begin(); Toetsenbord.press(KEY_LEFT_ALT); Toetsenbord.press('5'); vertraging (100); Keyboard.releaseAll();...Dit bestand is afgekapt. Download het om de volledige inhoud te zien.

Aangepaste onderdelen en behuizingen

Dit is de belangrijkste bibliotheek die je nodig hebt om de meeste functies per knop te krijgen clickbutton_hq5qeT4toX.zip cnc_pendant_SenmxC8UCj.zip

Schema's

Een niet zo goed schema, maar het zal zijn werk doen...

Productieproces

  1. Knop
  2. Licht dimmen met PWM met drukknop
  3. Arduino Spybot
  4. FlickMote
  5. Zelfgemaakte tv B-Gone
  6. Hoofdklok
  7. Vind mij
  8. Een aanpasbare ponsbare toetsenbordknop maken
  9. Arduino Power
  10. Draadloze hanger maakt verbinding met CNC-systemen
  11. Wat is de RESET-knop op het CNC-bedieningspaneel