Sale!

Micro DC Motor with Gearbox and Optical Encoder 5V 150rpm

Original price was: 3,12 €.Current price is: 2,71 €. Excluding VAT

Micro DC motor with gearbox and optical encoder 5V 150rpm

Available on back-order

Categories: ,

Description

Micro DC motor with gearbox and optical encoder 5V 150rpm

This module consists of a 5V DC micro motor with a mechanical gearbox that reduces the motor’s rotational speed to approximately 150 revolutions per minute (rpm), thereby increasing the available torque. This type of motor is ideal for applications requiring slow and precise movements. Key features:
– Operating voltage: 5V DC
– Nominal rotational speed: around 150 rpm (at full load)
– Integrated mechanical gearbox (gearbox) for torque increase
– Integrated optical encoder: provides digital pulses to measure the motor shaft rotation, useful for position, speed, and direction control
– Generally two signals (A and B) for quadrature decoding (optional)
– Compact dimensions, suitable for small robots, automation, and DIY projects

How the optical encoder works
The optical encoder mounted on the motor shaft generates digital pulses every time the shaft rotates a certain fraction of a turn. By counting these pulses, the precise speed or angular position of the motor can be measured.

Hardware connections with Arduino
– Vcc (5V) pin of the module: motor power (5V)
– GND: common ground
– Motor+ and Motor- pins: motor output for powering the motor (can be connected via a motor driver or directly if the consumption is low)
– Encoder A: digital signal from the encoder (output pin A)
– Encoder B (if present): digital signal from the encoder (output pin B)

Basic connection diagram
Power the motor and module with 5V from Arduino or an external power supply
– Connect the module GND to Arduino GND
– Connect the encoder signals to Arduino digital pins (e.g., pins 2 and 3)
– To control rotation, use a motor driver (L298N, L293D, DRV8833, etc.) connected to Arduino

Programming guide with Arduino
– Objective: Count encoder pulses to measure speed and position
– Control motor speed and direction via PWM and motor driver
– Example code snippet: reading encoder and controlling motor
// Define pins
const int encoderPinA = 2; // Encoder A connected to pin 2 (interrupt)
const int encoderPinB = 3; // Encoder B connected to pin 3 (interrupt)
const int motorPinPWM = 9; // PWM pin for speed control
const int motorPinDir = 8; // Pin for direction control
volatile long encoderCount = 0; //

Full description (Italian original)

The full description is shown below in Italian while the English translation is being completed.


Descrizione del modulo

Modulo Micro motore elettrico con riduttore di giri ed encoder ottico 5Vcc 150rpm

Il modulo è composto da un micro motore elettrico in corrente continua (DC) da 5V, dotato di un riduttore meccanico che permette di ridurre la velocità di rotazione del motore fino a circa 150 giri al minuto (rpm), aumentando così la coppia disponibile. Questo tipo di motore è ideale per applicazioni che richiedono movimenti lenti e precisi.

Caratteristiche principali:

  • Tensione di funzionamento: 5 V DC
  • Velocità di rotazione nominale: circa 150 rpm (a pieno carico)
  • Riduttore meccanico integrato (gearbox) per aumento della coppia
  • Encoder ottico integrato: fornisce impulsi digitali per misurare la rotazione dell’albero del motore, utile per controllare posizione, velocità e direzione
  • Encoder generalmente con due segnali (A e B) per la decodifica quadratura (facoltativo)
  • Dimensioni compatte, adatto a piccoli robot, automazioni, progetti DIY

Come funziona l’encoder ottico

L’encoder ottico montato sull’albero del motore genera impulsi digitali ogni volta che l’albero ruota di una certa frazione di giro. Contando questi impulsi è possibile misurare con precisione la velocità o la posizione angolare del motore.


Collegamenti hardware con Arduino

Pin del modulo

  • Vcc (5V): Alimentazione motore (5V)
  • GND: Massa comune
  • Motore+ e Motore-: Uscite motore per alimentare il motore (può essere collegato tramite un driver motore o direttamente se il consumo è basso)
  • Encoder A: Segnale digitale dall’encoder (pin output A)
  • Encoder B (se presente): Segnale digitale dall’encoder (pin output B)

Schema di collegamento base

  • Alimentare il motore e il modulo con 5V da Arduino o da alimentatore esterno
  • Collegare GND del modulo a GND di Arduino
  • Collegare i segnali encoder ai pin digitali di Arduino (es. pin 2 e 3)
  • Per controllare la rotazione, utilizzare un driver motore (L298N, L293D, DRV8833 ecc.) collegato a Arduino

Guida alla programmazione con Arduino

Obiettivo

  • Contare gli impulsi dell’encoder per misurare la velocità e la posizione
  • Controllare la velocità e la direzione del motore tramite PWM e driver motore

Codice esempio base: lettura encoder e controllo motore

// Definizione pin
const int encoderPinA = 2;    // Encoder A collegato al pin 2 (interrupt)
const int encoderPinB = 3;    // Encoder B collegato al pin 3 (interrupt)
const int motorPinPWM = 9;    // Pin PWM per controllo velocità
const int motorPinDir = 8;    // Pin per controllo direzione

volatile long encoderCount = 0;  // Contatore impulsi encoder
int motorSpeed = 150;            // Velocità motore (0-255)

void setup() {
  pinMode(encoderPinA, INPUT_PULLUP);
  pinMode(encoderPinB, INPUT_PULLUP);
  pinMode(motorPinPWM, OUTPUT);
  pinMode(motorPinDir, OUTPUT);

  // Attiva interrupt su pin encoder A
  attachInterrupt(digitalPinToInterrupt(encoderPinA), encoderISR, CHANGE);

  Serial.begin(9600);
}

void loop() {
  // Controllo motore: velocità e direzione
  digitalWrite(motorPinDir, HIGH);       // Direzione avanti
  analogWrite(motorPinPWM, motorSpeed);  // Imposta velocità

  // Stampa conteggio encoder ogni secondo
  static unsigned long lastPrint = 0;
  if (millis() - lastPrint > 1000) {
    noInterrupts();
    long count = encoderCount;
    interrupts();
    Serial.print("Encoder count: ");
    Serial.println(count);
    lastPrint = millis();
  }
}

// Interrupt service routine per encoder
void encoderISR() {
  int b = digitalRead(encoderPinB);
  if (digitalRead(encoderPinA) == b) {
    encoderCount++;
  } else {
    encoderCount--;
  }
}

Spiegazione del codice

  • L’encoder fornisce impulsi sul pin A (interrupt).
  • Nel encoderISR si legge anche il pin B per determinare la direzione di rotazione.
  • Il contatore encoderCount si incrementa o decrementa a seconda della rotazione.
  • Nel loop principale si imposta la velocità e direzione del motore con PWM e pin digitale.
  • Ogni secondo si stampa il valore del contatore per monitorare la rotazione.

Examples di utilizzo

  • Robotica: controllo preciso della posizione delle ruote
  • Automazione: posizionamento di assi lineari o rotativi
  • Progetti didattici: studio della velocità e controllo motore
  • Sistemi di feedback: controllo di velocità con PID

Tutorial: Come usare Micro motore elettrico con riduttore di giri ed encoder ottico

Questo micro motore elettrico con riduttore di giri ed encoder ottico è ideale per progetti che richiedono una precisione di movimento elevata, come robotica o meccanismi automatizzati. È particolarmente adatto ai maker principianti e intermedi grazie alla sua facilità d’uso.

Cosa serve

  • Arduino Uno
  • Cavo USB A-Micro B
  • Breadboard
  • Connessione di potenziometro (per test)
  • LED

Passi

  1. Collegare il micro motore al breadboard, verificando la polarità.
  2. Collegare l’Arduino Uno alla propria computer tramite cavo USB A-Micro B.
  3. Installare i driver necessari per Arduino nel proprio sistema operativo (se non sono già installati).
  4. Caricare uno sketch di prova sul micro motore usando Arduino IDE, verificando le specifiche del datasheet.
  5. Collegare l’encoder ottico al breadboard e all’Arduino Uno secondo il datasheet.
  6. Verificare la connessione del potenziometro per regolare la velocità del motore.
  7. Testare il funzionamento del motore con uno sketch semplice che ruoti il motore in senso orario e antiorario.
  8. Ottimizzare lo sketch di prova basandosi sulle esigenze specifiche del progetto.

Codice di esempio

// Includere le librerie necessarie
#include <Servo.h>

// Creare un oggetto servo per il motore
Servo myMotor;

void setup() {
  // Collegare il motore al pin PWM dell'Arduino
  myMotor.attach(9);
}

void loop() {
  // Ruotare il motore in senso orario e antiorario
  for(int pos = 0; pos <= 180; pos += 1) { 
    myMotor.write(pos); 
    delay(15); 
  }
  for(int pos = 180; pos >= 0; pos -= 1) {
    myMotor.write(pos);
    delay(15);
  }
}

Mini-progetto

Creare un piccolo robot che si muove in base ai comandi dati tramite il potenziometro. Il robot dovrebbe essere in grado di girarsi su se stesso e spostarsi avanti e indietro.

Errori comuni

  • Collegamento errato del motore al breadboard.
  • Non caricare lo sketch corretto sul microcontrollore.
  • Errore nella lettura dei dati dal potenziometro.
  • Manca la configurazione dell’encoder ottico nel codice Arduino.

Accessori consigliati

  • Arduino Uno
  • Breadboard
  • Connessione di potenziometro
  • LED

Domande frequenti

Come posso regolare la velocità del motore?
Utilizza un potenziometro per modificare il valore PWM inviato al motore.

Qual è la differenza tra encoder ottico e riduttore di giri?
L’encoder ottico misura la posizione esatta, mentre il riduttore di giri regola la velocità del motore.

Il mio motore non si accende. Cosa devo fare?
Verifica tutti i collegamenti e controlla che l’alimentazione sia corretta.

Reviews

There are no reviews yet.

Be the first to review “Micro DC Motor with Gearbox and Optical Encoder 5V 150rpm”

Your email address will not be published. Required fields are marked *