View Issue Details

IDProjectCategoryView StatusLast Update
0000211Microcontrollers, shields, automation, arduino[All Projects] Generalpublic2021-03-02 22:54
ReporterDigitalMy 
PrioritynormalSeveritymajorReproducibilityN/A
Status assignedResolutionopen 
Summary0000211: Control DC motors (fans) powered by 12V with ESP8266 modules
DescriptionThere are motor shields available, but they fit ATMEL only (5V)
Currently in wSmartHome we use 3.3V levels from ESP8266 chip.
Need to modify motor controller for 3.3V logic.
Possibly use MOSFET.
TagsNo tags attached.

Relationships

related to 0000212 assignedDigitalMy Microcontrollers, shields, automation, arduino Climate control devices powered by sensors data and central server 

Activities

DigitalMy

2017-02-21 01:12

administrator   ~0000473

Last edited: 2017-02-23 12:11

View 5 revisions

Tested MOS module IRF520.
Power source is 12V DC 5A.max.
On 3.3V signal it gives 5.2V to load. On 5.0V signal it gives 12.0V to load.
ESP8266, as follows, can give 1.0V.max. Need level shifting.

Found that ESP8266 chip pin A0 (ADC) cannot give any OUTPUT value. So, it is only analog input.

DigitalMy

2017-02-22 13:30

administrator   ~0000475

Last edited: 2017-02-22 22:21

View 14 revisions

Tested Adafruit v1 motor control shield for arduino UNO (has 13CNONK SN74HC595N chip + two L293D drivers),
with Wemos D1 R2 main board (3.3V levels).
Power supply connect to main board 12V 2A.max used. Jumper installed on the shield.

Shield pinout:

Side A, 2*6P:
Analog pins are not connected (6 pins: A0-A5, num A00-A05) - not supported by ESP8266.
VIN 09-12V (num A06) goes to jumper, power for motors.
GND (num A07-A08), joined.
05V (num A09), power for chip(s).
3.3V (num A10) not connected.
Reset (num A11) - has button.

Side D, 2*8P:
D00=RX=GPIO03, not connected
D01=TX=GPIO01, not connected
D02=IO=GPIO16, not connected
D03=IO,SCL=GPIO05, to IC1 p09 (L293D) =EN M2
D04=IO,SDA=GPIO04, to IC3 p11 (74HC595) =SRCLK
D05=IO,SCK=GPIO14, to IC2 p01 (L293D) =EN M4
D06=IO,MISO=GPIO12, to IC2 p09 (L293D) =EN M3 ->REASSIGN
D07=IO,MOSI=GPIO13, to IC3 p13 (74HC595) =OE
D08=IO,Pull-up=GPIO00, to IC3 p14 (74HC595) =SER
D09=IO,pull-up,BUILTIN_LED=GPIO02, to servo2 S-pin
D10=IO,pull-down,SS=GPIO15, to servo1 S-pin
D11=MOSI=GPIO13, to IC1 p01 (L293D) =EN M1 ->REASSIGN
D12=MISO=GPIO12, to IC3 p12 (74HC595) =RCLK
D13=SCK=GPIO14, not connected
D14=GND
D15= unused, not connected

So, original shield cannot be used on D1 R2 without modification, because GPIO13 and GPIO12 used twice (paralleled).
Mods:
Cut off D11 pin. Solder IC1-p01 to D09 pin instead.
Cut off D06 pin. Solder IC2-p09 to D02 pin instead.

DigitalMy

2017-02-23 00:22

administrator   ~0000476

Last edited: 2017-02-23 11:51

View 6 revisions

Tested M2:
Set max PWM=255
IC3-p04 (74HC595) -> IC1-p10 (L293D) ~ 4.3V
IC1-p09 (L293D) ~ 0.82V 1kHz
M2(+) ~ 3.5V , but expected 12V
12V goes from supply to IC1-p08 and IC2-p08 (L293D) noly (motor power load), but p16 is powered with 5.0V (chip power).

Motor makes sound. Input voltage is too low.

DigitalMy

2017-02-23 12:13

administrator   ~0000477

Last edited: 2021-03-02 22:54

View 4 revisions

Next: solder Pololu socket over D1 mini shield. Make common power from 12V DC in.
github.com
DMSMDS

On Mega2560 found SMD fuse "504S", on scheme L1812, line +5V.

DigitalMy

2017-04-02 21:41

administrator   ~0000502

Last edited: 2017-04-04 13:09

View 8 revisions

Tested ESP12E motor shield (with NodeMcu 1.0 type board),
it has L293DD driver with "special" connection to pins:
a row of IC - below driver:
R1 = 010 = 1 Ohm - pin.11 of L293DD (enable B) to "GND";
R2 = 102 = 1 kOhm - enable B to "D2" pin - PWM B;
T3 = switch for direction: 6pins: to "D3" + pin.2 of L293DD (input A-), to "D4" + pin.12 of L293DD (input B+), to 3.3V, to GND, to pin.19 of L293DD (input B-), to pin.9 of L293DD (input A+);
R4 = 010 = 1 Ohm - pin.1 of L293DD (enable A) to GND
R5 = 102 = 1 kOhm - pin.1 of L293DD (enable A) to "D1" pin - PWM A
R6 = 202 = 2 kOhm - from +5V pin.20 of L293DD to LED on shield (not related to motor drive).
GPIO0: Motor_A DirA, "D3", (button FLASH)
GPIO5: Motor_A PWMA, "D1"
GPIO2: Motor_B DirB, "D4"
GPIO4: Motor_B PWMB, "D2"
Board may be soldered wrong, in my case resistors do not fit original scheme (which is not published), so motor driver L293DD got no EN powers necessary for work (both PWM pins), there must be 010 SMD resistors to ground (1 Ohm), position R1 and R4 in a row below driver chip.
Pin 3.3V near D4 must be powered up - it is connected to "T3".

Enable pins will get from 0V to 3.3V*1/1001=0.003V... so, removed these resistors R1 and R4 - it started .

DigitalMy

2017-04-03 22:21

administrator  

NodeMcuMotorShield.png (210,682 bytes)
NodeMcuMotorShield.png (210,682 bytes)

DigitalMy

2017-04-03 23:25

administrator  

NodeMcu_L293DD_motor_shield_R.png (811,742 bytes)