/* PhotodiodeReadOut Arduino Script. Reads out channel 0-3 on an arduino and print out the time and result to the serial port. Ch 0 on -> time 0001 Ch 1 on -> time 0010 ... Ch 2,3 on -> time 1100 etc... Created: 15 Mar 2013 by Wing H To, UCSB HEX Group Updated: 25 Apr 2013 by Wing H To, UCSB HEX Group */ #include #include void setup() { Serial.begin(9600); } //int NIter=0;//global variable for testing only. // the loop routine runs over and over again forever: void loop() { //NIter++;// Loop counter. int t0,t1,t2,t3; // Read out each digital channel. bool d0 = digitalRead(0); t0 = millis(); bool d1 = digitalRead(1); t1 = millis(); bool d2 = digitalRead(2); t2 = millis(); bool d3 = digitalRead(3); t3 = millis(); //Serial.println(t0); //Serial.println(t1); //Serial.println(t2); //Serial.println(t3); unsigned int output = 0; if(d0) output+=1; if(d1) output+=2; if(d2) output+=4; if(d3) output+=8; // Output the result on the serial port. // Each print takes ~ 5 ms. if(output > 0){ //Serial.print(NIter); Serial.print(millis()/1000.); Serial.print(" "); if(output < 8) Serial.print(0); else delay(5); if(output < 4) Serial.print(0); else delay(5); if(output < 2) Serial.print(0); else delay(5); Serial.println(output,BIN); } output = 0; delay(100); // Don't go below 20 ms. }