|A Digitally Controlled Analog VFO.|
To My Dear Friend Bill, N2CQR.
This page is dedicated to you, Bill, who dearly loves Analog VFO's. In 2018 N2CQR designed a project around an HRO dial mechanism. It was quite the project but alas Bill discovered that one of the primary virtues of the HRO dial, repeatability, was in fact not the case. Bill has now resolved this issue with some hardware changes; but it is a system long in the tooth.
Being an ardent lover of the Arduino and its many capabilities, I asked myself why couldn't we make an HRO substitute using a stepper motor. A bit of time on the Inet and some N6QW hacking enabled me to make a first prototype which shows great promise.
Firstly I bought five stepper motors and the control boards for about $12 on Amazon. A tour of You Tube revealed many application/tutorial videos. But one in particular from www.brainy-bits.com was particularly good. The code is pretty simple and I modified the code to slow the rotation speed and the size of the step for each step. In the video you also see my add of an LCD display which later on as you will see adds a whole new dimension to my approach. I have shown the code below.
BUT BUT you must also include the LiquidCrystal-I2C .h and .cpp files in the sketch and in the same folder. Also you must use the wiring diagram shown in his website. I was a bit confused by what is in his code and the actual pictorial wiring diagram. Wire per the pictorial and I did use an Optical Encoder versus my typical mechanical ones.
Yes I know I will get a crap load of email about how you connect up the LCD. I used the I2C backpack adapter which affixes to the back of the LCD and only needs four wires from the Arduino Uno (or other Arduino) which includes: +5 Volts, Ground, SDA from Pin A4 and SCL from Pin A5. Now not all LCD's and backpacks use the same I2C address so in the code there are three. Typically the 0x27 works but you may have to try 0x3F and even 0x20. If you are lost at this point, put down the iron and go watch Fox News!
Next is the code for the automatic zeroing of the capacitor on power down. The LiquidCrystal_I2C .h and .cpp files are included files and must be in the same folder as the sletch.
This is the schematic of the wiring of the Arduino Motor Start Stop power on power off. The main Push Button, Latch Relay and Relay #2 are external to the Arduino. Power "ON" is completely external to Arduino and does not require the power to the Arduino. Power OFF requires the Arduino to be working. When I used to be in the controls business selling Modicon Micro 84 PLC's to allay the fears of "newbie" customers we could add an external NC Push Button switch in series with with the chain so you could enact an emergency shutdown. It was a honkin, big, old and bold RED Knob.
I have now further refined this code so that on power down the location will be set to the "ZERO" position so that Bill's Digitally Controlled Analog VFO will always have repeatable accuracy.
I have also procured a larger NEMA 17 stepper motor and control board for additional testing using much larger capacitors. Vision if you will not one, but two Arduino Uno R3's in a control scheme that one Arduino Controls only one NEMA 17 Stepper Motor. Boom we now have the makings of a remotely tuned "T Type" Antenna Tuner. Yes you could do it with an Arduino Mega2560 and eliminate the second Uno R3. In fact brainy-bits describes how to put two displays on a single Arduino. But I have a junk box full of Uno R3's and a few 16X2 LCD's. So the hardware is already here.
A Remote Controlled Digitally Tuned
I keep thinking of N2CQR who must brave the elements to tune up his outdoor "trans match" to change bands. It may now be possible to do this via a 415 MHz radio link from his shack to the outdoor antenna tuner. Look Ma, no wires!
Regrettably Bill, it is one of those black boxes that you simply can't see all of the resistors, capacitors, coils and caps; but when it is below Zero outside --sure nice to tune the antenna from the shack. The bonus --it is a true homebrew Tuner.
I hope to unveil it in time for our next Podcast.