Have you ever wanted to control something with your TI99 without getting complicated?
The versatility of the common 555 timer I.C will open up your Joystick Port using only TI BASIC with CONSOLE ONLY!
Inspired by the weather station project, I started looking at the possibility of using the joystick port for sensing and control. Various configurations of the 555 timer I.C will allow voltage (temperature) measurement, Relay or LED drive and motor drive (forward & reverse) upto 200mA and 15 volts.
Come the next rainy Sunday, I will test the possibilities but meanwhile I offer the following in case you would like to try them yourself. By using 5 volt systems you are unlikely to do any damage but if you want to switch Mains Power then you better ask me first!
We have 5 inputs giving us two planes of X and Y or 5(10) linear 'stops'; with the use of a 555 timer we can measure it's pulse width for a rudimentary Analogue to Digital converter.
We have 2 outputs for controlling relays or a small electric motor using the 555 timer I.C as a latch and power output stage.
If necessary, we can 'borrow' the 0 volts from the cassette port and 'steal' +12 volts from the Video connector.
This means that we have the capability of controlling a 5 floor elevator from our TI99 using only the Joystick port and a couple of 555 timer I.Cs. Now, I don't suppose there are many of you out there that have a 4 story house in which you have just been waiting to install a private elevator but it might be a nice School project for the kids. More usefully, it is possible to measure temperature, detect limit switches and switch a relay or drive small motors using a couple of 555 timer I.Cs.
Looking at the Joystick port we can see that there are two outputs and five inputs and the principle of operation is that a key press is indicated when an input line is taken 'low' and the strobed output line (Joystick 1 or 2) determines which specific key.
The Joystick port has an intricate circuit that is mainly to do with protecting the TI99 from the outside world.
The inputs are relatively simple in that they are held at +5 volts and go to the port through a switch de-bounce filter and current limiting resistors. We can interface to the inputs with a switch, transistor, FET or opto-coupler. The use of a transistor is not advised due to the possibility of Emitter-Base reverse breakdown in this configuration and an opto-coupler is a good option if connecting to higher voltages or external sources.
I propose to use the Joystick port strobe outputs to trigger a 555 timer I.C and the Joystick inputs for limit indicators or sampling. I will use the Joystick 'low' strobe to trigger external circuits, in particular, a 555 timer I.C as it has a useful power output stage and latching function.
This is the explanation of the output drive circuit so you can skip this paragraph. The schematic is attached:
The configuration of the Joystick outputs is a transistor whose job is to drive the voltage on the 1K5 resistor to +5 volts or to a logic 'low' to switch the key inputs. Normally the transistor is 'on' and holding the output at +5 volts by driving the 1K5 resistor that is connected to -5 volts. What happens when the transistor is strobed is that the Base is taken to logic 'low' and so the voltage on the 1K5 resistor is reduced to a fraction of a volt below 0 volts which will switch an input when a key is pressed. The 1K5 resistor is biased towards -5 volts whose voltage drop is controlled by the transistor and so it can be deduced that we can 'sink' upto 2.5mA into an input and maintain a logic 'low' input. Similarly we can 'source' several mA without dropping below the logic 'high' level.