Premessa: questo è un motoriduttore con encoder , modello n. GB37Y3530-12V-90EN. È un potente motore a 12V con un cambio in metallo 90:1 e un encoder di quadratura integrato che fornisce una risoluzione di 64 conteggi per giro dell’albero motore, che corrisponde a 5756 conteggi per giro dell’albero di uscita del cambio. Queste unità hanno un albero di uscita a forma di D lungo 0,61″ di diametro 6 mm. Questo motore è progettato per l’uso a 12V, sebbene il motore possa iniziare a ruotare a tensioni basse come 1V. La piastra frontale ha sei fori di montaggio distribuiti uniformemente attorno al bordo esterno filettato per viti M3. Questi fori di montaggio formano un esagono regolare e i centri dei fori adiacenti sono distanti 15,5 mm. Questo motore è un’opzione ideale per il tuo progetto di robot mobile .
Avvertenza: non avvitare troppo nei fori di montaggio poiché le viti possono colpire gli ingranaggi. Il produttore consiglia di avvitare non più di 3mm (1/8″) nel foro della vite.
CARATTERISTICHE TECNICHE
- Gear ratio: 90:1
- No-load speed: 122 10% RPM
- No-load current: 350 mA
- Start Voltage: 1.0 V
- Stall Torque: 38 Kg.com
- Stall Current: 7 A
- Insulation resistance: 20 M Ω
- EncoderOperating Voltage: 5 V
- Encoder type: Hall
- Encoder Resolution: 16CPR(motor shaft)/1440CPR(gearbox shaft)
- Weight: 205g
LISTA MATERIALI
-
Metal DC Geared Motor w/Encoder – 12V 122RPM 38Kg.cm€45.99
-
KIT 30 Jumer (M/F) (M/M) (F/F)€7.50
-
DFRduino UNO R3€18.50
-
Prodotto in venditaCavo USB A – B€1.25
-
Box for Arduino€10.00
SCHEMA DI COLLEGAMENTO
INTERRUPT PORTE SCHEDE ARDUINO
CODICE DI ESEMPIO
//The sample code for driving one way motor encoder
const byte encoder0pinA = 2;//A pin -> the interrupt pin 0
const byte encoder0pinB = 4;//B pin -> the digital pin 4
byte encoder0PinALast;
int duration;//the number of the pulses
boolean Direction;//the rotation direction
void setup()
{
Serial.begin(57600);//Initialize the serial port
EncoderInit();//Initialize the module
}
void loop()
{
Serial.print("Pulse:");
Serial.println(duration);
duration = 0;
delay(100);
}
void EncoderInit()
{
Direction = true;//default -> Forward
pinMode(encoder0pinB,INPUT);
attachInterrupt(0, wheelSpeed, CHANGE);
}
void wheelSpeed()
{
int Lstate = digitalRead(encoder0pinA);
if((encoder0PinALast == LOW) && Lstate==HIGH)
{
int val = digitalRead(encoder0pinB);
if(val == LOW && Direction)
{
Direction = false; //Reverse
}
else if(val == HIGH && !Direction)
{
Direction = true; //Forward
}
}
encoder0PinALast = Lstate;
if(!Direction) duration ;
else duration--;
}
Buon Progetto.