-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDcMotor.cpp
executable file
·59 lines (41 loc) · 1.71 KB
/
DcMotor.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/* DcMotor.cpp- Library for control of dc motor.
Created by J.Campos for Loleando.com, December 21, 2012
www.loleando.com
Released for personal project
*/
/* DcMotor.cpp- Libreria para el control de un motor DC.
Creada por J.Campos para Loleando.com, 21 Diciembre de 2012
www.loleando.com
Desarrollada para proyecto personal
*/
#include "DcMotor.h"
#include "Arduino.h"
DcMotor::DcMotor (int pinVelocidad, int pin1, int pin2) { //usamos 3 pines, el pin enable del driver para la velocidad, y los 2 de los motores
_pin1 = pin1;
_pin2 = pin2;
_pinVelocidad = pinVelocidad; //Pin de PWM usado
pinMode(_pin1, OUTPUT); //ponemos los pines del motor como OUTPUT
pinMode(_pin2, OUTPUT);
pinMode(_pinVelocidad, OUTPUT); //tambien ponemos el pin de PWM como OUTPUT, si no usamos el PWM ser� o 5V o 0V
}
void DcMotor::avance(int velocidad) {
if (velocidad >255){
velocidad = 255; //con esto la velocidad nunca superara al maximo de la placa
}
digitalWrite(_pin1, HIGH); //Al avanzar usamos logica 1-0, donde
digitalWrite(_pin2, LOW);
analogWrite(_pinVelocidad, velocidad); //la velocidad va de 0 a 255 (0-> OV, 255->5V)
//y se manda al pin enable del driver
}
void DcMotor::parar() {
digitalWrite(_pin1, LOW); //Para parar dejamos de mandar se�al usando
digitalWrite(_pin2, LOW); //la logica 00
}
void DcMotor::retroceso(int velocidad) {
if (velocidad >255){
velocidad = 255; //con esto la velocidad nunca superara al maximo de la placa
}
digitalWrite(_pin1, LOW); //para ir al sentido contrario cambiamos la polaridad
digitalWrite(_pin2, HIGH); //siendo 0-1
analogWrite(_pinVelocidad, velocidad); //y se manda al pin enable del driver
}