I'm an undergraduate chemistry researcher and I need a way to log and control two different heating elements and two different probes. I thought it could be a good learning experience to try my hand at circuit/instrument design and coding as future projects are going to need experience in this. I've been working on a schematic for the past few months but before I actually order any of the components I'd like some feedback from people who know what they're doing. I'll go over the elements of my design.
I'll be using an Arduino Mega as the main microcontroller. I tried adding as many redundancies as possible for lab saftey too. I know a lot of the logic componenets aren't really needed but I wanted to make the control circuitry as independent of coding as possible. This way if I mess up the coding and something bad happens there could be a built in redundancy for the system to not turn on or shut off.
Each heating element will have three possible voltages; first is just regular 120 V mains. Second is a variable transformer that is rated at 0-140 V at 14 A. This will be fed to a voltmeter so the user can see what voltage they are selecting. The third will be two 240 V power inputs with independent power sockets. Each heater can be turned on/off so that the RTD's can be either used as part of a PID or as a thermometer. Each probe can have data logged and they can also be turned on/off. IC5 (AND gate) is there so that data is logged only if the probe is on and if the "log data" switch is high.
For saftey reasons, there will be a switch (heaters on/off) which will control if all the heaters are on/off. This will go to a NOR gate (IC23); if it is high it will send a high signal, if it is low it will "send" a low signal. When the Arduino is booting, it will also send a high signal to IC 23. This will control an N-MOSFET (Q1) giving power to IC-10. IC-10 is a zero-crossing phototriac which controls +120 Vac mains to RY-1 which itself controls the power to RY-2 and RY-3 which are used to power heating elements 1 and 2. IC4 is a NOT gate connected to IC23 and will display if the heaters are on or off, independent of the Arduino.
I tried my hand at some bootleg sequential booting. So for power rails I have +9 V, +3V3, and +5 V. The arduino will run on +9 V. N-MOSFETs will have arduino inputs to control power on sequences; +9 V will turn on first, the +5 V then +3V3. IC14 (AND gate) and IC13 (NOR gate) monitor the +5 V and +3V3 power rails. At power on the Arduino will initiate a boot sequence. If both rails are off, then IC13 will output a high value and tell the arduino that the system is "OFF". If both rails are high, then IC14 will output a high value and tell the Arduino the system is "ON". IC14 and IC13 are fed into IC15 (NOR gate). If both values are low, then it will output a high value to IC18 (OR gate). IC18 monitors IC15 and Switch 4-2 ("Heaters ON/OFF") and if it is high it will tell the Arduino that the system is in "standby".
I chose 4 wire RTDs (Pt100s) because I wanted to avoid using thermocouples and 4 wires offer the most accuracy. The two RTDs are muxed (IC12) then sent to a MAX31865 for processing. I based the wiring for the MAX31865 off of the Arduino's breakout module for the chip. For balancing, R22, 23, 24, 25, 26, and 27 are placed on wires 2 and 3 of the RTDs. R22-25 are for independently calibrating the RTDs and placed before the RTDs are muxed. R26 and 27 are for fine tuned system calibrations and are placed after the RTDs are muxed.
Most people in my lab don't know anything about electronics so I tried to impliment as many visual components as I could. I'll also have labels on the panel (and a proper machined cut out after it is prototyped) along with those visual cues. This will allow easy visual cues as to what's going on. LED's with different functions will have different shapes as well allowing quick visual identification of its use. The neon lights indicate the status of the fuse it is attached to. I chose bulbs with very low current draws (300 uA iirc).
IC11, 17, 19, 20, 21, 22, and 24 are level shifters for inputs/outputs to/from the arduino.
I've never designed a circuit before and I came into this not knowing anything about circuits. So I'd really appreciate any feedback anyone has! I'm fully aware this whole thing could be completley wrong hahaha.
Thanks for reading this far!