# .';:cc;. # .,',;lol::c. # ;';lddddlclo # lcloxxoddodxdool:,. # cxdddxdodxdkOkkkkkkkd:. # .ldxkkOOOOkkOO000Okkxkkkkx:. # .lddxkkOkOOO0OOO0000Okxxxxkkkk: # 'ooddkkkxxkO0000KK00Okxdoodxkkkko # .ooodxkkxxxOO000kkkO0KOxolooxkkxxkl # lolodxkkxxkOx,. .lkdolodkkxxxO. # doloodxkkkOk .... .,cxO; # ddoodddxkkkk: ,oxxxkOdc'..o' # :kdddxxxxd, ,lolccldxxxkkOOOkkkko, # lOkxkkk; :xkkkkkkkkOOO000OOkkOOk. # ;00Ok' 'O000OO0000000000OOOO0Od. # .l0l.;OOO000000OOOOOO000000x, # .'OKKKK00000000000000kc. # .:ox0KKKKKKK0kdc,. # ... # # Author: peppe8o # Blog: https://peppe8o.com # Date: Dec 18th, 2022 # Version: 1.0 from machine import Pin, PWM from time import sleep pwmPIN=13 cwLPin=14 acwLPin=15 cwRPin=17 acwRPin=16 def motorMove(speed,direction,speedGP,cwGP,acwGP): if speed > 100: speed=100 if speed < 0: speed=0 Speed = PWM(Pin(speedGP)) Speed.freq(50) cw = Pin(cwGP, Pin.OUT) acw = Pin(acwGP, Pin.OUT) Speed.duty_u16(int(speed/100*65536)) if direction < 0: cw.value(0) acw.value(1) if direction == 0: cw.value(0) acw.value(0) if direction > 0: cw.value(1) acw.value(0) def move_f(speed): motorMove(speed,1,pwmPIN,cwRPin,acwRPin) motorMove(speed,1,pwmPIN,cwLPin,acwLPin) def move_b(speed): motorMove(speed,-1,pwmPIN,cwRPin,acwRPin) motorMove(speed,-1,pwmPIN,cwLPin,acwLPin) def move_r(speed): motorMove(speed,-1,pwmPIN,cwRPin,acwRPin) motorMove(speed,1,pwmPIN,cwLPin,acwLPin) def move_l(speed): motorMove(speed,1,pwmPIN,cwRPin,acwRPin) motorMove(speed,-1,pwmPIN,cwLPin,acwLPin) def move_stop(): motorMove(0,0,pwmPIN,cwRPin,acwRPin) motorMove(0,0,pwmPIN,cwLPin,acwLPin) # main program move_f(100) sleep(2) move_b(100) sleep(2) move_l(100) sleep(2) move_r(100) sleep(2) move_stop()