ESP_IOT
v2.5
IOT ESP Coding
L9110S_DCStepperClass.cpp
Go to the documentation of this file.
1
/// \link L9110S_DCStepperStepperClass
2
// L9110S_DCStepperClass.cpp
3
//
4
//
5
// Created by Scott Moody on 5/19/25.
6
//
7
8
#include "
L9110S_DCStepperClass.h
"
9
10
// from Dispense it calls getFeederType_mainModule()
11
#include "
StepperModule.h
"
12
13
//#include "TimerDelayClass.h"
14
//! create instance of the timer class
15
TimerDelayClass
*
_timerDelayClass_L9110S_DCStepperClass
;
16
17
//! default .. this could be set via Preferences (TODO)
18
float
_delaySeconds_L9110S_DCStepper_setting
= 0.5;
19
20
/******************stepper declarations******************************/
21
22
L9110S_DCStepperClass::L9110S_DCStepperClass
(
char
*config) :
MotorStepperClassType
(config)
23
{
24
SerialDebug.printf(
"L9110S_DCStepperClass init %s\n"
, config);
25
_timerDelayClass_L9110S_DCStepperClass
=
new
TimerDelayClass
(
_delaySeconds_L9110S_DCStepper_setting
);
26
}
27
28
//! This works with the ESP_M5
29
//! 7.9.25 after F1 movie (make Brad Pitt Great Again)
30
//! hard coded .. unless changed via Sensors message
31
//! overridded by _pin1 _pin2
32
const
int
IN1_PIN
= 21;
//IN1 on the ULN2003 Board, BLUE end of the Blue/Yellow motor coil
33
const
int
IN2_PIN
= 25;
//IN2 on the ULN2003 Board, PINK end of the Pink/Orange motor coil
34
35
36
//https://randomnerdtutorials.com/esp32-pwm-arduino-ide/
37
38
/************* Set all motor pins off which turns off the motor ************************************************/
39
40
//! stop the motor
41
void
L9110S_DCStepperClass::stop_MotorStepper
()
42
{
43
SerialDebug.println(
"L9110S_DCStepperClass::stop_MotorStepper"
);
44
//! 7.9.25 if the pin was set use it otherwise use the hard coded values
45
//! LOW is off
46
digitalWrite(
_pin1
, LOW);
47
digitalWrite(
_pin2
, LOW);
48
49
//!user timer class instance
50
_timerDelayClass_L9110S_DCStepperClass
->
stopDelay
();
51
}
52
53
boolean
_isSetup_L9110S_DCStepper
=
false
;
54
55
//! These are called from StepperModule
56
//!Prepare motor controller
57
void
L9110S_DCStepperClass::setup_MotorStepper
()
58
{
59
if
(
_isSetup_L9110S_DCStepper
)
60
return
;
61
62
SerialDebug.println(
"L9110S_DCStepperClass::setup_MotorStepper"
);
63
SerialDebug.printf(
"PINS = %d, %d\n"
,
_pin1
,
_pin2
);
64
//! 7.9.25 if the pin was set use it otherwise use the hard coded values
65
if
(
_pin1
== 0)
66
{
67
_pin1
=
IN1_PIN
;
68
_pin2
=
IN2_PIN
;
69
SerialDebug.printf(
"NULL PINS setting to = %d, %d\n"
,
_pin1
,
_pin2
);
70
}
71
72
//! set output pins
73
pinMode(
_pin1
, OUTPUT);
74
pinMode(
_pin2
, OUTPUT);
75
76
//! stop the motor (or something) THis seems to be working.. the LOW worked sometimes..
77
for
(
int
i=0; i< 3; i++)
78
{
79
digitalWrite(
_pin1
, LOW);
80
digitalWrite(
_pin2
, LOW);
81
}
82
83
//! 5.3.25 trying to figure out the PIN use
84
registerPinUse_mainModule
(
_pin1
,
"IN1_PIN"
,
"L9110S_DCStepperClass"
,
false
);
85
registerPinUse_mainModule
(
_pin2
,
"IN2_PIN"
,
"L9110S_DCStepperClass"
,
false
);
86
87
_isSetup_L9110S_DCStepper
=
true
;
88
}
89
90
//!This will advance the stepper clockwise once by the angle specified in SetupStepper. Example 16 pockets in UNO is 22.5 degrees
91
//!This is the FEED message .. the comments mention the Stepper Motor .. which this isn't
92
void
L9110S_DCStepperClass::start_MotorStepper
()
93
{
94
SerialDebug.println(
"L9110S_DCStepperClass::start_MotorStepper"
);
95
L9110S_DCStepperClass::setup_MotorStepper
();
96
97
SerialDebug.println(
"***** L9110S_DCStepperStepper::Starting L9110S_DCStepper *********"
);
98
99
//! 5.15.25 try the async CLICK
100
//! click call 5.26.25 SYNC version
101
main_dispatchSyncCommand
(
SYNC_CLICK_SOUND
);
102
103
#define NEW_CODE_HERE
104
//Set the four pins to their proper state for the current step in the sequence,
105
//and for the current direction
106
107
if
(this->
isClockwiseDirection
())
108
{
109
digitalWrite(
_pin1
, LOW);
110
digitalWrite(
_pin2
, HIGH);
111
}
112
else
113
{
114
digitalWrite(
_pin1
, HIGH);
115
digitalWrite(
_pin2
, LOW);
116
}
117
118
//! grab this value.
119
_delaySeconds_L9110S_DCStepper_setting
=
getPreferenceFloat_mainModule
(
PREFERENCE_STEPPER_ANGLE_FLOAT_SETTING
);
120
121
//! start the delay.. (which at .5 might not be needed...)
122
_timerDelayClass_L9110S_DCStepperClass
->
startDelay
(
_delaySeconds_L9110S_DCStepper_setting
);
123
124
SerialDebug.println(
"**************** L9110S_DCStepperStepper::Ending L9110S_DCStepper *************"
);
125
}
126
127
128
//!loop the PTStepper (so timer can run)
129
void
L9110S_DCStepperClass::loop_MotorStepper
()
130
{
131
//!user timer class instance
132
if
(
_timerDelayClass_L9110S_DCStepperClass
->
delayFinished
())
133
{
134
SerialDebug.println(
"L9110S_DCStepperClass::delayFinished"
);
135
136
this->
stop_MotorStepper
();
137
}
138
139
}
IN1_PIN
const int IN1_PIN
Definition:
L9110S_DCStepperClass.cpp:32
_delaySeconds_L9110S_DCStepper_setting
float _delaySeconds_L9110S_DCStepper_setting
default .. this could be set via Preferences (TODO)
Definition:
L9110S_DCStepperClass.cpp:18
_isSetup_L9110S_DCStepper
boolean _isSetup_L9110S_DCStepper
Definition:
L9110S_DCStepperClass.cpp:53
_timerDelayClass_L9110S_DCStepperClass
TimerDelayClass * _timerDelayClass_L9110S_DCStepperClass
L9110S_DCStepperStepperClass
Definition:
L9110S_DCStepperClass.cpp:15
IN2_PIN
const int IN2_PIN
Definition:
L9110S_DCStepperClass.cpp:33
L9110S_DCStepperClass.h
main_dispatchSyncCommand
void main_dispatchSyncCommand(int syncCallCommand)
the main sync command (no parameters yet)
Definition:
MainModule.cpp:1063
registerPinUse_mainModule
void registerPinUse_mainModule(long pin, String pinName, String moduleName, boolean isI2C)
Definition:
MainModule.cpp:3370
SYNC_CLICK_SOUND
#define SYNC_CLICK_SOUND
Definition:
MainModule.h:258
getPreferenceFloat_mainModule
float getPreferenceFloat_mainModule(int preferenceID)
called to set a preference (which will be an identifier and a string, which can be converted to a num...
Definition:
PreferencesController.cpp:497
PREFERENCE_STEPPER_ANGLE_FLOAT_SETTING
#define PREFERENCE_STEPPER_ANGLE_FLOAT_SETTING
Definition:
PreferencesController.h:22
StepperModule.h
L9110S_DCStepperClass::loop_MotorStepper
void loop_MotorStepper()
loop the PTStepper (so timer can run)
Definition:
L9110S_DCStepperClass.cpp:129
L9110S_DCStepperClass::start_MotorStepper
void start_MotorStepper()
starts the PTStepper
Definition:
L9110S_DCStepperClass.cpp:92
L9110S_DCStepperClass::stop_MotorStepper
void stop_MotorStepper()
stops motor
Definition:
L9110S_DCStepperClass.cpp:41
L9110S_DCStepperClass::setup_MotorStepper
void setup_MotorStepper()
setup the PTStepper
Definition:
L9110S_DCStepperClass.cpp:57
L9110S_DCStepperClass::L9110S_DCStepperClass
L9110S_DCStepperClass(char *config)
constructor
Definition:
L9110S_DCStepperClass.cpp:22
MotorStepperClassType
An mostly virtual class.
Definition:
MotorStepperClassType.h:15
MotorStepperClassType::isClockwiseDirection
boolean isClockwiseDirection()
returns if clockwise
Definition:
MotorStepperClassType.cpp:47
MotorStepperClassType::_pin2
int _pin2
pin2
Definition:
MotorStepperClassType.h:61
MotorStepperClassType::_pin1
int _pin1
Definition:
MotorStepperClassType.h:59
TimerDelayClass
An concrete class.
Definition:
TimerDelayClass.h:14
TimerDelayClass::startDelay
void startDelay(float delayAmountSeconds)
starts delay calculation
Definition:
TimerDelayClass.cpp:40
TimerDelayClass::delayFinished
boolean delayFinished()
whether the currently delay is finished, false if not running at all
Definition:
TimerDelayClass.cpp:28
TimerDelayClass::stopDelay
void stopDelay()
stops delay
Definition:
TimerDelayClass.cpp:19
src
StepperModule
L9110S_DCStepperClass.cpp
Generated on Tue Aug 19 2025 13:00:32 for ESP_IOT by
1.9.5