Git Product home page Git Product logo

ca3162-61_emulator's Introduction

Emulator to replace both Intersil CA3161(E)/CA3162(E) using Arduino on bare ATmega

This Arduino sketch emulates both Intersil CA3161 and CA3162 (also NTE2054/NTE2032, ECG2054/ECG2032 ) used in many old device as a simple three digit voltmeter. It's written to run on bare ATmega88 or ATmega328 MCU, but can be easily ported to other Arduinos/MCUs.

Differences from the original CA2162(E):

  • Emulator don't have differential input at this time and accepts only positive voltage as input, i.e. works only in configurations where CA3162E pin 10 is connected to ground.
  • Zero and gain ajustment can be done only calibrated using the serial interface (9600bps 8n1)
  • No hold mode, no fast mode.
  • ADC resolution depends on the reference voltage used. In case of ATmega8 internal AREF (very inaccurate) it will be 3mV (or ~3 degrees of Celsius for SL-30).

Emulator requires minimum external components:

  • Decoupling ATmega VCC and AREF pins to GND via 0.1uF ceramic caps is required.
  • To be interfaced with the three BJT PNP transistors based digit drivers, it needs ~ 1K resistors in transistor base lines.
  • It's recommended to connect RESET pin to VCC using a 10K resistor.
  • (OPTIONAL) You could use an external voltage reference to increment the ADC precision, like the LM4040 voltage reference diode.

Calibration

To calibrate the emulator by voltage:

  • Connect Arduino serial interface and use the command STATUS to get the uncalibrate voltage values.

  • Connect your voltmeter to Arduino A0 pin (PC0 pin of ATmega, pin 23 on DIP28);

  • Write down both values: the uncalibrate value and the one displayed on the voltmeter display;

  • Repeat previous step 2-3 times, at different input values. See the table below for example:

    Display Voltmeter, mV
    83 100
    184 203
    307 329
    589 620
  • Find linear approximation for this data. You could use Wolframalpha to calculate zero and gain by entering the data like this: linear fit {83, 100}, {184, 203}, {307, 329}, {589, 620}. You will get an expression like this: 1.02812 x + 14.0734

  • Use the multiplier from that expression and use the command CALIB to set both the values:

    CALIB 1.02812 14.0734

  • If the value displayed on the three segment is correct, save the calibration values in the eeprom, using the command STORE

External useful informations

ca3162-61_emulator's People

Contributors

lorf avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.