blog

CNC elektroniikka – Arduino, A4988 ja GRBL-asennus

Oman CNC-koneen rakentaminen on yksi harrastuselektroniikan palkitsevimmista projekteista. Olipa kyseessä puun jyrsintä, PCB-levyjen valmistus tai laserkaiverraus, kaiken ytimessä on toimiva CNC elektroniikka. Tässä oppaassa käymme vaihe vaiheelta läpi, miten rakennat DIY CNC -ohjaimen käyttäen Arduino Nanoa, A4988-askelmoottoriajureita ja GRBL-firmwarea. Lopputuloksena sinulla on täysin toimiva 3-akselinen CNC-ohjain, joka ymmärtää G-koodia.

CNC elektroniikka – tarvittavat komponentit

CNC-koneen elektroniikan rakentamiseen tarvitset seuraavat peruskomponentit:

ATmega328P Nano ohjain
ATmega328P Nano -ohjain – GRBL-firmwaren sydän CNC-ohjauksessa
  • Ohjain: ATmega328P Nano -ohjain – GRBL-firmwaren sydän. ATmega328P-mikrokontrolleri 16 MHz kellotaajuudella, USB Type-C -liitännällä ja CH340-sarjapiirillä.
  • Askelmoottoriajurit: 3 kpl A4988 stepper driver -ajureita (yksi per akseli). Tukee jopa 2A virtaa per käämi ja 1/16-mikroaskellusta.
  • Askelmoottorit: 3 kpl NEMA17 59Ncm stepper -moottoreita. 1,8° askelkulma, 2,0A nimellisvirta ja 59 Ncm pitomomentti riittävät useimpiin harrastus-CNC-koneisiin.
  • CNC Shield: V4 (Nanolle) tai V3 (Unolle) – yksinkertaistaa johdotusta merkittävästi.
  • Virtalähde: 12V 5A–10A tasavirtalähde moottoreille.
  • Rajakytkimet: 3–6 kpl mekaanisia mikrokytkimiä kotiaseman hakuun.
  • Lisätarvikkeet: Johtoja, 100µF kondensaattoreita, jäähdytysrivat A4988-ajureille.

Kevyempiin rakennelmiin voit harkita myös NEMA17 40Ncm stepper -moottoria, joka tarjoaa pienemmän vääntömomentin mutta riittää esimerkiksi laserkaiverruskoneisiin.

NEMA17 Moottoripidike - Litteä
NEMA17 moottoripidike – CNC-työstettyä anodisoitua alumiinia

Moottoreiden kiinnittämiseen runkoon suosittelemme NEMA17 moottoripidikettä, joka on CNC-työstettyä anodisoitua alumiinia ja sopii matalan profiilinsa ansiosta erinomaisesti CNC-projekteihin.

A4988-ajurin asennus ja Vref-säätö

A4988 on CNC-harrastajien suosituin askelmoottoriajuri. Se ohjaa moottoria vain kahdella signaalilla – STEP (askel) ja DIR (suunta) – mikä tekee kytkennästä yksinkertaisen. Ennen ajurien asentamista CNC-shieldiin on tärkeää säätää virranrajoitus oikein.

Mikroaskelluksen valinta

A4988 tukee viittä eri mikroaskellustasoa, jotka valitaan MS1-, MS2- ja MS3-pinneillä (CNC-shieldissä jumpperein):

  • Täysi askel (MS1=LOW, MS2=LOW, MS3=LOW): 200 askelta/kierros
  • 1/2 askel (MS1=HIGH): 400 askelta/kierros
  • 1/4 askel (MS2=HIGH): 800 askelta/kierros
  • 1/8 askel (MS1=HIGH, MS2=HIGH): 1600 askelta/kierros
  • 1/16 askel (MS1=HIGH, MS2=HIGH, MS3=HIGH): 3200 askelta/kierros

CNC-käytössä 1/8 tai 1/16 mikroaskellus on tyypillisin valinta. 1/16 antaa tasaisimman liikkeen mutta rajoittaa maksiminopeutta.

Vref-jännitteen laskeminen ja säätö

Virranrajoitus säädetään A4988:n pienellä potentiometrillä. Oikea Vref-jännite lasketaan kaavalla:

Vref = Imax × 8 × Rcs

Missä Imax on moottorin nimellisvirta ja Rcs on A4988-piirilevyn virtamittausvastuksen arvo. Yleisimmät arvot ovat 0,068Ω (merkintä R068) tai 0,100Ω (merkintä R100).

Esimerkki NEMA17 59Ncm -moottorille (2,0A) ja 0,068Ω vastuksilla:

Vref = 2.0 × 8 × 0.068 = 1.088V
Suositeltu aloitusarvo (70-80%): ~0.8V

Mittaus ja säätö:

  1. Kytke A4988:lle vain logiikkajännite (5V ja GND Arduinosta).
  2. Aseta yleismittari DC-jännitemittaukselle.
  3. Kytke miinusjohto GND:hen ja plusjohto potentiometrin metallipintaan.
  4. Käännä potentiometriä pienellä ruuvimeisselillä: myötäpäivään = enemmän virtaa.
  5. Säädä laskettuun Vref-arvoon.
  6. Kiinnitä aina jäähdytysripa A4988-siruun ennen moottoreiden käyttöä!

⚠️ VAROITUS: Älä koskaan kytke tai irrota askelmoottoreita ajurin ollessa jännitteellinen! Tämä tuhoaa A4988-ajurin välittömästi.

GRBL-firmwaren asennus Arduinolle

GRBL on avoimen lähdekoodin CNC-ohjausfirmware, joka muuntaa G-koodin askelmoottoreiden liikkeiksi. Se on suunniteltu nimenomaan ATmega328P-mikrokontrollerille ja tukee 3-akselista ohjausta, rajakytkimiä sekä kara-/laserohjausta. GRBL-asennus on DIY CNC -ohjaimen tärkein vaihe.

Asennusohjeet vaihe vaiheelta

  1. Asenna Arduino IDE osoitteesta arduino.cc/en/software.
  2. Lataa GRBL 1.1 GitHubista: github.com/gnea/grbl (Code → Download ZIP).
  3. Pura ZIP-tiedosto haluamaasi kansioon.
  4. Arduino IDE:ssä: Sketch → Include Library → Add .ZIP Library.
  5. Valitse puretusta kansiosta grbl-alikansio (EI grbl-master-kansiota!).
  6. Avaa: File → Examples → grbl → grblUpload.
  7. Kytke Arduino Nano USB-kaapelilla (käytä datakaapelia, ei pelkkää latauskaapelia).
  8. Valitse kortti: ”Arduino Nano” ja oikea COM-portti.
  9. Tärkeää CH340-Nanolle: Valitse Tools → Processor → ”ATmega328P (Old Bootloader)”.
  10. Klikkaa Upload ja odota latauksen valmistumista.

Asennuksen varmistaminen

Avaa Serial Monitor (Tools → Serial Monitor) ja aseta baudinopeus 115200. Sinun pitäisi nähdä:

Grbl 1.1h ['$' for help]

Kirjoita $$ ja paina Enter nähdäksesi kaikki GRBL-asetukset. Jos näet sekavia merkkejä, tarkista baudinopeus – sen on oltava 115200.

Kytkentä ja johdotus

CNC Shield yksinkertaistaa johdotusta huomattavasti, mutta on tärkeää ymmärtää pinnikartta myös ilman shieldiä. GRBL 1.1:n pinnikartta CNC Arduino -ohjauksessa:

Toiminto          Arduino-pinni
──────────────────────────────
X Step            D2
Y Step            D3
Z Step            D4
X Direction       D5
Y Direction       D6
Z Direction       D7
Stepper Enable    D8
X Limit           D9
Y Limit           D10
Z Limit           D12
Spindle PWM       D11
Spindle Dir       D13
Coolant           A3
Probe             A5

Huomaa: GRBL 1.1:ssä Z-rajakytkimen pinni on D12 (ei D11), koska D11 käytetään karan PWM-ohjaukseen.

A4988-ajurin kytkentä ilman CNC-shieldiä

A4988 pinni    → Kytkentä
───────────────────────────────────
VMOT           → Virtalähde + (12V)
GND (moottori) → Virtalähde -
VDD            → Arduino 5V
GND (logiikka) → Arduino GND
STEP           → D2/D3/D4 (X/Y/Z)
DIR            → D5/D6/D7 (X/Y/Z)
ENABLE         → D8 (LOW = käytössä)
SLEEP          → Yhdistä RESET-pinniin
RESET          → Yhdistä SLEEP-pinniin
1A, 1B         → Moottorin käämi 1
2A, 2B         → Moottorin käämi 2

Tärkeää: Lisää 100µF elektrolyyttikondensaattori VMOT:n ja GND:n väliin lähelle A4988-ajuria jännitepiikkien suodattamiseksi!

Virtalähde

Tyypillinen harrastus-CNC käyttää 12V tasavirtavirtalähdettä. Kolmen NEMA17-moottorin järjestelmään suositellaan vähintään 5A:n virtalähdettä, mieluiten 10A. CNC Shield V4:n kanssa älä ylitä 12 V:n jännitettä. Jos tarvitset alempaa jännitettä esimerkiksi tuulettimille, LM2596 step-down -jännitemuunnin on kätevä ratkaisu jännitteen alentamiseen.

LM2596 step-down -jännitemuunnin
LM2596 step-down -jännitemuunnin – kätevä jännitteen alentamiseen CNC-projektissa

GRBL-asetukset ja kalibrointi

GRBL-asennus ei ole valmis ennen kuin asetukset on kalibroitu koneellesi. Tärkeimmät asetukset syötetään Serial Monitorin kautta.

Askelta per millimetri ($100–$102)

Tämä on CNC-koneen tarkkuuden perusta. Laskukaava riippuu mekaanisesta rakenteesta:

Hihnavetoiselle akselille (GT2-hihna):

askelta/mm = (askelta_per_kierros × mikroaskellus) / (hihnan_jako × hammaspyörän_hampaat)

Esimerkki: NEMA17, 1/16 mikroaskellus, GT2 (2mm), 20-hampainen hihnapyörä:
askelta/mm = (200 × 16) / (2 × 20) = 80
→ $100=80

Kierretankovetoiselle akselille (T8-kierretanko):

askelta/mm = (askelta_per_kierros × mikroaskellus) / nousu_per_kierros

Esimerkki: NEMA17, 1/16 mikroaskellus, T8 (8mm nousu, 4 alkua):
askelta/mm = (200 × 16) / 8 = 400
→ $100=400

Tärkeimmät GRBL-asetukset

$1=255      Moottorit aina lukittuina (estää liikkeen pysähdyksissä)
$3=0        Suunnan kääntö (bitmask: X=1, Y=2, Z=4, esim. $3=3 kääntää X+Y)
$5=0        Rajakytkimien invertointi (1 = NC-kytkimille)
$100=400    X askelta/mm (laske omalle koneellesi)
$101=400    Y askelta/mm
$102=400    Z askelta/mm
$110=500    X maksiminopeus (mm/min)
$111=500    Y maksiminopeus (mm/min)
$112=500    Z maksiminopeus (mm/min)
$120=10     X kiihtyvyys (mm/s²)
$121=10     Y kiihtyvyys (mm/s²)
$122=10     Z kiihtyvyys (mm/s²)

Syötä asetukset yksi kerrallaan Serial Monitoriin, esimerkiksi $100=400 ja paina Enter.

Rajakytkimet ja kotiasema

Rajakytkimet ovat olennainen osa turvallista CNC-konetta. Ne mahdollistavat kotiaseman haun (homing) ja estävät koneen ajamisen mekaanisten rajojen yli.

Kytkintyypit

  • Normally Closed (NC) – suositeltu: Kytkin on normaalisti kiinni ja avautuu lauetessaan. Katkennut johto havaitaan heti virheenä.
  • Normally Open (NO): Yksinkertaisempi mutta vähemmän turvallinen – katkennut johto ei aiheuta hälytystä.

Kytkentä

GRBL:n rajakytkinpinnit ovat D9 (X), D10 (Y) ja D12 (Z). Pinnit käyttävät sisäisiä ylösvetovastuksia. Kytke kytkimen C-pinni (common) Arduinon rajakytkinpinniin ja NC/NO-pinni GND:hen.

Kotiaseman asetukset

$5=1        Rajakytkimien invertointi (NC-kytkimille)
$21=1       Hard limits käyttöön (hätäpysäytys)
$22=1       Homing-sykli käyttöön
$23=0       Homing-suunnan invertointi
$24=25      Homing-syöttönopeus (mm/min)
$25=500     Homing-hakunopeus (mm/min)
$26=250     Homing-debounce (ms)
$27=1.0     Homing pull-off (mm)

Kotiaseman haku käynnistetään komennolla $H. Kone liikkuu ensin nopeasti ($25) rajakytkimelle, peruuttaa ja lähestyy hitaasti ($24) tarkan aseman löytämiseksi.

Häiriöiden vähentäminen

Rajakytkimet ovat herkkiä sähköisille häiriöille. Lisää 0,1µF keraaminen kondensaattori signaalin ja GND:n väliin Arduino-päässä. Pidä rajakytkimien johdot erillään moottori- ja virtajohdoista, ja käytä mahdollisuuksien mukaan suojattua kaapelia.

Kara- ja laserohjaus

GRBL tukee sekä karan (spindle) että laserin ohjausta D11-pinnin PWM-signaalilla.

Karaohjaus

Karan nopeutta ohjataan 0–5V PWM-signaalilla. Tyypillisesti D11-pinnin signaali ohjaa MOSFET-transistoria (esim. IRF540), joka kytkee karamoottorin. Asetukset:

$30=24000   Karan maksiminopeus (RPM)
$31=0       Karan miniminopeus (RPM)

G-koodi:
M3 S12000   Kara päälle, 12000 RPM
M5          Kara pois

Laserohjaus

Lasermoduulin TTL-tulo kytketään D11-pinniin. Lasermoodi aktivoidaan asetuksella $32=1, jolloin laser sammuu automaattisesti G0-pikaliikkeiden aikana – tärkeä turvallisuusominaisuus.

$32=1       Lasermoodi päälle

G-koodi:
M3 S255     Laser täydellä teholla
M3 S128     Laser 50% teholla
M5          Laser pois

Vianetsintä ja yleiset ongelmat

CNC-elektroniikan rakentamisessa kohtaa väistämättä ongelmia. Tässä yleisimmät ja niiden ratkaisut:

  • Moottorit tärisevät mutta eivät pyöri: Käämien johdotus on väärin. Vaihda yhden käämin johtojen paikkaa (esim. 1A ja 1B keskenään).
  • Moottorit hyppäävät askelia: Vref on liian matala, kiihtyvyys liian suuri tai mekaaninen kitka liian korkea. Nosta Vref-arvoa ja laske $120–$122 kiihtyvyysarvoja.
  • Serial Monitor näyttää sekavia merkkejä: Väärä baudinopeus – aseta 115200.
  • Arduino ei näy tietokoneella: Asenna CH340-ajuri. Protocachen ATmega328P Nano käyttää CH340-sarjapiiriä.
  • A4988 kuumenee voimakkaasti: Vref on liian korkea, jäähdytysripa puuttuu tai moottorin virta ylittää ajurin kapasiteetin.
  • Rajakytkimet laukeavat satunnaisesti: Sähköinen häiriö – lisää suodatuskondensaattoreita, käytä NC-kytkentää ja suojattua kaapelia.
  • Moottori pyörii väärään suuntaan: Käytä $3-asetusta suunnan kääntämiseen (bitmask: X=1, Y=2, Z=4). Esimerkiksi $3=3 kääntää X- ja Y-akselit.

G-koodilähettimet – ohjelmistovalinnat

GRBL-asennus on valmis, mutta tarvitset vielä tietokoneohjelman G-koodin lähettämiseen CNC Arduinolle. Suosituimmat vaihtoehdot:

  • Universal Gcode Sender (UGS): Suosituin ja monipuolisin. Java-pohjainen, toimii kaikilla käyttöjärjestelmillä. 3D-visualisointi ja makrot.
  • Candle: Kevyt ja helppokäyttöinen, erinomainen aloittelijoille. Sisäänrakennettu G-koodin visualisointi.
  • LaserGRBL: Suunniteltu erityisesti laserkaiverrukseen. Voi tuoda kuvia suoraan ja muuntaa ne G-koodiksi.
  • bCNC: Python-pohjainen, edistyneet ominaisuudet kuten automaattinen pinnan tasaus ja PCB-jyrsintä.
  • CNC.js: Selainpohjainen käyttöliittymä, voidaan ajaa Raspberry Pi:llä etäkäyttöä varten.

Suositellut tuotteet CNC-projektiin

Kaikki tarvitsemasi komponentit löydät Protocachen verkkokaupasta – lisää suoraan ostoskoriin:

Yhteenveto

DIY CNC -ohjaimen rakentaminen Arduino Nanolla, A4988-ajureilla ja GRBL-firmwarella on kustannustehokas ja opettavainen projekti. Tärkeimmät vaiheet ovat: komponenttien hankinta, A4988:n Vref-säätö, GRBL:n asennus, johdotus, kalibrointi ja rajakytkimien asennus. Kun nämä perusasiat ovat kunnossa, sinulla on luotettava CNC-ohjain, joka toimii ammattimaisten G-koodilähettimien kanssa.

Kaikki tässä oppaassa mainitut komponentit – ATmega328P Nano -ohjain, A4988-askelmoottoriajurit ja NEMA17 59Ncm -askelmoottorit – löydät Protocachen verkkokaupasta. Aloita oma CNC-projektisi jo tänään!

💡 Vinkki: Jos sinulla on kysyttävää CNC-elektroniikan rakentamisesta tai komponenttivalinnoista, ota rohkeasti yhteyttä – autamme mielellämme projektisi alkuun!

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *