I checked my email this morning and discovered kind and knowledgeable people HAVE been responding to my initial post! I thought S.O. sent a notification each time someone responded.
Anyway, this dimmer problem has been around longer than you would think. A few months ago, I was playing with an Arduino and the GPS module. Since I wanted more than just the NMEA sentences on the serial monitor, I got the basic GPS code to work with a 2.3" LCD module. Nicely formatted, it displayed the time, the date, and the number of satellites it was receiving data from.
With that design, I had to be within a few feet of the display to read the time, which was irritating. In the back of my mind, I knew I had 20 or more common anode 2.3" 7-segment displays 'recovered' from a previous work place, I set about designing an Arduino MEGA circuit that could:-
Get the time from the satellites
Massage the data (the time) to generate BCD outputs via pins 22 to 53
Drive the 2.3" LED displays using LS47 decoders
This idea was too complex for stripboard. But I didn't know how to use a PCB designer.
"Hey Google, what are some good PCB designers?"
I was directed to KiCad. A free PCB deseigner with good community support, and lots of 'how to' YouTube clips.
Over the next month or so, I got the hang of KiCad's environment, and put together a complete schematic of what I wanted to achieve. I didn't care which Arduino output pin was connected to which BCD decoder, I could fix that in code.
I spent the next week or so getting the hang of the PCB editor and, unbelievable even to me, managed to layout the PCB with no track jumpers. It's a double sided PCB.
"Hey Google, what are some PCB manufacturers for hobbyists?"
I was directed to PCBWay. (Yes, there are lots of others, but went with these guys).
My first upload was rejected. "Where are the drill files?"
Drill what now?
More effort, exported the drill files, and uploaded again. Rejected again, due to poorly laid out and unconnected tracks. (Right! Is THAT what that means!)
More fixing, and uploaded again. Success! My design was accepted.
I uploaded this design, knowing FULL WELL:
My PCB layout did not provide power to the Arduino
The Arduino had to connected to the PCB using a ribbon cable
There was no dimmer circuit
The tracks were probably not beefy enough to carry the current
The GPS module connections were not catered for on the PCB
But I was impatient. Remember, this is my first time ever using a PCB designer and having PCBs actually manufactured.
A week or so later, the PCBs arrived. Wow. Impressive stuff.
I quickly assembled a PCB, and fired it up. No problems, except NONE of the displays showed meaningful numbers. Oh right, the BCD-output-connected-to-any-pin problem.
A day or so later, I had the Arduino code fixed, and the clock was displaying dead accurate time. And as a bonus, the number of satellites was being shown on a separate, 0.5" 7-segment display. 0 through 9.
I got to work with the version 2 PCB design.
I moved the header for the Arduino to the centre of the board, and provided pins for power and ground. Moving that header meant a complete re-layout of the PCB tracks, but I am proud to say I still got it done with no track jumpers.
I connected the GPS module to pins on the Mega which support serial comms.
I slightly reworked the 12v power to the display anodes so I could 'bog in' a dimmer circuit later.
That's how it sat for a few weeks, as I got angry for not being able to make (find) a suitable dimmer circuit. I finally relented and posted my stupid sounding problem here, expecting no replies.
My email didn't show any replies to my S.O. query, so I battled on. I finally cobbled together a circuit around driving the base of a BD140 with 5v, rather than the 12v I was saturating it with.
That worked MUCH better. With full light, I got 11.2v at the collector, and fully black I got close to 0v! Hopefully I can figure out how to upload images. I'd also like to upload my KiCad schematic and PCB. There's absolutely no etiquette to the schematic, it was laid out so my brain could follow it.
With all the fabulous answers provided here (thankyou all so much!) I will probably lump for the simplest suggestion shown by glen_geek.


The clock is mounted in a merbau timber box, with red acrylic, and with the GPS antenna, the num-of-sats display, and the LDR on top.
The version 2 PCB is ready to send to the manufacturers. I will test, then integrate glen_geek's circuit.
Thankyou again evewryone, for providing answers to such a newbie problem!