Le immagini dei prodotti sono solo a scopo informativo e potrebbero presentare piccole differenze, a seconda del lotto e del fornitore. Le specifiche e i prezzi dei prodotti potrebbero essere soggetti a modifiche senza preavviso. Facciamo del nostro meglio per aggiungere specifiche quanto più precise e corrette possibili alla pagina del prodotto, ma è possibile che non siano del tutto corrette. Se identifichi un caso del genere, ti preghiamo di segnalarcelo.
Il prodotto è destinato agli specialisti e richiede personale qualificato e autorizzato. Il prodotto non include istruzioni di montaggio/uso . La messa in funzione del prodotto da parte di persone non qualificate comporta la perdita della garanzia secondo i Termini e Condizioni presenti sul sito.
Le specifiche tecniche indicate (corrente, potenza, ecc.) rappresentano valori massimi consentiti in condizioni ideali di funzionamento. Per un utilizzo sicuro e una durata ottimale, si raccomanda di utilizzare il prodotto in regime continuo a non più del 50% dei valori massimi specificati.
Motore passo-passo, NEMA17, 1.7A, 1.8°, 42x42x40 mm, bipolare
Motore passo-passo per azionamento preciso degli assi su stampanti 3D e fresatrici CNC, compatibile con i driver A4988 e DRV8825. Offre un passo di 1,8 gradi per un controllo preciso, una corrente di 1,7 A per fase con 2 fasi per una coppia stabile, una forza di tenuta 40N.cm per un posizionamento sicuro e un formato compatto di 42x42x40 mm, ideale per l'integrazione in assemblaggi standard.
Spedito entro giovedì 22 ottobre
Acquistando questo prodotto guadagni 2,90 RON in punti fedeltà.
Spedizione veloce gratuita per ordini superiori a 100EUR nella maggior parte de paesi UE.
Spediamo dal nostro magazzino entro 24 ore
Ricevi punti a ogni ordine, per un valore del 5%.
Il motore passo-passo NEMA 17 JK42HS40-1704 è un motore ibrido bipolare a 2 fasi. Si usa per il movimento degli assi in stampanti 3D, router CNC, incisori laser e altri sistemi di posizionamento lineare. Ha un angolo di passo di 1.8 gradi, cioè 200 passi per rotazione, e una coppia di mantenimento di 4.2kg.cm (circa 41N.cm). Offre quindi movimenti precisi e ripetibili, senza sensori di posizione.
Il corpo ha una lunghezza di 39.5mm e una flangia standard NEMA 17 di 42.3 x 42.3mm. La flangia ha 4 fori filettati M3 a distanza di 31mm e un collare di centraggio di 22mm, quindi il motore si adatta alla maggior parte dei supporti e dei componenti per stampanti 3D e CNC. L’albero ha un diametro di 5mm e una lunghezza di 24mm. È adatto per ruote GT2, giunti flessibili 5 x 8mm per barre filettate T8 o meccanismi di estrusione. Il motore ha 4 fili UL1007 AWG26 con lunghezza minima di 500mm.
La corrente nominale è di 1.7A per fase, e la resistenza degli avvolgimenti è ridotta (1.5Ω). Per questo il motore si usa con driver a controllo di corrente come A4988, DRV8825, TMC2208 o TMC2209, alimentati a 12 - 24VDC. È compatibile con Arduino Uno con CNC Shield V3 e Arduino Mega con RAMPS 1.4. Funziona anche con schede per stampanti 3D con firmware Marlin o Klipper, con controller GRBL e con piattaforme ESP32, STM32 o Raspberry Pi, tramite un driver.
Specifiche:
Modello: JK42HS40-1704
Tipo di motore: ibrido bipolare, 2 fasi
Angolo di passo: 1.8 gradi (200 passi/rotazione)
Corrente nominale fase: 1.7A
Tensione nominale fase: 2.55V
Resistenza di fase: 1.5Ω ±10% (a 20°C)
Induttanza di fase: 2.3mH ±20% (1kHz, 1V RMS)
Coppia di mantenimento: 4.2kg.cm (circa 41N.cm)
Classe di isolamento: B (130°C)
Aumento di temperatura: max. 80K alla corrente nominale
Numero di fili: 4 (UL1007 AWG26)
Lunghezza fili: min. 500mm
Tensione di alimentazione driver consigliata: 12 - 24VDC
Dimensioni corpo: 42.3 x 42.3 x 39.5mm
Albero: Ø5mm x 24mm, con taglio, forma tipo D
Collare di centraggio: Ø22mm x 2mm
Fori di montaggio: 4 x M3 x 0.5, profondità min. 4.5mm, distanza 31mm
Peso: 0.24kg
Pinout:
| Filo | Colore | Funzione | Pin A4988 | Pin DRV8825 |
|---|---|---|---|---|
| A | Nero | Bobina 1 (A+) | 1A | A1 |
| C | Verde | Bobina 1 (A-) | 1B | A2 |
| B | Rosso | Bobina 2 (B+) | 2A | B1 |
| D | Blu | Bobina 2 (B-) | 2B | B2 |
Sequenza dei passi:
Sequenza di comando a passo intero, vista dalla flangia. I passi da 1 a 4 danno senso orario (CW), mentre i passi da 4 a 1 danno senso antiorario (CCW).
| Passo | A | B | C | D |
|---|---|---|---|---|
| 1 | + | + | - | - |
| 2 | - | + | + | - |
| 3 | - | - | + | + |
| 4 | + | - | - | + |
Dimensioni:

Utilizzo:
Montare il motore sul supporto con 4 viti M3. Scegliere la lunghezza delle viti in modo che non entrino più di 4.5mm nel corpo del motore.
Fissare sull’albero la ruota GT2, il giunto o il pignone dell’estrusore e serrare saldamente la vite di bloccaggio.
Identificare le coppie di bobine. I fili nero e verde formano la bobina 1, mentre i fili rosso e blu formano la bobina 2. In caso di dubbi, misurare con il multimetro: tra le estremità della stessa bobina si deve leggere circa 1.5Ω.
Collegare la bobina 1 alle uscite 1A e 1B (A4988) oppure A1 e A2 (DRV8825). Collegare la bobina 2 a 2A e 2B (A4988) oppure B1 e B2 (DRV8825).
Regolare il limite di corrente del driver tramite il potenziometro prima della prima accensione. Sul DRV8825 si usa la formula Vref = I / 2. Sul A4988 la formula è Vref = I x 8 x Rs, quindi per Rs = 0.1Ω (marcatura R100) si ottiene Vref = I x 0.8. Per un funzionamento prolungato si raccomandano 1.2 - 1.5A, senza superare 1.7A.
Alimentare il driver a 12 - 24VDC, da un alimentatore in grado di fornire la corrente necessaria per tutti i motori. Montare un condensatore di min. 100uF sull’alimentazione del driver.
Collegare i pin STEP, DIR ed EN del driver alla scheda di controllo (Arduino, ESP32, STM32 o scheda della stampante 3D).
Impostare nel firmware il numero di passi per rotazione: 200 a passo intero, 3200 a 1/16 microstep (A4988) oppure 6400 a 1/32 microstep (DRV8825).
Non collegare né scollegare il motore mentre il driver è alimentato, poiché il driver potrebbe danneggiarsi.
Se il motore ruota al contrario, invertire i fili di una sola bobina oppure cambiare la direzione nel firmware. Se il motore vibra senza ruotare, controllare le coppie di bobine.
È normale che il motore si riscaldi durante il funzionamento, con una temperatura che può aumentare fino a 80 gradi sopra quella ambiente. Assicurare una buona ventilazione e ridurre la corrente se il motore diventa troppo caldo.
- Corrente nominale
- 1.7 A
Produs destinat utilizarii in proiecte electronice, automatizari, prototipare, educatie si cercetare.
Produsul trebuie utilizat numai conform specificatiilor tehnice mentionate in descriere si/sau in documentatia produsului.
Avertismente generale de siguranta:
Nu utilizati produsul la tensiuni, curenti sau temperaturi peste valorile specificate.
Montajul si conectarea trebuie realizate de persoane cu cunostinte tehnice minime in domeniul electric/electronic.
Evitati scurtcircuitele, inversarea polaritatii si conectarea gresita a alimentarii.
Nu lasati produsul alimentat nesupravegheat in timpul testelor.
Produsul nu este jucarie si nu este destinat copiilor.
Pentru modulele electronice, se recomanda utilizarea in carcase, panouri sau montaje protejate, dupa caz.
Identificare produs:
Denumirea produsului, codul/SKU-ul si caracteristicile tehnice sunt mentionate in pagina produsului si/sau pe eticheta ambalajului.
Producator / Importator / Distribuitor:
Sigmanortec S.R.L.
Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania
E-mail: [email protected]
Website: www.sigmanortec.ro
Persoana responsabila in UE:
Sigmanortec S.R.L.
Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania
E-mail: [email protected]
Documentatie si siguranta:
Pentru informatii suplimentare, fise tehnice, declaratii de conformitate sau instructiuni, ne puteti contacta la [email protected].
/*
Board: Arduino Uno (Arduino AVR Boards)
Driver: A4988 Stepper Motor Driver
Motor under test: NEMA17 stepper motor JK42HS40-1704, bipolar, 1.8 deg/step (200 steps/rev)
Wiring:
A4988 STEP -> Arduino D3
A4988 DIR -> Arduino D2
A4988 ENABLE -> Arduino D4
A4988 VDD -> Arduino 5V
A4988 GND (logic) -> Arduino GND
A4988 1A / 1B -> Motor coil A (black / green)
A4988 2A / 2B -> Motor coil B (red / blue)
A4988 VMOT -> External 12-24V power supply (+)
A4988 GND (power) -> External power supply GND
Libraries: none required, uses only the built in digitalWrite and delayMicroseconds functions
This sketch is a quick functional test: it steps the motor slowly for one
revolution in each direction while printing a step counter, then disables
the driver outputs briefly so you can check that the shaft turns freely
(confirming the driver is really releasing the coils) before re-enabling it.
*/
const int stepPin = 3;
const int dirPin = 2;
const int enablePin = 4;
const int stepsPerRevolution = 200;
const int testStepDelayMicros = 2000;
void doStep() {
digitalWrite(stepPin, HIGH);
delayMicroseconds(testStepDelayMicros);
digitalWrite(stepPin, LOW);
delayMicroseconds(testStepDelayMicros);
}
void setup() {
Serial.begin(9600);
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enablePin, OUTPUT);
digitalWrite(enablePin, LOW);
Serial.println("A4988 + NEMA17 test start");
}
void loop() {
Serial.println("Test: one revolution clockwise, slow speed");
digitalWrite(dirPin, HIGH);
for (int i = 1; i <= stepsPerRevolution; i++) {
doStep();
if (i % 50 == 0) {
Serial.print("Step count: ");
Serial.println(i);
}
}
Serial.println("Test: one revolution counterclockwise, slow speed");
digitalWrite(dirPin, LOW);
for (int i = 1; i <= stepsPerRevolution; i++) {
doStep();
if (i % 50 == 0) {
Serial.print("Step count: ");
Serial.println(i);
}
}
Serial.println("Disabling driver outputs for 2 seconds, shaft should turn freely by hand");
digitalWrite(enablePin, HIGH);
delay(2000);
digitalWrite(enablePin, LOW);
Serial.println("Driver re-enabled, holding torque restored");
delay(1000);
}
Il motore passo-passo NEMA17 JK42HS40-1704 è un motore ibrido bipolare a 4 fili, utilizzato per il movimento degli assi nelle stampanti 3D, router CNC, incisori laser e altri sistemi di posizionamento lineare dove serve una rotazione precisa, a passi, senza sensore di posizione.
Per funzionare ha bisogno obbligatoriamente di un driver con controllo di corrente, ad esempio A4988, e di un microcontroller che generi gli impulsi di passo. In questo tutorial utilizziamo una scheda Arduino Uno R3 e un driver A4988, la combinazione più usata per questo tipo di motore nei progetti di 3D printing e CNC.

Come funziona:
Il motore ha un angolo di passo di 1.8 gradi, cioè 360 diviso 1.8 risulta in 200 passi per una rotazione completa, al comando in passo intero. Ogni impulso applicato sul pin STEP del driver fa commutare le bobine in un'altra combinazione di polarità, facendo avanzare il rotore di un singolo passo.
La velocità di rotazione è data dalla frequenza degli impulsi STEP. La formula è frequenza in Hz uguale al numero di giri in RPM moltiplicato per il numero di passi per rotazione, il tutto diviso per 60. Ad esempio per 60 RPM a passo intero risulta 60 x 200 diviso 60, cioè 200 Hz, quindi un impulso STEP ogni 5 ms.
Il driver A4988 permette anche il microstepping, cioè divide ogni passo intero in sotto-passi, ad esempio a 1/16 microstep risulta 200 x 16, cioè 3200 passi per rotazione, per un movimento più fine e più silenzioso.
La corrente attraverso le bobine si limita dal potenziometro presente sul driver, secondo la formula Vref uguale alla corrente desiderata moltiplicata per 8 e per la resistenza di sense Rs. Per Rs di 0.1 ohm, marcata R100 sulla maggior parte delle schedine A4988, la formula diventa Vref uguale alla corrente moltiplicata per 0.8. Per questo motore, con corrente nominale di 1.7 A, si raccomanda un limite da 1.2 a 1.5 A per il funzionamento continuo, quindi un Vref tra 0.96 e 1.2 V.
Cosa ti serve:
- 1 x Motore Passo-Passo NEMA17 1.7A 1.8 gradi 42x42x40mm Bipolare
- 1 x Scheda di sviluppo Uno R3 con Wifi ESP8266, compatibile Arduino
- 1 x Driver stepper A4988 + Dissipatore
- 1 x Alimentatore 12V, 2A
- 1 x Condensatore elettrolitico 100uF
- 1 x 40 fili Dupont 10cm, Femmina-Femmina
- 1 x Breadboard 830 punti MB-102
Collegamento:
Il motore si collega alle uscite delle bobine del driver A4988, mentre il driver si collega ad Arduino per i segnali di comando e separatamente a una sorgente esterna di 12 - 24 VDC per l'alimentazione del motore.
| Pin prodotto | Si collega a | Ruolo |
|---|---|---|
| A (nero) | A4988 1A | Bobina 1, terminale + |
| C (verde) | A4988 1B | Bobina 1, terminale - |
| B (rosso) | A4988 2A | Bobina 2, terminale + |
| D (blu) | A4988 2B | Bobina 2, terminale - |
Il driver si alimenta separatamente su VMOT e GND con 12 - 24 VDC da una sorgente esterna, non da Arduino, mentre su VDD e GND logico si collega a 5V e GND di Arduino. STEP si collega a D3, DIR a D2, mentre ENABLE a D4. I fili di alimentazione del motore lavorano a una tensione superiore a 5V, quindi non vanno mai collegati direttamente ai pin di Arduino. Montate un condensatore elettrolitico da minimo 100 uF tra VMOT e GND, il più vicino possibile al driver.

Scheda e librerie:
In Arduino IDE selezionate la scheda Arduino Uno dal pacchetto Arduino AVR Boards, che viene incluso implicitamente con Arduino IDE e non necessita di indirizzi aggiuntivi in Preferences. Il programma usa solo le funzioni standard digitalWrite e delayMicroseconds, quindi non serve installare nessuna libreria.
Il codice:
Il codice fa ruotare il motore di una rotazione completa in senso orario, poi una rotazione completa in senso antiorario, ripetendo il ciclo e mostrando sul monitor seriale ogni fase.
/*
Board: Arduino Uno (Arduino AVR Boards)
Driver: A4988 Stepper Motor Driver
Motor: NEMA17 stepper motor JK42HS40-1704, bipolar, 1.8 deg/step (200 steps/rev)
Wiring:
A4988 STEP -> Arduino D3
A4988 DIR -> Arduino D2
A4988 ENABLE -> Arduino D4
A4988 VDD -> Arduino 5V
A4988 GND (logic) -> Arduino GND
A4988 1A / 1B -> Motor coil A (black / green)
A4988 2A / 2B -> Motor coil B (red / blue)
A4988 VMOT -> External 12-24V power supply (+)
A4988 GND (power) -> External power supply GND
Libraries: none required, uses only the built in digitalWrite and delayMicroseconds functions
*/
const int stepPin = 3;
const int dirPin = 2;
const int enablePin = 4;
const int stepsPerRevolution = 200;
int stepDelayMicros = 1000;
void rotateSteps(int steps, bool clockwise) {
digitalWrite(dirPin, clockwise ? HIGH : LOW);
for (int i = 0; i < steps; i++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(stepDelayMicros);
digitalWrite(stepPin, LOW);
delayMicroseconds(stepDelayMicros);
}
}
void setup() {
Serial.begin(9600);
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enablePin, OUTPUT);
digitalWrite(enablePin, LOW);
Serial.println("NEMA17 stepper motor ready");
}
void loop() {
Serial.println("Rotating one full turn clockwise");
rotateSteps(stepsPerRevolution, true);
delay(1000);
Serial.println("Rotating one full turn counterclockwise");
rotateSteps(stepsPerRevolution, false);
delay(1000);
}
Come funziona il codice:
All'inizio del programma sono definiti i pin stepPin, dirPin e enablePin, il numero di passi per rotazione stepsPerRevolution e la variabile stepDelayMicros che controlla la velocità, un delay più piccolo significando una velocità più alta.
Nella funzione setup si configurano i pin come uscite e si attiva il driver con digitalWrite su enablePin a LOW, poiché A4988 ha la logica di attivazione invertita, mentre la comunicazione seriale parte a 9600 baud.
La funzione rotateSteps riceve il numero di passi e la direzione, imposta il pin dirPin secondo il senso desiderato, poi invia impulsi sul pin stepPin, ogni impulso essendo formato da un fronte HIGH seguito da un fronte LOW, separati dall'intervallo stepDelayMicros.
Nella funzione loop si richiama rotateSteps per una rotazione completa in senso orario, si attende un secondo, poi si richiama nuovamente per una rotazione completa in senso antiorario, il ciclo ripetendosi all'infinito.
Risultato:
Aprite il monitor seriale a 9600 baud. Vedrete i messaggi di stato, mentre il motore eseguirà visibilmente una rotazione completa in ogni senso, con una pausa di un secondo tra di esse.
NEMA17 stepper motor ready
Rotating one full turn clockwise
Rotating one full turn counterclockwise
Rotating one full turn clockwise
Rotating one full turn counterclockwise
Rotating one full turn clockwise
Rotating one full turn counterclockwise
Problemi frequenti:
Il motore vibra ma non ruota: una delle coppie di bobine è sbagliata. Verificate con il multimetro che i fili nero e verde formino una bobina, mentre rosso e blu l'altra bobina, e che ogni coppia sia collegata alla stessa uscita del driver (1A/1B, rispettivamente 2A/2B).
Il motore non si muove per niente: verificate che il driver sia alimentato su VMOT con 12 - 24 VDC, che il pin ENABLE sia a LOW e che il filo GND della sorgente esterna sia comune con il GND di Arduino.
Il motore perde passi o salta dei movimenti ad alta velocità: il limite di corrente Vref è troppo basso per il carico, oppure la velocità richiesta è troppo alta per la coppia disponibile. Aumentate leggermente Vref, nel limite di 1.5 A, oppure riducete la velocità diminuendo il valore di stepDelayMicros.
Il driver o il motore si scaldano molto: la corrente è impostata troppo vicino a 1.7 A senza raffreddamento sufficiente. Montate un dissipatore sull'A4988 e riducete Vref verso 1.2 A per il funzionamento continuo.
Il motore ruota in senso contrario a quello atteso: invertite i fili di una singola bobina, ad esempio nero con verde, oppure cambiate il valore inviato sul pin dirPin nel codice.
Limitazioni e consigli:
Il controllo è ad anello aperto, senza feedback di posizione, quindi con un carico meccanico troppo elevato il motore può perdere passi senza che il driver o il programma lo sappiano. La coppia disponibile diminuisce con l'aumentare della velocità di rotazione, quindi per applicazioni veloci serve un compromesso tra velocità e coppia necessaria. Per un movimento più silenzioso e più fine potete sostituire A4988 con un driver con microstepping più fine, ad esempio TMC2208 o TMC2209. Assicuratevi che l'alimentatore esterno possa fornire la corrente necessaria per tutti i motori collegati simultaneamente in un sistema con più assi.