Open CalgaryCM opened 3 years ago
This is caused by the motor not knowing its position and it is constantly trying to adjust to this unknown. Once I send the command to set it to 100% the motor stops driving. /positionCommand/ 13 is what I sent via mqtt, but this is based on my setup. Replace with your name, and take the steps you set up in the code and add 1 to it, mine is 12 so I set mine to 13. It stops and the motor does try to fine its setting anymore and shuts off.
I'm still in the process of working on this project, but I had an episode where I killed node mcu and the controller by shorting probably and didn't realized that and put the blind up. After an hour or so I realized that the blind doesn't work very well so I took it down. It turns out it was soo hot that it melted the adaptor.
So my advise to anyone who is doing this is double sleep the motor through the Fault pin, by connecting it to one of the pins on nodemcu(instead of 5v directly), then setting the pin to High when needed and to Low otherwise, this way controller is completely off, and u don't have a risk burning your house. :)
@OOIOIOO Can you provide a diagram of that double sleep set up? Everything for me works perfect, but I did disconnect the node mcu to test and the motor started to heat up. Thanks!
Can you provide a diagram of that double sleep set up? Everything for me works perfect, but I did disconnect the node mcu to test and the motor started to heat up. Thanks!
@thehookup any ideas for a good fail safe of the node does fail eventually?
@rixmix123 its fairly simple really, note the Orange line from D8. Its mostly software, the way I did it, I set it as output and during setup I set it to LOW, than any time I run the motor I set it to HIGH, and in the part where the moving is set to false, I set the pin back to LOW. So Controller is essentially always off and never heats up. Now technically gpio pins 1 to 15 I think are all pulled HIGH so there is a chance that during boot the controller will on until the code kicks in, I believe gpio 16 is defaulted to LOW, so u could try that to be extra safe.
@rixmix123 its fairly simple really, note the Orange line from D8. Its mostly software, the way I did it, I set it as output and during setup I set it to LOW, than any time I run the motor I set it to HIGH, and in the part where the moving is set to false, I set the pin back to LOW. So Controller is essentially always off and never heats up. Now technically gpio pins 1 to 15 I think are all pulled HIGH so there is a chance that during boot the controller will on until the code kicks in, I believe gpio 16 is defaulted to LOW, so u could try that to be extra safe.
actually I just checked some resources and they say the D8(got lucky there :)) is being pulled LOW standard, so u good to use that, as GPIO 16 is one of them weird ones, that polly noone should use.
@OOIOIOO Thanks so much! Forgive me for being a noob as this is my first project working with the node mcu's and the programming of them. But do I need to modify any code with your set up?
@OOIOIOO and one more question just to be clear, this set up would prevent the motor from heating up if the node MCU failed or was disconnected? Thanks again!
@OOIOIOO Thanks so much! Forgive me for being a noob as this is my first project working with the node mcu's and the programming of them. But do I need to modify any code with your set up?
yes in a few places where I described above, due to where this stuff is , it will be hard to point u exactly, as I don't know what you have. I will eventually do a pull request with my changes but I'm not done yet. :) also np buddy, my firs project with this stuff too :)
Thanks again! I'll be on the lookout!
@OOIOIOO and one more question just to be clear, this set up would prevent the motor from heating up if the node MCU failed or was disconnected? Thanks again!
if mcu is disconnected, yes, if it failed .... hopefully, its electronics and you are playing with it, so nothing is for sure, but its better ... to the best of my knowledge. I tested it on my failed items as well and it saved it fixed it there :)
@OOIOIOO just wanted to tell you how awesome of an idea this was. I modified the program and wiring like you showed and it works great! I like not having the driver powered up when the blind isnt doing anything, just made a lot of sense! I really think you should push this up as a pull request and have them modify to project!
How do you modify the software? Do you make changes in Arduino code? I have the blinds up and running and connected to Wemo plugs that turn off when not in use, but I'd love another fail safe just in case! 😀
Yes you have to modify the programming in Arduino... Here is how I did it... and I'm no expert, but it works...
At the top under the var define section:
At the bottom in the setup subroutine: void setup() { pinMode(STEPPER_POWER, OUTPUT); <-- Add this Line
Under processStepper Routine: if (newPosition > currentPosition) { digitalWrite(STEPPER_POWER, HIGH); <-- Add this line Other stuff
if (newPosition < currentPosition) { digitalWrite(STEPPER_POWER, HIGH); <-- Add this line Other stuff
if (newPosition == currentPosition && moving == true) {
shadeStepper.sleepOFF();
#endif
#if DRIVER_INVERTED_SLEEP == 0
shadeStepper.sleepON();
#endif
digitalWrite(STEPPER_POWER, LOW); <-- Add this Line
_Other Stuff_
This defines STEPPER_POWER as D8 and then activates D8 as an output pin. We then flip it on before a move and shut it down when it reaches its location. Seemed simple enough, and the motor never gets warm.
Awesome! Any chance you can post all the code for reference? I'll try it out!!!
Curious, did you cut the center trace on the motor's internal PCB as Rob instructed? I was testing adding a second motor in parallel for a very large blind. I forgot to cut that center trace and it got VERY hot. The other motor I was testing had the center trace cut and always remained cool to the touch.
Hey, Can anyone confirm if the motor gets HOT if the NodeMCU/ESP8266 is not connected?
I am starting this amazing build and during voltage checks I notice that the motor gets very hot when the nodeMCU/esp8266 is not connected. My initial gut feel (and prob incorrect as I am just starting) is the nodeMCU using the enable pin to sleep the motor. My concern here is if something were to happen to the nodeMCU it would stop sending "sleep" to the motor and the motor would heat up to the point of it being a fire hazard.
I did verify my wire connections several times. I assume the wire color code on the diagram matches the wires on the motor and I have them connected properly.
TIA!