11/*
2- Laser Diode Controller Controller
2+ A Controller for the Thorlabs LDC205C series equipment.
33
44 Main Functions:
55 * ENABLE/DISABLE Laser -> Pin 13 + LED
6- * SET Laser Current -> Pin 11 (Changed to 31 kHz
6+ * SET Laser Current -> Pin 11 (Changed to 31 kHz)
77 * GET Laser Current -> A0
88 LDC205C -> k=50mA/V
99
10- Linear Regression of dataset: Table1_1, using function: A*x+B
11- Weighting Method: No weighting
12- From x = 1,083000000000000e+01 to x = 1,127000000000000e+02
10+ Commands from Cobolt Gen5.
11+
12+ Power fit: P=AI+b
1313 B (y-intercept) = 2,158048764451327e+01 +/- 8,999878654085594e-02
1414 A (slope) = 6,979088703376868e-01 +/- 1,292424325833072e-03
1515*/
1616
17- // #include <dht.h>
18- // dht DHT;
19-
2017unsigned long serialNumber = 302432729 ;
2118float time;
2219
@@ -36,10 +33,8 @@ boolean stringComplete = false; // whether the string is complete
3633void setup () {
3734 pinMode (laserREM, OUTPUT);
3835 pinMode (laserMod, OUTPUT);
39- // Change PWM Frequency for Timer2.
40- // Copied the relevant part from here:
41- // http://playground.arduino.cc/Code/PwmFrequency
42- // f=~31kHZ
36+ // Change PWM Frequency for Timer2. f=~31kHZ
37+ // Copied the relevant part from here: http://playground.arduino.cc/Code/PwmFrequency
4338 TCCR2B = TCCR2B & 0b11111000 | 0x01 ;
4439 Serial.begin (115200 );
4540 // reserve 200 bytes for the inputString:
@@ -80,13 +75,12 @@ float toFloat(String s) {
8075void loop () {
8176 // get any incoming bytes:
8277 if (stringComplete) {
83- // Serial.println(inputString);
84- // Status of 4 LEDs
78+ // Status of 4 LEDs
8579 if (inputString.startsWith (" leds?" )) {
8680 // POWER ON + LASER ON + LASER LOCK + ERROR = 1 + 2 + 4 + 8
8781 int leds = 1 +digitalRead (laserREM)*6 ;
8882 Serial.println (leds);
89- // Laser ENABLE/DISABLE/STATE
83+ // Laser ENABLE/DISABLE/STATE
9084 } else if (inputString.startsWith (" l" )) {
9185 if (inputString.substring (1 ,2 ) == " 0" ) {
9286 digitalWrite (laserREM,LOW);
@@ -96,9 +90,6 @@ void loop() {
9690 Serial.println (" OK\r " );
9791 } else if (inputString.substring (1 ,2 ) == " ?" ) {
9892 Serial.println (digitalRead (laserREM));
99- } else {
100- Serial.print (" Syntax Error: " );
101- Serial.println (inputString);
10293 }
10394// Drive Current GET
10495 } else if (inputString.startsWith (" i?" )) {
@@ -118,46 +109,17 @@ void loop() {
118109 if (fpi > 100.0 ) fpi = 100.0 ;
119110 setCurrent (fpi);
120111 }
121- // DHT22 Sensor TEMP/HUM
122- // } else if (inputString.startsWith("d")) {
123- // int chk = DHT.read22(dht22Pin);
124- // switch (chk) {
125- // case DHTLIB_OK:
126- // //Serial.print("OK,\t");
127- // break;
128- // case DHTLIB_ERROR_CHECKSUM:
129- // Serial.print("Checksum error,\t");
130- // break;
131- // case DHTLIB_ERROR_TIMEOUT:
132- // Serial.print("Time out error,\t");
133- // break;
134- // default:
135- // Serial.print("Unknown error,\t");
136- // break;
137- // }
138- // if (inputString.substring(1,3) == "t?") {
139- // Serial.println(DHT.temperature, 1);
140- // } else if (inputString.substring(1,3) == "h?") {
141- // Serial.println(DHT.humidity, 1);
142- // } else if (inputString.substring(1,2) == "?") {
143- // Serial.print(DHT.humidity, 1);
144- // Serial.print("; ");
145- // Serial.println(DHT.temperature, 1);
146- // } else {
147- // Serial.print("Syntax Error: ");
148- // Serial.println(inputString);
149- // }
150112// Serial Number
151113 } else if (inputString.startsWith (" sn?" )) {
152114 Serial.println (serialNumber);
153115// Working seconds
154116 } else if (inputString.startsWith (" hrs?" )) {
155117 time = millis ()/60000.0 ;
156118 Serial.println (time);
157- // Interlock State
119+ // Interlock State, no real code behind
158120 } else if (inputString.startsWith (" ilk?" )) {
159121 Serial.println (" 0" );
160- // Operating fault GET
122+ // Operating fault GET, no real code behind
161123 } else if (inputString.startsWith (" f?" )) {
162124 Serial.println (" 0" );
163125 } else {
@@ -170,10 +132,10 @@ void loop() {
170132 }
171133}
172134/*
173- SerialEvent occurs whenever a new data comes in the
174- hardware serial RX. This routine is run between each
135+ SerialEvent occurs whenever a new data comes in the
136+ hardware serial RX. This routine is run between each
175137 time loop() runs, so using delay inside loop can delay
176- response. Multiple bytes of data may be available.
138+ response. Multiple bytes of data may be available.
177139 */
178140void serialEvent () {
179141 while (Serial.available ()) {
@@ -188,5 +150,3 @@ void serialEvent() {
188150 }
189151 }
190152}
191-
192-
0 commit comments