-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupyL298.py
114 lines (94 loc) · 1.96 KB
/
upyL298.py
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#Realizada por: José Luis Laica Cornejo
#Para: FunPython
#Guayaquil - Ecuador 2019
"""
Habilitamos el manejo de PWM en los
pines ENA y ENB
"""
import time
import machine
from machine import Pin
#Led por incluido por default en el board del ESP32 dev Kit
led = Pin(2,Pin.OUT)
#Configuraciòn de pines oara el ESP32 dev kit
ENA = Pin(13,Pin.OUT)
IN1 = Pin(12,Pin.OUT)
IN2 = Pin(14,Pin.OUT)
IN3 = Pin(27,Pin.OUT)
IN4 = Pin(26,Pin.OUT)
ENB = Pin(25,Pin.OUT)
#Seteo inicial de los pines
ENA.value(0)
IN1.value(0)
IN2.value(0)
IN3.value(0)
IN4.value(0)
ENB.value(0)
#Seteo de frecuencia de trabajo
freq=1000
def retro_m1(vel_m1):
#Habilito Motor 1
#ENA.value(1)
ena_pwm=machine.PWM(ENA)
#Dirección1
IN1.value(1)
IN2.value(0)
ena_pwm.freq(1000)
ena_pwm.duty(vel_m1)
def retro_m2(vel_m2):
#Habilito Motor 2
#ENB.value(1)
enb_pwm=machine.PWM(ENB)
#Dirección1
IN3.value(0)
IN4.value(1)
enb_pwm.freq(freq)
enb_pwm.duty(vel_m2)
def avanza_m1(vel_m1):
ena_pwm=machine.PWM(ENA)
IN1.value(0)
IN2.value(1)
ena_pwm.freq(freq)
ena_pwm.duty(vel_m1)
def avanza_m2(vel_m2):
#Habilito Motor 2
enb_pwm=machine.PWM(ENB)
#Direccion2
IN3.value(1)
IN4.value(0)
enb_pwm.freq(500)
enb_pwm.duty(vel_m2)
def stop_m1():
ENA.value(0)
#Paro
IN1.value(0)
IN2.value(0)
def stop_m2():
ENB.value(0)
#Paro
IN3.value(0)
IN4.value(0)
def stop_all():
ENA.value(0)
ENB.value(0)
IN1.value(0)
IN2.value(0)
IN3.value(0)
IN4.value(0)
def giro_sent_1(): #derecha.
avanza_m1()
stop_m2()
def giro_sent_2(): #izquierda.
avanza_m2()
stop_m1()
#Inicia la secuencia que deseamos que realice
#Para una frecuecia de 1kz se requiere un minimo
#de ciclo de trabajo de 400 para poder salir de la
#inercia
for i in range(40,50):
#avanza_m1(10*i)
#avanza_m2(10*i)
#retro_m1(10*i)
retro_m2(10*i)
time.sleep_ms(500)
print(i)