HB-25 program?
in Propeller 1
I an working with the program HB-25 motor controller object by C J v1.4 . I am trying to find the pin out for this program but can find nothing. The documentation given is just not getting through to me. What am I missing???? 13 july 2019(sat)
Comments
HB-25 pins (you need 'W' to control the HB-25 and 'B' for ground). In this case R is not connected...
From the CJ_HB25_014.spin code:
' HB-25 motor controller object By CJ ' v1.4 (optional) ' first second ' propeller 1KΩ HB-25 HB-25 ' pin ──────────────────── W ────────────────────────────── W ' not connected R not connected R ' GND ────────────────────── B ────────────────────────────── B '(propeller ground) J present J removed ' +12-power supply for motors +12-power supply for motors ' GND-ground(motor power supply) GND-ground(motor power supply) ' M1-motor terminal───┳──┐_ M1-motor terminal───┳──┐_ ←poor drawing of motor ' M2-motor terminal───┻──┘ M2-motor terminal───┻──┘ ' ' IMPORTANT: M1 should be connected to one terminal on the motor you are using, :IMPORTANT ' IMPORTANT: M2 should be connected to the other terminal on the same motor :IMPORTANT ... config's definition: pub config(pin1, mode1, state1) 'pin, 0-single 1-dual, 0-manual 1-auto refresh, returns ID of refresh cog Your code: CON thePin = 14 ' Propeller pin 14 (use any pin that you desire) theMode = 0 ' single mode theState = 0 ' manual refresh OBJ hb : CJ_HB25_014.spin PUB main myCode hb.config(thePin, theMode, theState) ' other code
That Object has 4 PUBlic Methods that can be used by your program.
Config
Set_Motor1
Set_Motor2
Pulse_Motors
pub config(pin1, mode1, state1) 'pin, 0-single 1-dual, 0-manual 1-auto refresh, returns ID of refresh cog pub set_motor1(pulse1) 'set first HB-25 [1000-2000] pub set_motor2(pulse2) 'set second HB-25(ignored in single mode) [1000-2000] pub pulse_motors 'send pulse(s) to HB-25(s)
Pulse_Motors is the only Method that doesn't use Parameters.
Config needs a Pin number, Mode (0 for single or 1 for dual), and a State (0 for manual or 1 for auto refresh)
Set_Motor1 and Set_Motor2 need a Pulse rate from 1000 to 2000 since the code will limit values to this range.
pulse1 #>= 1000 'limit pulses to valid values pulse1 <#= 2000
Referring to the code segment dgately posted.
The CONstants section are for any values that will not change such as Pin numbers.
The OBJects section is for any Objects that your program will use such as Parallax Serial Terminal.
HB will be what your program uses for the HB25 Object, but the actual Object is called CJ_HB25_014.spin
Your program will then have a series of PUBlic or PRIvate Methods depending on what it is doing.
PUBlic Methods can be called by another program will PRIvate Objects can only be used in the same program they are in.
I like to create a Setup or Initialization Method.
' HB25 Object Test Code ' *** This is a Comment. *** CON ' Constant Declarations HB25_Pin = 14 ' The HB25 is connected to Pin 14 SingleMode = 0 ' Use only a single motor DualMode = 1 ' Use both motors HB25_Mode = SingleMode ' Set the HB25 to use only a single motor ManualState = 0 ' The HB25 State is manual refresh AutoState = 1 ' The HB25 state is auto-refresh HB25_State = AutoState ' Set the HB25 state to manual refresh M1_Pulse = 1500 ' Motor 1 Pulse rate (1000 - 2000) VAR ' Variable Declarations ' None at this time DAT ' Data (EEPROM) Declarations ' None at this time OBJ ' Object Declarations HB25 : CJ_HB25_014.spin ' HB25 Object PUB Initialization ' Initialize the HB25 HB25.Config(HB25_Pin, HB_25_Mode, HB25_State) ' Configure the HB25 HB25.Set_Motor1(M1_Pulse) ' Set the Motor 1 Pulse rate PUB Main ' Main Method (Yours) REPEAT ' Repeat forever ' Place any code to repeat AT LEAST 1 space under it. HB25.Pulse_Motors ' Pulse the Motor waitcnt (clkfreq/2 + cnt) ' 1/2 second delay ' Any code here will not REPEAT because it is not under REPEAT
CONstants allow you to quickly change the code.