Jump to content
Electronics-Lab.com Community


  • Posts

  • Joined

  • Last visited

  • Days Won


Posts posted by HarryA

  1. 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.






  2. 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.

  3. 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

  4. Making your R1 2000 ohms from 1000 ohms improves the output with slightly  less output power. What do you expect for output power and what do you have for input voltage?

    Also the transistors are large current perhaps some thing smaller? The circuit you are using has a base current of about 1.8 ma for the 2SC5200 at 150 mv peak input that is quite low.



  5. The output looks good in the simulator at 120mv(peak to peak) the current through the 8 ohm resistor is about 500ma pp which is about 1 watt. At 150mv the output is starting to clip on the bottom. This is do to the PNP Q3 having more base current than Q2. Q3 is directly connected to Q1 while Q2 is off from Q1 by the two diodes or 2 * 0.7 volts  I would think. The base currents; green is Q3 and yellow is Q2.


    I like this  circuit better as it is symmetrical; both transistor get the same amount of base current I would think.


  6. So you have a double pole single throw switch. There are two sets of contacts in the switch. Two of the connectors connects to one set of contacts and the other pair of connectors connect to the other set of contacts. You need to know which pair of connectors connects to each set of contacts. I believe.



  7. Using what I could find for similar transistors in the simulator I used your  circuit:


    Green trace is the current through the NPN and yellow the PNP. The current through the 8 ohm load looks good inspite of the asymmetry in the transistor currents.



    Connecting the PNP  between the two diodes removes the asymmetry but changes the output current:


  8. On 7/6/2021 at 5:21 PM, Engr. Philip said:

    Which site can I buy good quality electronic components at cheap price and with free shipping

    Good quality and cheap price do not go together.  I buy cheap from Ebay but not always good. I buy some from Amazon.com because I have prime and can get things quickly. Jameco.com is a good hobbies supplier but they are on the west coast and I am on the east so delivery is slow; also  digikey.com is high quality but to slow for me.

  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.