Welcome to The Hardware Tutor -- the BASIC programmer's guide to understanding hardware and electronic circuits. In this tutorial I will cover many of the principles and concepts that go into the physical design of audio and digital circuits, as well as a number of related topics. All of the subjects will be explained in the clearest language possible, and the use of jargon will be avoided. The important thing to remember is that there is nothing inherently difficult about understanding electronics, and all that's really required is a genuine desire to learn. If you can program a computer, then you've obviously got the right kind of aptitude.
When this tutorial was first conceived, I had a clear idea as to how the topics should be presented. No mathematics would ever be used in any of the discussions, and technical words that contained more than three syllables were to be avoided. It is my sincere belief that nearly any electronic concept can be explained in practical, perhaps mechanical terms to those who may be technically uneducated, but are none the less seriously interested.
Not unlike programming, electronics is a broad subject that encompasses a wide range of topics. For example, there is audio, radio, television, microwave, and of course digital. And within these disciplines are a number of other, even more specialized areas. In this discussion we won't get involved with esoteric subjects, though we will certainly go beyond simple analog, digital, and computer circuits.
It is amazing how often technical terms get tossed around in the popular press, but with no meaningful explanation. For example, how many programmers really understand the operation of a switching power supply? Or a 120 nanosecond RAM chip? Even the distinction between parallel and serial ports eludes many who are otherwise quite knowledgeable about their PCs. In truth, none of these concepts are difficult to grasp, once they have been clearly explained.
Obviously, a thorough understanding of electronics is not essential to being a good programmer, though it can occasionally be useful with assembly language. For example, you may need to write a routine to position a floppy drive head, or control video synchronizing on a display card. But aside from the practical considerations such as repairing or modifying your PC, electronics can also be fun -- even if you're not the technical type.
I know many programmers who are quite interested in the inner workings of their equipment, but get discouraged by all the math and physics they believe must be learned before a true appreciation is possible. After all, electronics is somewhat less obvious than, say, mechanical engineering, where you can readily observe the action of the various gears, pulleys, and levers. Similarly, it's not easy to envision electricity in a wire, compared with the flow of water through a pipe, or the action of a faucet where you can see, feel, and hear the mechanisms at work.
I want to assure you that electricity and electronic components adhere to the exact same laws of physics as their mechanical counterparts. For example, just as it is hard to move a lot of water through a very small pipe, it is equally difficult to move much electricity through a thin gauge of wire. And to carry the analogy even further, voltage can be likened to the amount of water pressure, while current is similar to the number of gallons per minute flowing through the pipe.
When you turn off a bathroom faucet, the pressure is still there in the pipes. Likewise, when you unplug a lamp from the outlet on the wall, the voltage is still present at the socket, even if it isn't being consumed. But before we go off into the world of volts and amps, let's first consider some more fundamental concepts.