Skip to main content

Use Visual Basic to enhance the Display

 The reason that I like VB as a Programming Environment is the ease with which you can make it look nicer or Enhance the Display if you want to sound fancier about it.

If we take the Red LED - Green LED Program, we can another couple of features which show the beginnings of what might appear in a mimic panel.  So the first thing we would do is to add a couple of Shapes (another type of VB Object).

We put a shape beside the Red Control buttons then set the properties to :-
Shape = circle
Fillcolor = Red
Bordercolor = red
Name = Red_Circle

Do the same for the second, green, shape.

Then we edit the VB code

Private Sub Red_Off_Click()
  MSComm1.Output = "r"                   '   Sends r Switch off Red
  Red_Circle.FillColor = vbWhite       '   Changes the fillcolor to white
End Sub

Private Sub Red_On_Click()
  MSComm1.Output = "R"        '   Sends R Switch on Red
  Red_Circle.FillColor = vbRed
End Sub

Running the Program now gives an improved display.



The important thing now, is that we don't need to do anything to the Arduino Code. Any changes now can all happen in the VB Environment.

You can do all kind of things such as hiding an "On" button after it's been pressed, so that you can't press it again by mistake.  Then "Show" the On Button after you press the "Off" button.

Another idea is to set a single button as a "Toggle" button.
For the Red LED, the logic is to 
    look at the Fillcolor
        If the fillcolor is red                  (ie it is on)
           set the fillcolor to white         (switch it off)
        else                                            ( what you do if the fillcolor is NOT red )
            set the fillcolor to red            (ie switch it off)
        end if                                         ( this ends any code caused by the earlier If condition )

What will this look like in VB Code?

Private Sub Red_Toggle_Click()

  If Red_Circle.FillColor = vbRed Then    '  Red LED is already on
     MSComm1.Output = "r"                       '  Sends r Switch off Red
     Red_Circle.FillColor = vbWhite           '  changes the light to white / off
  Else                                                           '  what to do if red LED is NOT on
     MSComm1.Output = "R"                      '  Sends R Switch on Red
     Red_Circle.FillColor = vbRed              '  changes the light to Red / on
  End If                                                       '  finishes of the "If" condition
  
End Sub

And that, dear reader, is why I like Visual Basic.

Comments

  1. This is a lot easier to build in VB. It has taken me a full day to create two buttons to switch on and off an led and I have still to make the button change colour to show the status on the screen.

    ReplyDelete

Post a Comment

Popular posts from this blog

Train sequence / timetable using Arduino

                              Following discussions in a MERG Zoom meeting about potential projects for the Cumbria virtual area group I have started this blog to share my ideas for building a train sequence / timetable system based on an Arduino UNO. The trigger for this project was Andy Robb's article in the MERG journal (June 2020 edition). In it Andy describes using an UNO with a OLED display to produce an electronic station display board.  Having tried out Andy's version I started thinking about expanding the idea and have come up the following list of possibilities: 1. Replace my card index train sequence with an electronic version. 2. Have the train sequence synchronised with the on platform displays. 3. Display an analogue clock on the station display and have it display the train times. 4. Store the position reached in the sequence so that it starts where it left off on power up.  To mak...

Sunday's West of Scotland Area Group Zoom meeting

 Another very well attended Zoom meeting with 34 participants. Davy showed us the commercially available automatic train stopping unit available at £12.53 from Brimar and compared it with the almost identical PMP 15 kit from the MERG Kitlocker at  only £2.65.  With these kind of savings, MERG membership is worth every penny. Chic Thomson treated us to a very entertaining presentation on simulation software for Electronics. INKSCAPE  is a free open  source drawing package. There are many Arduino Simulators available but Arduino Simulator 1.5.1 is an excellent open source offering.  For those interested in PICs simulators are available within the JAL compiler (Just Another Language) and MPLAB Sim is available within MPLAB but seldom advertised. Electronics Workshop 5.1 is a program no longer being developed but a useful tool for investigating any electrical or electronic circuit. Apparently you can Google it but there are a few insecure sites so be careful. F...

Push button Ezypoints

 A few months ago I produced a batch of Ezypoint kits for our local members to overcome a shortage in the Kitlocker.  At that time the kit was produced on stripboard which some members find problematic. An additional PCB board normally available from MERG was not available either.  Alan Turner ( the PCB designer) had only a few boards available but graciously provided me with the gerber files to allow me to order PCBs directly from China . Having sourced all necessary components, the kits were duly made up. I find this simple kit is really useful for automation projects. A toggle switch provides either a HIGH or LOW on the PIC input pin to determine which of the two servo positions is selected. For a particular application, I wanted to use a push button to toggle the position on alternate presses of the button. This involved a rewrite of some of the code in the PIC. I initially developed the program using an Arduino as a means of testing the logic. When this was successfu...