Showing posts with label Chemistry. Show all posts
Showing posts with label Chemistry. Show all posts

Wednesday, July 2, 2014

The Mathematics of CERN Style Software for a Cloud Chamber

INTRODUCTION
A cloud chamber is an interesting device that allows a user to see charged particles. it consists of supersaturated alcohol and water vapor which is ionized by the charged particle and begins to precipitate. Alcohol is used because its low freezing point allows for us to quickly reach the critical temperature at which ionization will cause precipitation. In this blogpost I will outline the mathematics required for the system, the mathematics for a program to automate detection, and the mathematics of the particles themselves. In an upcoming blogpost I will demonstrate an implementation of the Cloud Chamber and the software.
OVERVIEW

We begin with a brief overview of the particles themselves, as computations from this section will allow for proper design of the chamber, as well as proper mathematics and design of the subsequent program.

    Suppose a particle P was launched at a velocity V towards Earth. It will be attracted to two plates mounted to the outside of the box following the coulomb equation. Also the degree of ionization is a function of the energy and ionization ability of the particle which adjusts the width of the ionized trail, therefore an algorithm can determine a particle type simply by analyzing trail width.

Program NOTATION
Custom Operator: $x$ returns the length of x
Turing Machine: <Machine|Function*|Tape>


Boolean Algebraic Program
The A* function applies the Y filter transform onto c










Thursday, May 1, 2014

Zener diode technique for Arduino signal control

Zener diodes are reverse biased, a trait which allows for current to flow in the opposite direction of the standard forward direction, whence the zener breakdown voltage had been reached. This useful effect, appropriately deemed the avalanche effect, allows for current to flow "backwards" at an increasing rate as more voltage is applied, as shown in figure. 1.
                         Figure 1
With an Arduino there is a large variety of uses. For example if we wire a battery into the arduino and diode as a circuit in the following way:
1. The negative end if the battery to a GND pin).
2. The positive end if the battery to a digital pin( depends on the board and application). This now goes to the anode(black side) of the zener diode.
3. The orange side(cathode) of the Zener diode is wired to the load usually =5V and =battery current+arduino current.

Now choosing the diode is critical. Arduino digital HIGH( which is traditionally the most produced out of an Arduino pin) reads out at 5V*(presuming you have the pin constantly on during measurement because Pulsing voltageay appear as lower voltage in a traditional multimeter). Therefore we want the zener voltage to be less than 5 volts, the exact choice depends mainly in how much current the load require. Now the arduino can power and control larger Amp devices!

Tuesday, April 29, 2014

MOSFETS and the Arduino for High Voltage PWM


A MOSFET(Metallic Oxide Semiconductor Field Effect Transistor) looks like this:

There are 3 pins, 1 for ground, drain, and source. Schematically the setup can be explained easily. Notice in the schematic that  the 1 pin looks as though it could press down and allow current to flow between 2 and 3. This is exactly how the MOSFET works. It is a lot like a thrysistor. Notice the little Zener diode at the bottom? For those not familiar with schematics it is the Triangle with a 3 line segments on one point.

A Zener Diode
The Zener allows flow of current( in this diagram to the right) constantly but only allows flow backwards if it is over a certain amount. This little addition to the mosfet, though it is small, is groovy for us, because our mosfet won't fail if things go South. So, you may be wondering where this is going, well today I will be covering High Power control circuits using Arduino, Mosfets, and the C language Family.
///////////////////////////////////////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
The MOSFET uses a small input voltage(pin 1), not a full circuit, in order to allow a much larger voltage to pass through the Transistor(for this post transistor will mean MOSFET). This is useful for many reasons.

Currently for an ROV my team and I are working on, a large amount of "tether" seperates the Arduino controller from the Servos it controls. This is problematic for the following reasons:
  1. The Servos being used have chips inside them which can execute programs when no PWM is detected for a sufficient time span. However the robot is sent commands via a CS(Control System) using a USB to Arduino protocol which then sends pwm on the digital 9 pin(keep this in mind, only certain pins can handle pwm, there are actually only 8 on the Arduino Uno which is the board of choice).
  2. The voltage for power was too low but this was boosted with a simple parallel circuit solution, we will replace an op amp.
  3. The PWM is not reaching the Servos(it is only 5V and the current of the Arduino pins).
In order to fix this dilemma, the MOSFET will be utilized to use pulse width modulation with a "stronger" electrical source. In this case we will capture our energy from a 25 amp, 12-14.38 volt source.
Basic code outline:
Outline of program in C++

Wiring:
First wire the pwm (pin 9) into the gate of the MOSFET. This signal controls electrical flow through te MOSFET.

Next is the source, from the + of our  input power,( the source is where the electrons flow from. They have come from the p to make a bridge connecting the n material within the MOSFET, or the entire situation is reversed as is your mosfet's function.

Drain is to the load.


Sunday, April 13, 2014

Arduino and Vernier EC(Electroconductivity) Probe

Attaching Vernier Sensors to an Arduino rarely requires all pins, 
for the EC it requires only 3, The Ground, 5V, and A0 pins.
 
Code for the Arduino:
  
float Count;
float Voltage;
float SensorReading;
int TimeBetweenReadings = 500; // in ms
int ReadingNumber=0;
float Time;
float Intercept = -19.295;
float Slope = 175.416;
void setup()
{
Serial.begin(9600); //starts serial @ 9600 sigs per second
Serial.println("Data Set");
Serial.print("time");
Serial.println ("EC"); //Sensor Name
Serial.print("sec"); //time units
Serial.println ("μS"); //units(micro siemens=μS)
}
void loop()
{
//the print below does the division first to avoid overflow of Arduino
Serial.print(ReadingNumber/1000.0*TimeBetweenReadings);
Count = analogRead(A0);
Voltage = Count / 1024 * 5.0;// convert from count to raw voltage
SensorReading= Intercept + Voltage * Slope;
Serial.print("\t"); // tab character
Serial.println(SensorReading);
delay(TimeBetweenReadings);// delay in between reads for stability
ReadingNumber++;
}

Circuit Diagram: 
 
Data Collection
 Physical circuit, electrical tape is used to hold the pins in contact
 

Sunday, February 16, 2014

Chip Coolant System

A passive CPU cooling system that utilizes evaporative properties of a liquid. Glass allows for excellent heat conductivity to transfer energy into the fluid.