Arduino Mainframe With Punchcards

About the project

An Arduino Uno, turned into a "mainframe", controlled through punchcards, output through serial - demonstrated to add two numbers in a custom programming environment running on Arduino, called 1V0 Tz III.

Project info

Difficulty: Easy

Platforms: Arduino

Estimated time: 1 day

License: GNU General Public License, version 3 or later (GPL3+)

Items used in this project

Hardware components

6 light emitting diodes, 6 photoresistors, 1 Arduino UNO, 1 Arduino USB cable, wires, wood 6 light emitting diodes, 6 photoresistors, 1 Arduino UNO, 1 Arduino USB cable, wires, wood Each photoresistor is made to connect to an Arduino analog input, A0-A5. x 1

Software apps and online services

Arduino IDE, Arduino IDE, The sketch you need to upload through the Arduino IDE, and the output by the computer will appear through the serial port.

Hand tools and fabrication machines

scalpel, glue scalpel, glue You need to make a sort of "chamber" through which to pass the punchcard. x 1


Arduino Mainframe driven by punchcards

This endeavor is to turn an Arduino UNO into a punchcard-controlled computer whose output results are shown on its serial port (USB to your computer) - as shown here:

The six light emitting diodes are hooked up in parallel to be lit up by the Arduino (no special control necessary, they shall just be made to emit light), and opposed each diode shall be one photoresistor. The lights shall be arranged physically in a line, and in a best practicable way shall be so isolated from each other that neighboring lights do not trigger neighboring photoresistors, but each LED only "its own" photoresistor. The photoresistors are to be connected to the A0-A5 analog inputs of the Arduino UNO. The whole setup shall be made so that a carton card can pass between the lights and the photoresistors, and where there are "punches" on the card, the light will shine on the respective LED's resistor - and where the carton is intact, not.

That way, different resistance patterns will be presented to the photoresistors and hence, the Arduino UNO's analog pins, which in turn will allow the Arduino to thus read data from the punchcard. This data is channeled to the internal programming environment, 1V0, in form of numbers, and from there, computation is undertaken whose results are shown through the Arduino UNO's serial port.

Schematics, diagrams and documents


Shown is how to hook up the LEDs and the photoresistors to the Arduino, so that a card can be made to pass between them and through selective illumination - depending on is there a hole or not - to produce a signal perceivable by the Arduino's analog input pins.


Arduino sketch

This is the sketch that interprets the punchcard reader signals and undertakes computations in the 1V0 Tz III programming environment running on the Arduino (to be yet described; basically, a sort of miniature virtual machine running on Arduino, but in variants even down to Attiny85).


Leave your feedback...