Thank you so much! Works great. I moved your test code and wiring over to a Raspberry Pi Pico and it works great. All I had to do was ensure to use same GPIO pins as the code. It worked perfectly with no issues. BTW, I am using a wheelchair motor at 24vdc. So far under no load, running non stop for an hour, the chips don't even get hot.
you are very welcome. would you please share the code on Google drive or somewhere so I can share it with other? many people might need it. The best thank you for me is to subscribe to my channel. thank you.
@@robojax Thanks again. I thought I replied already, but I don't see the comment. Here is a link to my video using your code: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-kxGwZ1kxaq8.html which also has a link in the description to my Google drive with your code. Here is also a link directly to the drive with your code: drive.google.com/drive/folders/1KXQD5Gj2zxjA9OD6UG3i-uvIzwmdMY55?usp=sharing
Thank you. I just found your comment. it was flagged as spam. Watched your video with Excellent demonstration. I have worked with Raspberry Pi and I assume the code should not work as it is in totally different format. But not sure about Pico. may be something has come which I don't know. Regardless, I am pleased that I have been helpful to one more person(s). Cheers.
@@4plus17 It seems to work just fine with the 3.3v PGIO from the Pico. I posted a link to my test set up here: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-kxGwZ1kxaq8.html That link also contains a link to the modified code, which lists the exact GPIO pins I used. But you can use any pwm pins you like.
6 месяцев назад
Thanks! This detailed step-by-step walk-through on how to operate the BTS7960 motor driver was exactly what I needed
Thanks for this wonderful analysis. I just bought one of these and you are absolutely right. The airgap between the driver and heatsink just doesn't allow it to get up to 30A. Thankfully my application only require 8 A max per motor so hopefully this driver will not get overloaded.
HI there, I hope you still read the comments to this video after all this time. Thank you for this video it is helping to use linear actuators to open the roof of my astronomy observatory, if I can get it to work. I am not sure what is wrong, if it is my BT2 controller, which is new, but the folowing happens when I run your basic code. It will only go in one direction, as defined in line 60 "motor.rotate(100,CW);// run motor with 100% speed in CW direction". it then misses the code until it speeds up and then slows down, again but only in the direction as defined in line 60. It keeps going until fully extended. If I then change the line 60 to read, "motor.rotate(100,CCW);// run motor with 100% speed in CW direction" and upload that sketch it retracts full speed, misses out the stops but runs the slow to full speed rampup, then runs full speed again until it is fully retracted. So it appears to be ignoring code to stop or to delay and will only accept the first instruction for the direction from line 60 and ignore the change of direction request. I have changed all the wires in case they were faulty but that made no difference. Your help and advice please. I do not know much about coding so I am very frustrated.
Very good information. To improve the thermal conductivity, the heat sink can be removed from the 2 screws and modified a little to reinstall it on top of the IC chips with longer screws. Now the heat sink can do a proper job of absorbing the heat and prevent thermal shutdown. A fan can also be used for optimal cooling.
Interesting idea, I have also seen comment of just adding thermal past. I just ordered 2 for a trolling motor project. I think I will need to run them in parallels. But after you comment I might try to add the other heat sink, and use them on both sides as an experiment.
@@ericbommer2280 I am also working on a trolling motor project and I've added thermal paste to mine, but I'm still not sure how well this is going to work
The heat sink could contact a soldermask free area connected with feedtroughs on that backplane of the board. It seems tha tthe footprint of that heatsink would fit on the component side without interfering with the other components tough. So i would try to switch its mounting and provide a small fan, mostly if the unit gets inclosed in a small water proof enclosure like it should if controlling an ebike or scooter. Thanks a lot for your diligent work on the spec sheets and circuit analysis.
Great video - very thorough and informative. Lots of useful information in the comments, and love that you are so responsive to questions. My question (which I didn’t find in any of the comments) is whether the amount of heat generated in the BTS chips is related to the PWM frequency being used, and also whether maintaining 100% duty cycle will create less heat. I note in your video that your code continually increases then decreases the duty cycle during your test. Thanks, and keep up the great work!
Hi, the datasheet we can see the maximum PWM frequency is 25kHz. I have not paid attention to the efficiency of module other than path resistance which is about 16mΩ. In the code the duty cycle changes but the frequency is fixed.
Incredible full video and with a spectacular explanation of each point of the code as well as the circuit, thanks for the video, I will use the library in my project.
I think best testing it under inductive load like dc motor to get real performance (switching losses) I always get your channel as reference for exploiting modules Thanks
Would u do another test on the power handling? Remove the heat sink and put it on top of the iC's . All you need are longer bolts . It fits beautiful. You may have to drill out the holes on the heat sink a tad to fit your longer bolts. I know its an old device. But i would bet there alot laying in junk boxes.
I have just made a temperature check of one of these modules, and I think that the current specifications given are far too optimistic. The right steady state current should be about 7 Amps. I use at test set up with the H-bridge in a four quadrant configuration with a motor and 24 VDC. Both sides are driven by 10 kHz, so the motor see a 20 kHz PWM signal. I then measured the temperature on the surface of the packet and on the heat sink. With a current of 7 Amp to a loaded motor I get 124 degr. C on the surface and 84 degr. C on the heat sink. You may choose to set two modules in parallel in order to increase the current and power, that you can handle.
You are welcome. I don't remember what was the voltage. but know I always explain the voltage. whatever is the voltage of the module, that is the motor voltage.
Thank you for the work you did on this...Liked and subscribed and will most likely be joining you on Udemy. This worked like a charm on two harbor freight drill motors. I've got my DIY robot base performing simple movements with the aid of your tutorial and library.
Unscrew the heat sink and screw it down onto the MOSFETs. Use a few small washers to pack it up so it doesn't crush the MOSFETs. That fixed the overheating issue with me. Little Chinboi designing these modules had know idea what he was doing.
Wiring is shown in the video. Please visit resources page for more codes.
4 года назад
Hi Thanks a lot for the detailed explanation, i wonder how can we connect 2 BTS7960 to control 2 motors. is it possible to combine some pins. or we need 12 pins to control excluding power and ground.
Hi, I just added the code for 2 or more motors. See the link on page where you see the code. Good cluck and thanks for subscribing and sharing my videos.
yes sir i am used this BTs Below 13 Amps working fine after i increased motor capacity amps up to 28 its working only few seconds after that its automatically run (mean whenever i gave the BTS Input power supply from battery that time motor will run ) pls can you suggestion others driver with pwm type speed control?
Great Video! Really informative and helpful. @Robojax can you please suggest its max current output with 24V? And the best way to cool down this module at its peak 33A. As I read its datasheet it will shutdown on over heating ? Have you tested it at which Temprature it goes shutdown. Thanks
Thank you Mathilda. I have not tested it with 30A but if you watch the video til end, I have included some test and didn't know how people like this module so I did not spend more time on it.
No problem I'm going to test it! Your video inspired me about the efficiency of module in cheap price. So I'm definitely going to re-test rigorously. Excited to learn something more about it. Thanks again for your detailed review must appreciated!
Hi, thanks for the clear explanation! I am trying to use the example sketch on an ESP32 wireless module and get the message: "Error compiling for board ESP32 Dev Module.". I know that the analogWrite() function is not implemented in the ESP32, but I am not experienced enough to see if that could be the problem here. Could anyone provide me with some help on this one? Thanks!
Hi, this will not work with ESP32 as ESP32 has different PWM mechanism. I would have to write separate library for this module. or watch my video on ESP32 with Fading LED, I have explained it there.
Hi, thank you for the detailed and informative video! I am trying to do a mini project which controls linear actuator and this seem to be able to work. Can you include a short guide on how to use the current sensing feature? It will be useful to perform some actions automatically if the current exceeds a certain threshold.
You can learn current sensing from this video for different module but you get the idea: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE--uQKBDTWHPM.html details have been mentioned on page 17 of datasheet: www.robotpower.com/downloads/BTS7960_v1.1_2004-12-07.pdf
I have got encoder motor with 6 cable. In order to work and take data from my motor, should I connect only 2 cable to my BT_2. I couldnt file zip file how can I find it?
My pleasure! سلام علیکم، خرسندم مفید واقع میشود. مجرای(کانال) فارسی برای این منظور را فعال کرده ام و تازه یک بخش به آن اضافه شده است: اشتراک شما حمایت از من است. تشکر ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-9_8PRIjBfAY.htmlsi=4qWn0mSdgEF0Gpvn
Thank you for your tutorial. If I want to use multiple BTS7960 in parallel to power one single motor, what should I use to protect the motor and other BTS modules if one of them suddenly die while running full load? BTS is the most powerful DC Controller with PWM input I can buy from local store, so I have no other choice, except DIY.
you can do it using a current sensor like this ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-3C33DpcSwIw.html when the current reaches certain value, you can stop it using a relay. I have video on rely and if your current is very high then use ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-9jwCc7uPGoc.html up to 100A nad i you want to use stand-alone device without arduino, here it is is ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-a4b_A0ZDvwc.html with relay you can turn OFF or ON any load. Good luck.
Thank you for a very good tutorial - Just found this video and subscribed. Do you have any videos of using the IBT 2 to remote control DC motors and linear actuators?
no. this module is sold like this and I wanted to test it as is. Spent almost a week to write library for it. this is the most powerful module for motor in this series.
whether 12V-40V10A DC Motor PWM Speed Control switch can be run directly through Arduino, or it require to run though BTS7960, Pls. Reply. Also, Pls. note, No Manual control switch is allowed for my work.
I have spent time make video on current sensor for Arduino motor shield (ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE--uQKBDTWHPM.html), and it seems very few people showed interest. Now when I was writing the library for this, I did not pay attention to Current sensing because you might among the few who is looking into this. You can watch that video and I am sure you will learn how to use it for this as well.
Hi, Could you tell me how is the implementation of this controller with 16f877a pic microcontroller please? Is it possible to use this with 16f877a and do I need to write any PWM code to use it or I just send normal 1 and 0 logic outputs from pic to this controller to be able to use it?
Thank you very much for useful video. What about to use a thermal paste between heat sink and board (and fill up the holes). Or attach heat sink directly on chips. Could it than withstand 30 amperes? I mean: is higher current only dependent on cooling?
Will your library work with a esp32? Can it work with stepper motors? I can see that it might work with a eBike or scooter or CNC or high current servo, but can it work with something like a Segway or 6 wheel ATV or heavy lift quadcopter where the left and right sides are rotating in same or opposite directions at controlled speeds? Hope I can see some applications like listed above..
you made me watch the video. Indeed I have tested it with full possible current and said in the video "it can not handle ......" amount of current with this heat sink. so you've missed it.
Fine! That is for one wheel control. Maybee you have code for two motors (like wheelchair ) for grassmover? I have Arduino Nano3, 9V switcher trafo and two BTS7960 motor driver, two used motors are on the way too. Thank You, M
You are welcome. Yes you can. Watch this video and learn from it ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-27KjMfPH1dk.html The best thank you for me is to not skippin the ads and Subscribe 🔔 to my channel, like 👍 the video and do not skip the ads.. It is greatly appreciated. 🔔 😊. I will reply to all Subscriber's 🔔 questions. So make sure to Subscribe.😊 .
I have now downloaded a fresh copy from here. I have connected the Arduino and made sure that it shows on the correct port. I have gone to Sketch>include library> Robojax... and then upload the file. I keep getting that the motor is not defined. I am sure that it is not the code but that my stupidity is the cause. Please assist in raising my intelligence by a few points please...
Thank you very much. Most of the time Udemy puts it on sale which would be about 70% OFF. If you see the contents item by item, you will see that I have spent 100s of hours preparing them. I paid attention to every aspects of Arduino and constantly updating it. Once you sign up, you will appreciate it.
I ordered one of these units online. I think they are completely unsafe/dangerous. the BTS 7960 chips are together on the same cooling block without electrical insulation. Do you agree on the danger it poses? If so please put this in your video! because its putting people at risk!
The module shown in video, the chips are on PCB and body of the chip is not attached to the heatsink. so it is safe. unless yours is different. see the module document robojax.com/learn/arduino/robojax_BTS7960_motor_driver_manual.pdf
@@robojax I think you misunderstood the point i was trying to make. I have a module that looks exactly like the one u use in your video. Your statement that the chips are not connected to the heatsink is not true (in my case)( and why else would they put on a heatsink in the first place??) . If you take off the heatsink you can see the problem yourselve. The design of the board is so that the chips must dissipate the heat from the chips trough the PCB by mean of Via's. These vias connect the back of the chips to the heatsink. In my case there is no silicon pad between the heatsink and the circuit board. Thus the only thing keeps the unit from short circuit is the thin black anodised layer on the heatsink. Your link in to the manual is not very useful im afraid. Please take a look at the following forum, it is in dutch, but the photo's are clearly showing the problem. www.circuitsonline.net/forum/view/152301
Thank you for great tutorials. Can the logic be powered by an external source instead of the arduino? And if so, would it be two wires to ground, one to the external power source and one to the arduino like you showed with the l298? I’m planning to use 3 bts7960 and a stepper motor driver in the same project but I’m concerned that it will be too many amps for the arduino. But maybe the enable pins and pwn would draw the same amps from the arduino even if I power the driver externally?
I have mentioned the minimum and maximum voltage which I don't remember now. if your battery is within the min and max voltage it should work. The power depends on the motor.
Thanks for this tutorial. I am using the same BTS but I am controlling it with labview. I am able to control the speed in one direction, even though I have both R PWM and L PWM connected to PWM pins 3 and 9 respectively. on my arduino uno. L_EN and R_EN are both active (true). Then I turn on PWM, however both pins (3 and 9) makes the motor spin in the same direction. Do you have any idea why?
Hello, excellent video, very complete, I need to connect several motors, but the arduino has a limited number of outputs, I thought about using a PCA 9685, but I don't know what the code is like for this, I hope you make a video explaining this, it would be great !!
Hello, I have got 4 videos on pca9685 you can use one the code that you think might be useful to you and feed the output of that to this motor driver. But it need some serious work.
Hello. What happens when both Enable and both PWM pins are set to High at the same time? does anything burn up? or, does the module understand this is a bad input and doesn't turn anything on? thanks!
Just as a information also for the users here. If you switch off the debug mode, the library has a bug. if(this->_debug){ digitalWrite(pwm1Pin, LOW); ... This means, the pwn1Pin is only set to LOW, if you are in debug mode. So if you change direction (without debug-mode and without calling stop) both of the PWM will be bigger than 0, which you should avoid. Best regards, Matthias
@@robojax Looks like links are not allowed, i posted a link to the libraray. Yes, the Problem ist the library in RobojaxBTS7960.cpp in Line 84. Of cause the debug mode SHOULD only affect printing or sending to serial console, but in that line pwm1Pin is set to LOW only in debug mode. So the following code will trigger the bug: RobojaxBTS7960 motor = new RobojaxBTS7960(inhR, pwmPinR, isR, inhL, pwmPinL, isL, 0); motor.begin(); motor.rotate(100, 1); //motor.stop()
Love the library and I currently have something working based on what you have shown. How would I expand the library you've included to have soft start and soft stop instead of just the hard stop you have now? Ideally I would have motor.rotate(5,CW); motor.easestop();
Excelente explicacion y muy buena la prueba tecnica con valores en tiempo real. Felicitaciones !!! CUIDADO !!! El codigo tiene errores al compilar. El include no esta bien escrito.
I think that the ic's are counterfeit. I meassured the resistance of my BTS7960 board and the high side switch and has 775mOhm, the datasheet says 12,5 mOhm max!
@@robojax I connected the board with an electric load(set to 2A constant current) and meassured the voltage between vs (Pin 7) and OUT (pin 3). I meassured a voltage of 1,55V. According to ohms law -> R=U/I -> 1,55V/2A=0,775Ω Awesome Video, thanks for reading the comments!
whether 12V-40V10A DC Motor PWM Speed Control switch can be run directly through Arduino, or it require to run though BTS7960, Pls. Reply. Also, Pls. note, No Manual control switch is allowed for my work. My Motor Rating is: Rated Voltage: 24F/36V, current(F.L.): 5A, Speed: 5000 R.P.M. @180W (F.L.).
Nice video!! Could you tell me which motor you use in the video, or recommend me a single-phase motor like the one you use in this video? I am doing a project similar to an electric scooter (I need at least 250 W of power). Thank you very much and continue with these fantastic videos!!!!
Thanks. I've just added the motor model on the code page robojax.com/learn/arduino/?vid=robojax_BTS7960_motor_driver I have no experience with electric scooter. Sorry.
Thank you very much for the video it helped me a lot, but I would like to know how I can do to manipulate two H bridges in the same code and move two engines two bts7960, so that one goes clockwise and the other upside down helps me a lot. Thanks greetings.
You are welcome. fro two devices, on this line R_EN,RPWM,R_IS, L_EN,LPWM,L_IS RobojaxBTS7960 motor(R_EN,RPWM,R_IS, L_EN,LPWM,L_IS,debug); change it to R_EN1 RPWM1 R_IS1 L_EN1 LPWM1 L_IS1 R_EN2 RPWM2 R_IS2 L_EN2 LPWM2 L_IS2 RobojaxBTS7960 motor1(R_EN1,RPWM1,R_IS1, L_EN1,LPWM1,L_IS1,debug); RobojaxBTS7960 motor2(R_EN2,RPWM2,R_IS2, L_EN2,LPWM2,L_IS2,debug); and then use motor1.stop(); motor2.stop(); motor1rotate(100,CW); motor2.rotate(100,CW);
this is totally different. L298N can handle only 2A this is made for 30A and I've tested it but forgot how much it could handle. it is like you want to travel with small Toyota or large truck. if you don't need the truck then get small Toyota.
@@robojax Do you know how significant can the voltage drops be ? the L298 is known for having up to 5v drop when handling 2A. I wonder how big is the drop with this one. I really need a high efficient driver for my application.
Hey, Proteus is very expensive and they don't have free version for that reason I don't have it and don't like the software. Now they should offer free version even with limited capability.
hi sir, i think pin "IS" is not necessary because we dont control the current, we just control the speed is it? if im wrong iam ready to learn from expert like you
what do you mean "Library. Properties Not Found"? do you mean that you did not find the library? the link is under the video. or go directly to Robojax.com and search it there.
Thanks a lot for your Video. I have just one question, if you can help me. Regarding the PINs 5 and 6 (R_IS and L_IS), how it yours? Digital or Analogy information? If we have over current, the sign should be toogled (0 to 5V)? Thanks a lot
Hi, Perhaps you escaped the video. I have said in the video that you can control 1 motor. If you want to control 2 motor, you can but not fully. Details in the video.
Hi, the voltage sources should be the voltage as the motor. it does not matter you get it from as long as the battery can supply needed current (power) to the motor it should be fine.
This is a great tutorial video.. well you always did. Thank you very much. BTw, I got one question, can I use this as a voltage regulator? maintain 70V and placed it on the high side of the load? Appreciate your reply thanks in advance.
Hello, I have spent so much time to make those diagrams so there is not questions left. Here we have no HIGH or LOW. you connect your motor directly to this module. The maximum voltage is whatever I said in the video as I don't' remember it.
hi Robojax, i have a big Motor RC car, L298N motor driver is not enough to drive the rear motors it gets really hot and it wont run when you put it on the ground, i bought a BTS7960. please teach me how to code and wire it to replace the old setup. thank you
Hi Christian, If you watch this video and follow the instruction, you can control any DC motor. I've made it very simple using the library. Try watching the video without escaping.
Sir i need some guidance to complete my project....can i use this driver to run a 12V 5 A wiper motor using a SMPS type 12V 5A power supply??.....please do a video on controling wiper motor using SMPS type power supply
Great video, i am trying to control 24V 15A motor using a BTS7960 module. it has burn out though...are you suggesting that it is because of the high current? it also started smoking after short operation.
This module claims to support up to 27v. I have one and tested with 12v wich is fine. Then i tryed 24v and looks like it died... No smoke or anything else, just stop working even with 12v. Do you already run this module with 24v input?