Jump to content
Electronics-Lab.com Community


  • Posts

  • Joined

  • Last visited

  • Days Won


Posts posted by HarryA

  1. These motor controllers may interest you: Motor control

    Info on Youtube here: Review of control

    And more info here: More motor control.

    Reading the reviews/comments will give you more insight.

    Could one mount  the potentiometers into a joystick control mechanically; some type of gimbal mount?  Adding push button switches to the control to reverse directions would be doable I think.  There maybe game type  joystick controls that have them already built in?

  2. "LTspice® is a high performance SPICE simulation software, schematic capture and waveform viewer with enhancements and models for easing the simulation of analog circuits." 

    There are numerous tutorials and manuals for LTspice online. You can import component models not in its library into it using other spice models.

    see:  https://www.analog.com/en/design-center/design-tools-and-calculators/ltspice-simulator.html

    A circuit in LTspice:


  3. Are you using the type of  actuators that have  brushed motors ?  I gather they have  switches  that limit their travel in each direction.

    Also I see that folks are building controls using microcomputers like the Arduino but that seems like the hard way of getting one.

    Are your actuators similar to this one?  https://www.amazon.com/dp/B079G1NZHT/ref=emc_b_5_t?th=1

    also look at these: https://www.progressiveautomations.com/collections/control-boxes? I gather their 30 amp dual controllers are only 15 amps each.  They have joysticks here:


    This is like what you have  now? https://www.amazon.com/Forward-Reverse-Module-Actuator-Reversing/dp/B0881N7F4M/ref=sr_1_53?crid=25CETHKMKA6N1&keywords=linear%2Bactuator%2Bcontroller%2B12v&qid=1637517171&s=industrial&sprefix=Linear%2BActuator%2BController%2Cindustrial%2C232&sr=1-53&th=1


  4. One could use a pair of Arduino mega 2560 microcomputers each has 16 analog inputs. Using two boards each monitoring 10 cells. As each cell is measured relative to ground from the its first  cell the additional voltage would indicate the voltage on that cell, That is if the voltage at the 5th cell where  say 6.5v to ground and the 6th cell where 7.9v the computer would "know" that cell  is at 1.4v and thus charged. It would switch it out of the circuit and replace it with a shunt resistor.  

    Also there are Arduino devices to monitor current up to 5 amperes using a Hall effect device.

  5.  In the circuit above the 2SD1805 is an NPN  not a PNP as required. The TL431 is a precision programmable reference.  I could try the circuit in the simulator if I can find a spice model for the TL431 or otherwise simulate it.

    I see: "The 2SB1205 is a complementary PNP transistor for the 2SD1805."

    Characteristics of 2SB1205 Transistor

    • Type: PNP
    • Collector-Emitter Voltage: -20 V
    • Collector-Base Voltage: -25 V
    • Emitter-Base Voltage: -5 V
    • Collector Current: -5 A
    • Collector Dissipation: 10 W
    • DC Current Gain (hfe😞 100 to 400
  6. Tenergy claims to have a Nicd charger for 12 - 24v but I could not find it on their web site. They are less expensive on Amazon.com then on their site.  I would think it less expensive than building one from scratch if it is under 100$.  They require an external power source. I use a Tenergy to charge my quadcopter's battery.

    As you are fabricating you own battery you could set it to charge say 10 cells at a time but that requires 8 charges; mine will do 15 cells.

    see: https://power.tenergy.com/chargers/for-battery-packs/12v-24v-nimh-nicd/

  7. If it works in another unit why do you think it is damaged? Perhaps the fault lies with the error sensing circuit.  A  fault that arises with vacuum cleaner power heads is that a string, etc.  gets wound around the wheel axis impeding the wheel. There are videos related to this type of problem on youtube: for example see: https://www.youtube.com/watch?v=kqq6Ezilky4

    In regard to the mosfet; if there is a voltage at the gate of 3 to 4 volts or more the voltage across the mosfet should be less the supply voltage. If not that may mean the mosfet is opened - not conduction current.

    If I were to build a robot I would buy one to use as a base;

    https://shopgoodwill.com/categories/listing?st=robotic cleaner&sg=&c=&s=&lp=0&hp=999999&sbn=&spo=false&snpo=false&socs=false&sd=false&sca=false&caed=11%2F17%2F2021&cadb=7&scs=false&sis=false&col=1&p=1&ps=40&desc=false&ss=0&UseBuyerPrefs=true&sus=false&cln=1&catIds=&pn=&wc=false&mci=false&hmt=false




  8. You can use the serial commucations control in VB (Visual Basic) to commucate with an Arduino board. This allows one to make a more formal interface to the board.


    The serial comm control is found in project/component/Microsoft Comm Control 6.0 in the VB visual studio. Selecting it adds it to the tool box. It can then be dragged on to the form. Its symbol looks like a telephone.

    In this example an Arduino board is controlling an electric motor via an H bridge circuit. The inputs to the bridge circuit are from pins 4, 5, 6, and 7 from the Arduino board.


    In the VB code below, the serial interface is setup on loading the form. And four buttons are added: forward, reverse, stop, and exit.

    On selecting a button it sends a signal to the board which in turn outputs signals to pairs of pins to the transistors in the H bridge. A more practical interface would have code to ask the user which comm port to connect with.

    ' VB 6 -motor control via Arduino UNO/Mega 2560
    Private Sub Form_Load()
     MSComm1.RThreshold = 3
     MSComm1.Settings = "9600,n,8,1"
     MSComm1.CommPort = 6    'use the one IDE uses
     MSComm1.PortOpen = True
     MSComm1.DTREnable = False
     Text1.Text = ""
    End Sub
    Private Sub FORWARD_Click()
     MSComm1.Output = "f"
    End Sub
    Private Sub REVERSE_Click()
     MSComm1.Output = "r"
    End Sub
    Private Sub STOP_Click()
     Text1.Text = "STOP WAS SELECTED"
     MSComm1.Output = "s"
    End Sub
    Private Sub EXIT_Click()
     MSComm1.Output = "s" 'make sure motor is stopped
     Unload Me
    End Sub

    On the board side the Arduino code waits for a serial signal then sets or clears the outputs as required.

    //this program receives commands via the visual basic program running on the pc
    //based on: Patel, Ujash.: "Arduino + Visual Basic 6.0:Make your own software to control Arduino Robot 
    //outputs to the four transistors in the 
    // H bridge controling the motor
    int pin7 = 7;  
    int pin6 = 6; 
    int pin5 = 5;  
    int pin4 = 4;  
    void setup() 
      pinMode(pin7, OUTPUT); 
      pinMode(pin6, OUTPUT);  
      pinMode(pin5, OUTPUT); 
      pinMode(pin4, OUTPUT); 
      //all low/off = stopped
    void loop() 
      if (Serial.available()) 
          int command = Serial.read();  
          //all low/off = stopped
        if (command=='f') //forward
         if(command=='r')  //reverse
        //we initialize to stop with all LOWs above
        if(command=='s') command = 's'; //dummy statement
      }//end if(serial)
    }//end Loop()

    This project is based on Ujash Patel's book:
    "Arduino + Visual Basic 6.0: Make your own software to control Arduino Robot" . Amazon.com Kindle Edition.






  9. The 2sc5200 is a large "High-Fidelity Audio Output Amplifier"  it would be used as the last stage in a mullti-transistor amplifier.

    What is the input  in to your amplifier?  Consider using an op amplifier that would give you a simple amplifier that could use a low level input and give you 5 watts or more output.  The LM383/TDA2002 is an 8 watt power amplifier that uses 5 capacitors and 2 resistors. You can drive a 4 ohm speaker directly with It.

    As it is an old op amp you may find a more  modern version of it. The LM383 is available on Ebay.

  10. Can you copy this code and paste it into the IDE and get it to compile? Be sure to select nano in the IDE tools->board = "Arduino Nano". This is for an ultrasonic device but for testing you do not need  the device:

    #define trigPin 9
    #define echoPin 10
    long duration;
    int distance;
    long firstoff;
    int distancefirst;
    void setup()
    pinMode(trigPin, OUTPUT);
    pinMode(echoPin, INPUT);
    digitalWrite(trigPin, HIGH);
    digitalWrite(trigPin, LOW);
    firstoff = pulseIn(echoPin, HIGH);
    distancefirst = firstoff*0.034/2; // cm
    digitalWrite(trigPin, LOW);
    digitalWrite(trigPin, HIGH);
    digitalWrite(trigPin, LOW);
    duration = pulseIn(echoPin, HIGH);
    distance= duration*0.034/2; // cm
    //distance = duration * 0.0133 / 2; // in
    if (distance <= distancefirst - 5)
    tone(3, 500, 500);
    tone(3, 800, 500);

    It is the first project from: https://create.arduino.cc/projecthub/projects/tags/nano

  • Create New...