Most trainer kits available in the market start showing wrong results after a few years of usage due to the aging of components. This ADC-DAC Trainer tool would work accurately for many more years.
Analog-to-digital converters (ADC) and digital-to-analog converters (DAC) are integral parts of data processing and widely used industrial and household electronic devices. Different conversion methods include resistor ladder, binary weightage, and cascaded op-amp.
The project uses Arduino IDE as the software development platform, so the trainees can perform ADC and DAC experiments as well as get an idea about the configurations of ADC and DAC in Arduino. The main advantages of Arduino software are easy editing and debugging.
POC Video Tutorial in English:
POC Video Tutorial in Hindi:
ADC-DAC Trainer Circuit Diagram
Fig. 1 shows the circuit diagram of the DAC-ADC trainer. The circuit consists of an ATmega328P microcontroller interfaced with a 20×4 LCD module and I2C module, 8-bit LED digital word display/generator, voltage regulator, voltage divider circuit for ADC input, and nine switching diodes, besides some discrete components such as resistors and capacitors.
The ATmega328P microcontroller used in Arduino Uno has six inbuilt ADCs with 10-bit resolution and six DACs with an 8-bit resolution that uses pulse width modulation (PWM) for DAC conversion. The Arduino IDE is known to be the most popular and cost-effective software development platform.
This circuit using the ATmega328P microcontroller can be seen at www.arduino.cc. The ADC input can be from any of the six inbuilt ADCs in the chip.
In the circuit, the 9V-0-9V AC output of 230V AC step-down transformer X1 is rectified by diodes D11 and D12 and smoothened by capacitors C1 and C2. This 9V DC is connected to the input of regulator IC 7805, which converts it into 5.6V through diode D9. Diode D10 converts it to 5V, which is used as a positive supply to the circuit. Filter capacitors C3, C4, and C5 smoothen the supply voltage.
During operation, the power supply may fall slightly below 5V. The ADC input is connected from a 5.6V supply rail to calibrate the maximum ADC input to exactly 5V using pot VR2. Zener diode ZD1 is connected as protection for the ADC pin.
The circuit mainly works in two modes, ADC and DAC. When switch S10 is on, the device operates in DAC mode. When the switch is off, it toggles to ADC mode.
Diodes D1-D8 are used to show exact data generated by the microcontroller in ADC mode. Improper selection of switch S1-S8 in this mode may cause to light up improper LEDs. The protection diodes D1-D8 prevent the supply from the microcontroller to the common supply rail of DAC input and ensure proper LEDs light up.
ADC-DAC Trainer PCB
The I2C module and 20×4 LCD are used for hardware simplicity. The controller SCL and SDA pins (A4 and A5 of I2C) are connected to the PC5 and PC4 pins of IC2. The ATmega328P runs at an oscillator frequency of 16MHz because crystal XT1 and capacitors C6 and C7 act as decoupling capacitors.
Resistors R1-R9 are current-limiting resistors for respective LEDs. LED9 is for power-on indication and switch S9 is the power-on/off switch. Resistor R11 and capacitor C8 convert the PWM DAC output to normal DC voltage. As per the datasheet of ATmega328P, capacitors C9, and C10 should be connected as near as possible to the power pins of the controller chip during assembly.
The software is written in Arduino C language Sketch and is well explained in the code. The software uses a special technique of employing a single port for input and output, which may be called port manipulation. Special libraries used in the software are Liquid cystalI2C.h and wire.h. Their installation process is available at online sites.
Construction and Testing
Download Arduino IDE from www.arduino.cc and complete the installation process. Open Arduino IDE and install the libraries. Download the source code file and compile Sketch using Arduino IDE. Connect Arduino Uno to your computer and select the proper port and board. Upload Sketch (ADCDAC_Sketch.ino). For further information, visit www.arduino.cc
Assemble all the components on a general-purpose PCB with a proper soldering iron. An actual-size, single-side PCB layout for the trainer circuit is shown in Fig. 2 and its component layout in Fig. 3. Make all the wiring as per the circuit diagram (see Fig. 1). Cross-check for any wrong connections. Remove the programmed ATmega 328P IC from Arduino and insert it in its socket (ensure proper orientation).
(Note. I2C module and 20×4 LCD need to be connected externally using jumper wire as their footprints are not given in the PCB layout.)