Board-dat/SDR/SDR1059-dat/2025-12-17-12-30-38.png
... ...
Binary files /dev/null and b/Board-dat/SDR/SDR1059-dat/2025-12-17-12-30-38.png differ
Board-dat/SDR/SDR1059-dat/2025-12-17-12-32-25.png
... ...
Binary files /dev/null and b/Board-dat/SDR/SDR1059-dat/2025-12-17-12-32-25.png differ
Board-dat/SDR/SDR1059-dat/SDR1059-dat.md
... ...
@@ -11,6 +11,16 @@ pin definitions
11 11
12 12
![](2025-06-01-17-45-55.png)
13 13
14
+dimension
15
+
16
+![](2025-12-17-12-30-38.png)
17
+
18
+
19
+schematic
20
+
21
+![](2025-12-17-12-32-25.png)
22
+
23
+
14 24
15 25
16 26
## Applications, category, tags, etc.
Board-dat/SVC/SVC1039-DAT/svc1039-dat.md
... ...
@@ -58,7 +58,7 @@ UART - [[serial-dat]]
58 58
#define relay 1
59 59
#define led 0
60 60
61
-## Library
61
+## demo code / video
62 62
63 63
demo code please find at [[tinyAvR-dat]]
64 64
Chip-dat/toshiba-dat/TB6612-dat/TB6612-dat.md
... ...
@@ -34,6 +34,8 @@ extra control : STBY
34 34
35 35
![](2025-06-15-13-27-08.png)
36 36
37
+- [[mosfet-dat]]
38
+
37 39
![](2025-06-01-17-46-15.png)
38 40
39 41
- [[power-protection-Vmotor-dat]]
Network-dat/wifi-dat/WIFI-DAT.md
... ...
@@ -20,6 +20,8 @@
20 20
- AP = access point
21 21
- STA = station
22 22
23
+Access point (ap) is the thing you connect to, e.g. wireless router. wireless/mobile station (sta) is your end user device, e.g. your phone.
24
+
23 25
24 26
- [[espressif-dat]] - [[esp8266-dat]] - [[ESP32-dat]]
25 27
Network-dat/wifi-dat/wifi-motor-control-dat.md
... ...
@@ -0,0 +1,17 @@
1
+
2
+
3
+# wifi-motor-control-dat.md
4
+
5
+- [[PWM-motor-control-dat]]
6
+
7
+https://github.com/lacour-vincent/wifi-car-esp8266 - 92
8
+
9
+https://github.com/lily-osp/esp-robot-control - 1
10
+
11
+https://github.com/thisistamim/WIFI-Control-Car - 16
12
+
13
+
14
+
15
+## ref
16
+
17
+- [[motor-driver-dat]]
... ...
\ No newline at end of file
Tech-dat/PWM-dat/PWM-motor-control-dat/PWM-motor-control-dat.md
... ...
@@ -0,0 +1,127 @@
1
+# PWM-motor-control-dat
2
+
3
+
4
+## code
5
+
6
+
7
+- [[wifi-dat]]
8
+
9
+
10
+
11
+
12
+## Basics
13
+
14
+A brushed DC motor (e.g. a 130-size motor) has speed that mainly depends on:
15
+- the average voltage applied across the motor
16
+- the mechanical load on the motor
17
+
18
+The essence of PWM (Pulse Width Modulation) is:
19
+- using a high-frequency switching square wave to change the effective (average) voltage seen by the motor
20
+
21
+For example (assuming a 5 V supply):
22
+
23
+| PWM duty | Equivalent voltage | Speed |
24
+|---------:|-------------------:|------------|
25
+| 0% | 0 V | stopped |
26
+| 25% | ≈1.25 V | very slow |
27
+| 50% | ≈2.5 V | medium |
28
+| 100% | 5 V | full speed |
29
+
30
+Note: due to rotor inertia and the motor's inductance, the motor won't follow the PWM pulses as on/off flashes — it rotates smoothly.
31
+
32
+---
33
+
34
+## Warning: Do NOT connect a PWM pin directly to the motor
35
+
36
+Very important:
37
+
38
+❌ Do NOT connect an MCU / Arduino / ESP PWM output pin directly to a 130 motor.
39
+
40
+Reason:
41
+- A 130 motor can draw a start (stall) current of around 1 A to 2 A.
42
+- A PWM pin can only source/sink a few milliamps.
43
+- Connecting directly will likely burn the IO pin or cause the MCU to reset.
44
+
45
+---
46
+
47
+## Recommended Solutions
48
+
49
+### Solution 1 — PWM + N-channel MOSFET (most recommended)
50
+
51
+Schematic (conceptual):
52
+
53
+```
54
+MCU PWM --- R_gate (100 Ω ~ 1 kΩ) --- Gate (N-MOSFET)
55
+
56
+Drain --- Motor --- +V
57
+
58
+Source --- GND
59
+```
60
+
61
+Motor: reverse (flyback) diode across motor terminals (cathode to +V, anode to MOSFET drain)
62
+
63
+Key points:
64
+- Use a logic-level N-channel MOSFET (fully enhances at logic-level gate voltage): examples — AO3400, IRLZ44N, IRLZ34N.
65
+- Add a flyback diode across the motor to clamp inductive spikes: examples — 1N5819, SS14 (Schottky), FR107.
66
+- Place a small gate resistor (100 Ω ~ 1 kΩ) between the MCU PWM pin and the MOSFET gate to reduce ringing and limit gate charge current.
67
+- PWM frequency: typically 1 kHz ~ 20 kHz for small DC motors.
68
+
69
+Notes on diode orientation: the diode should be placed reverse-biased across the motor in normal operation (cathode to +V, anode to the MOSFET side) so it conducts when the MOSFET switches off.
70
+
71
+
72
+### Solution 2 — PWM + Motor Driver IC (easy, supports direction)
73
+
74
+Suitable for forward/reverse control plus speed control.
75
+
76
+Common driver ICs and notes:
77
+- L298N: old design, significant power loss (drop), but widely used.
78
+- TB6612FNG: very suitable for 130 motors (low loss, easy to use).
79
+- DRV8833: efficient for low-voltage motors.
80
+
81
+Control method:
82
+- PWM -> EN (enable)
83
+- IN1 / IN2 -> direction control
84
+
85
+
86
+### Solution 3 — Relay (NOT suitable for PWM)
87
+
88
+- Relays can only switch on/off and are not suitable for high-frequency PWM.
89
+- Using relays for PWM will cause contact chattering and quickly wear or burn the contacts.
90
+
91
+---
92
+
93
+## Summary
94
+
95
+- Use a MOSFET or motor driver IC between the MCU PWM pin and the motor.
96
+- Always include a flyback diode across the motor.
97
+- Choose a logic-level MOSFET and appropriate PWM frequency (1 kHz–20 kHz).
98
+- Avoid driving motors directly from MCU IO pins or using relays for PWM.
99
+
100
+## PWM frequency recommendations (important)
101
+
102
+| Frequency | Result |
103
+|---------:|--------|
104
+| < 200 Hz | Motor will produce audible humming |
105
+| 500 Hz – 5 kHz | Usable |
106
+| 5 kHz – 20 kHz | ✅ Best (inaudible) |
107
+| > 30 kHz | MOSFET heating increases |
108
+
109
+
110
+## Common problems and explanations
111
+
112
+Q: When I change PWM a little, the motor speed suddenly jumps?
113
+
114
+Possible causes:
115
+- Motor starting voltage threshold (there is a minimum voltage needed to overcome static friction)
116
+- Duty cycle too low to overcome friction or load
117
+- MOSFET is not a logic-level type and doesn't fully turn on at the MCU's gate voltage
118
+
119
+Solutions:
120
+- Ensure a minimum PWM duty (e.g., >= 20%) for reliable startup
121
+- Implement a soft-start by ramping PWM gradually
122
+- Use a proper logic-level MOSFET or a suitable motor driver IC
123
+
124
+
125
+## ref
126
+
127
+- [[motor-driver-dat]]
... ...
\ No newline at end of file
Tech-dat/acturator-dat/motor-dat/motor-dat.md
... ...
@@ -24,7 +24,7 @@ brushed
24 24
25 25
- [[motor-brushed-dat]] == Permanent Magnet Brushed DC Motor
26 26
27
-- [[reduction-Gear-Motor-dat]] - [[TT-motor-dat]] - [[MG540-dat]] - [[MG513-dat]]
27
+- [[reduction-Gear-Motor-dat]] - [[TT-motor-dat]] - [[MG540-dat]] - [[MG513-dat]] - [[reduction-Gear-Motor]]
28 28
29 29
- [[coreless-motor-dat]]
30 30
Tech-dat/acturator-dat/motor-driver-dat/motor-driver-code-dat/PWM-motor-esp-webserver-sta-1.ino.ino
... ...
@@ -0,0 +1,94 @@
1
+
2
+
3
+#include <ESP8266WiFi.h>
4
+#include <ESP8266WebServer.h>
5
+
6
+// ===== WiFi 配置 =====
7
+const char* ssid = "YOUR_SSID";
8
+const char* password = "YOUR_PASSWORD";
9
+
10
+// ===== GPIO 定义 =====
11
+const int PWM_PIN = D1; // PWM 控制速度 IO5
12
+const int DIR_PIN1 = D2; // 方向引脚1 IO4
13
+const int DIR_PIN2 = D3; // 方向引脚2 IO0
14
+
15
+// ===== Web Server =====
16
+ESP8266WebServer server(80);
17
+
18
+// ===== HTML Web 控制界面 =====
19
+const char html_page[] PROGMEM = R"rawliteral(
20
+<!DOCTYPE html><html>
21
+<head><title>ESP8266 Motor Control</title></head>
22
+<body>
23
+<h2>Motor Control</h2>
24
+<form action="/control">
25
+Speed: <input type="range" name="speed" min="0" max="1023"><br>
26
+Direction:
27
+<select name="dir">
28
+ <option value="fw">Forward</option>
29
+ <option value="rv">Reverse</option>
30
+</select><br>
31
+<input type="submit" value="Apply">
32
+</form>
33
+</body></html>
34
+)rawliteral";
35
+
36
+// ===== 处理 Web 请求 =====
37
+void handleRoot() {
38
+ server.send(200, "text/html", html_page);
39
+}
40
+
41
+void handleControl() {
42
+ if (server.hasArg("speed")) {
43
+ int speed = server.arg("speed").toInt(); // PWM 值 0-1023
44
+ analogWrite(PWM_PIN, speed);
45
+ }
46
+
47
+ if (server.hasArg("dir")) {
48
+ String d = server.arg("dir");
49
+ if (d == "fw") {
50
+ digitalWrite(DIR_PIN1, HIGH);
51
+ digitalWrite(DIR_PIN2, LOW);
52
+ } else {
53
+ digitalWrite(DIR_PIN1, LOW);
54
+ digitalWrite(DIR_PIN2, HIGH);
55
+ }
56
+ }
57
+
58
+ server.sendHeader("Location", "/");
59
+ server.send(302, "text/plain", "");
60
+}
61
+
62
+// ===== 初始化 =====
63
+void setup() {
64
+ Serial.begin(115200);
65
+
66
+ pinMode(PWM_PIN, OUTPUT);
67
+ pinMode(DIR_PIN1, OUTPUT);
68
+ pinMode(DIR_PIN2, OUTPUT);
69
+
70
+ // 默认停止
71
+ analogWrite(PWM_PIN, 0);
72
+ digitalWrite(DIR_PIN1, LOW);
73
+ digitalWrite(DIR_PIN2, LOW);
74
+
75
+ // 连接 WiFi
76
+ WiFi.mode(WIFI_STA);
77
+ WiFi.begin(ssid, password);
78
+ while (WiFi.status() != WL_CONNECTED) {
79
+ delay(500);
80
+ Serial.print(".");
81
+ }
82
+ Serial.println("");
83
+ Serial.print("Connected, IP: ");
84
+ Serial.println(WiFi.localIP());
85
+
86
+ // Web 服务
87
+ server.on("/", handleRoot);
88
+ server.on("/control", handleControl);
89
+ server.begin();
90
+}
91
+
92
+void loop() {
93
+ server.handleClient();
94
+}
... ...
\ No newline at end of file
Tech-dat/acturator-dat/motor-driver-dat/motor-driver-code-dat/motor-driver-code-dat.md
... ...
@@ -0,0 +1,22 @@
1
+
2
+# motor-driver-code-dat
3
+
4
+
5
+
6
+## drive by wifi and webserver
7
+
8
+- [[PWM-motor-esp-webserver-sta-1.ino]]
9
+
10
+- [[wifi-motor-control-dat]]
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+## ref
19
+
20
+- [[motor-driver-dat]]
21
+
22
+
Tech-dat/acturator-dat/motor-driver-dat/motor-driver-dat.md
... ...
@@ -19,11 +19,17 @@
19 19
20 20
- [[AC-mains-dat]] - [[motor-dat]] drive - [[IGBT-dat]]
21 21
22
+- [[PWM-dat]] - [[mosfet-dat]] - [[relay-dat]] control
22 23
24
+- control method - [[PWM-motor-control-dat]] - [[wifi-motor-control-dat]]
23 25
26
+- [[motor-driver-code-dat]]
24 27
25 28
## Board
26 29
30
+
31
+- [[stepper-driver-dat]]
32
+
27 33
- [[SDR1102-dat]] - [[SDR1109-dat]] - [[SDR1048-dat]] - [[SDR1059-dat]] - [[SDR1050-dat]]
28 34
29 35
- [[SDR1090-dat]] - [[SDR1079-dat]] - [[SDR1062-dat]]
... ...
@@ -40,14 +46,16 @@
40 46
41 47
- [[DRV8871-dat]] - [[SDR1117-dat]]
42 48
43
-- [[DRV8825-dat]] - [[SDR1040-dat]] - [[SDR1113-dat]]
44
-
45 49
- [[L293-dat]] - [[SDR1064-dat]]
46 50
47 51
- [[relay-dat]] control ==
48 52
49 53
- [[mosfet-dat]] and [[PWM-dat]] control == [[SDR1073-dat]]
50 54
55
+- [[stepper-driver-dat]]
56
+
57
+
58
+
51 59
## chips
52 60
53 61
- [[ti-motor-dat]]
... ...
@@ -61,23 +69,6 @@
61 69
- [[Infineon-dat]] - [[BTS7960-dat]]
62 70
63 71
64
-## stepper motor
65
-
66
-- [[stepper-dat]]
67
-
68
-- [[TB67H450-dat]] - [[TB6612-dat]] - [[toshiba-dat]]
69
-
70
-- [[A4988-dat]]
71
-
72
-- [[LV8729-dat]]
73
-
74
-- [[L293-dat]] - [[L298-dat]]
75
-
76
-- [[TI-motor-dat]] - [[DRV8833-dat]] - [[DRV8825-dat]] - [[drv8837-dat]] - [[drv8313-dat]] - [[DRV8871-dat]] - [[DRV8876-dat]] - [[DRV84x2-dat]]
77
-
78
-- [[ULN2003-dat]]
79
-
80
-
81 72
## and more
82 73
83 74
- [[MC33887-dat]]
... ...
@@ -92,6 +83,8 @@
92 83
93 84
## Comparison
94 85
86
+
87
+
95 88
TB6612FNG vs. L298N
96 89
97 90
| Feature | TB6612FNG | L298N |
... ...
@@ -110,15 +103,15 @@ TB6612FNG vs. L298N
110 103
111 104
more options
112 105
113
-| Chip/Module | Voltage Range | Continuous Current | PWM Freq. | Features & Notes |
114
-| ------------- | ------------- | ------------------- | ------------ | -------------------------------------------------------------------------- |
115
-| **TB6612FNG** | 2.5V – 13.5V | 1.2A/ch (3.2A peak) | Up to 100kHz | Efficient CMOS, low heat, great for small robots |
116
-| **DRV8833** | 2.7V – 10.8V | 1.5A/ch (2A peak) | Up to 250kHz | Compact, efficient, built-in protection, ideal for small DC motors |
117
-| **DRV8871** | 6.5V – 45V | 3.6A (6A peak) | ~100kHz | Single-channel, robust, good for mid-power motors |
118
-| **DRV8876** | 4.5V – 37V | 3.5A (5A peak) | ~100kHz | Smart current regulation, overtemp/short protection |
119
-| **MC33926** | 5V – 28V | 3A (5A peak) | Up to 20kHz | Automotive-grade, robust with fault reporting |
120
-| **VNH5019** | 5.5V – 24V | 12A (30A peak) | ~20kHz | High-power, onboard protection, great for large motors |
121
-| **BTN7960B** | 5.5V – 27V | 43A (55A peak) | ~25kHz | High-current half-bridge, excellent for industrial/heavy-duty applications |
106
+| Chip/Module | Voltage Range | Continuous Current | PWM Freq. | pros | Features & Notes |
107
+| ------------- | ------------- | ------------------- | ------------ | ---------------------------- | -------------------------------------------------------------------------- |
108
+| **TB6612FNG** | 2.5V – 13.5V | 1.2A/ch (3.2A peak) | Up to 100kHz | easy to use | Efficient CMOS, low heat, great for small robots |
109
+| **DRV8833** | 2.7V – 10.8V | 1.5A/ch (2A peak) | Up to 250kHz | low volts, high efficiencies | Compact, efficient, built-in protection, ideal for small DC motors |
110
+| **DRV8871** | 6.5V – 45V | 3.6A (6A peak) | ~100kHz | | Single-channel, robust, good for mid-power motors |
111
+| **DRV8876** | 4.5V – 37V | 3.5A (5A peak) | ~100kHz | | Smart current regulation, overtemp/short protection |
112
+| **MC33926** | 5V – 28V | 3A (5A peak) | Up to 20kHz | | Automotive-grade, robust with fault reporting |
113
+| **VNH5019** | 5.5V – 24V | 12A (30A peak) | ~20kHz | | High-power, onboard protection, great for large motors |
114
+| **BTN7960B** | 5.5V – 27V | 43A (55A peak) | ~25kHz | | High-current half-bridge, excellent for industrial/heavy-duty applications |
122 115
123 116
124 117
... ...
@@ -263,17 +256,17 @@ A DC motor reverses direction by reversing the polarity of the voltage applied t
263 256
264 257
## ✅ Quick Comparison Table
265 258
266
-| Chip/Module | Current | Voltage | Type | Notes |
267
-| ------------------------------- | ------------ | --------- | --------------- | ---------------------------- |
268
-| [[BTS7960-dat]] | 43A peak | ~24V | Half-Bridge | Needs 2 for full H-Bridge |
269
-| [[VNH2SP30-dat]] | 14A/30A peak | 5.5–16V | Full H-Bridge | Compact, good protection |
270
-| [[MC33932-dat]] | 5A/8A peak | 5–28V | Dual H-Bridge | Diagnostics and protection |
271
-| [[DRV84x2-dat]] | 6–12A | Up to 50V | Dual H-Bridge | High-efficiency PWM |
272
-| [[L298N-dat]] | 2A | Up to 46V | Dual H-Bridge | NOT for high current |
273
-| Sabertooth | Up to 120A | 6–30V | Dual H-Bridge | Best for industrial/robotics |
274
-| Cytron MD30C | 30A | 5–30V | Single H-Bridge | Reliable and simple |
275
-| IBT-2 | 43A | 6–27V | Full H-Bridge | BTS7960 module variant |
276
-| AMC8832 | 15A+ | Up to 50V | Full H-Bridge | Advanced high-efficiency |
259
+| Chip/Module | Current | Voltage | Type | Notes |
260
+| ---------------- | ------------ | --------- | --------------- | ---------------------------- |
261
+| [[BTS7960-dat]] | 43A peak | ~24V | Half-Bridge | Needs 2 for full H-Bridge |
262
+| [[VNH2SP30-dat]] | 14A/30A peak | 5.5–16V | Full H-Bridge | Compact, good protection |
263
+| [[MC33932-dat]] | 5A/8A peak | 5–28V | Dual H-Bridge | Diagnostics and protection |
264
+| [[DRV84x2-dat]] | 6–12A | Up to 50V | Dual H-Bridge | High-efficiency PWM |
265
+| [[L298N-dat]] | 2A | Up to 46V | Dual H-Bridge | NOT for high current |
266
+| Sabertooth | Up to 120A | 6–30V | Dual H-Bridge | Best for industrial/robotics |
267
+| Cytron MD30C | 30A | 5–30V | Single H-Bridge | Reliable and simple |
268
+| IBT-2 | 43A | 6–27V | Full H-Bridge | BTS7960 module variant |
269
+| AMC8832 | 15A+ | Up to 50V | Full H-Bridge | Advanced high-efficiency |
277 270
278 271
279 272
- [[NE555-motor-driver-dat]] - [[NE555-dat]]
Tech-dat/acturator-dat/motor-driver-dat/stepper-driver-dat/stepper-driver-dat.md
... ...
@@ -0,0 +1,31 @@
1
+
2
+# stepper-driver-dat
3
+
4
+- [[stepper-dat]]
5
+
6
+- [[DRV8825-dat]] - [[SDR1040-dat]] - [[SDR1113-dat]]
7
+
8
+
9
+
10
+
11
+
12
+## stepper motor
13
+
14
+- [[stepper-dat]]
15
+
16
+- [[TB67H450-dat]] - [[TB6612-dat]] - [[toshiba-dat]]
17
+
18
+- [[A4988-dat]]
19
+
20
+- [[LV8729-dat]]
21
+
22
+- [[L293-dat]] - [[L298-dat]]
23
+
24
+- [[TI-motor-dat]] - [[DRV8833-dat]] - [[DRV8825-dat]] - [[drv8837-dat]] - [[drv8313-dat]] - [[DRV8871-dat]] - [[DRV8876-dat]] - [[DRV84x2-dat]]
25
+
26
+- [[ULN2003-dat]]
27
+
28
+
29
+## ref
30
+
31
+- [[motor-driver-dat]]
... ...
\ No newline at end of file