/Designs/Spectrograph/SW/test_hw/test_hw.pde
5,59 → 5,30
#define light0 0x44 // A0 = L (I2C light0)
#define light1 0x45 // A0 = H (I2C light0)
 
#define LAMP1 13 // Callibration Lamp 1
#define LAMP2 6 // Callibration Lamp 2
#define FW1 7 // FilterWheel 1
#define FW2 8 // FilterWheel 1
#define FW3 3 // FilterWheel 1
 
const int steps = 200; //3200; // change this to fit the number of steps
const int sspeed = 100; // stepper motor speed
 
// initialize the stepper library on pins
#define M1 9
#define M2 10
#define M3 11
#define M4 12
Stepper myStepper(steps, M1,M2,M3,M4);
Stepper myStepper(steps, 9,10,11,12);
 
// DS18S20 Temperature chip
OneWire ds(5); // 1-Wire
byte addr[8]; // Addres
boolean sense;
 
void setup()
{
sense=true;
pinMode(LAMP1, OUTPUT);
pinMode(LAMP2, OUTPUT);
pinMode(FW1, OUTPUT);
pinMode(FW2, OUTPUT);
pinMode(FW3, OUTPUT);
pinMode(13, OUTPUT); // LED
digitalWrite(13, LOW); // LED ON
 
// initialize the serial port:
Serial.begin(9600);
Wire.begin(); // join i2c bus (light0 optional for master)
}
 
// search for DS
if ( !ds.search(addr))
{
ds.reset_search();
delay(250);
return;
}
 
if ( OneWire::crc8( addr, 7) != addr[7])
{
Serial.print("CRC is not valid!\n");
return;
}
byte sense=0;
 
}
 
 
void loop()
{
byte i;
66,14 → 37,6
byte inByte;
int dd=0;
digitalWrite(LAMP1, HIGH); // All outputs OFF
digitalWrite(LAMP2, HIGH);
digitalWrite(FW1, HIGH);
digitalWrite(FW2, HIGH);
digitalWrite(FW3, HIGH);
delay(300);
digitalWrite(LAMP1, LOW); // blik
 
// if we get a valid byte
if (Serial.available() > 0)
{
85,8 → 48,9
}
//--------------------------------------------------------- Motor
if (sense)
if(sense)
{
digitalWrite(13, LOW); // blik
// step one revolution in one direction:
Serial.println("clockwise");
myStepper.setSpeed(sspeed/2);
96,13 → 60,16
myStepper.setSpeed(sspeed/2);
myStepper.step(20);
delay(50);
digitalWrite(M1, LOW);
digitalWrite(M2, LOW);
digitalWrite(M3, LOW);
digitalWrite(M4, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
delay(500);
sense=0;
}
else
{
digitalWrite(13, HIGH); // blik
// step one revolution in the other direction:
Serial.println("counterclockwise");
myStepper.setSpeed(sspeed/2);
112,15 → 79,29
myStepper.setSpeed(sspeed/2);
myStepper.step(-20);
delay(50);
digitalWrite(M1, LOW);
digitalWrite(M2, LOW);
digitalWrite(M3, LOW);
digitalWrite(M4, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
delay(500);
sense=1;
}
sense=!sense;
digitalWrite(LAMP2, LOW); // blik
//--------------------------------------------------------- 1-Wire bus
 
//--------------------------------------------------------- 1-Wire bus
// search for DS
if ( !ds.search(addr))
{
ds.reset_search();
delay(250);
return;
}
 
if ( OneWire::crc8( addr, 7) != addr[7])
{
Serial.print("CRC is not valid!\n");
return;
}
ds.reset();
ds.select(addr);
127,8 → 108,10
ds.write(0x44,1); // start conversion
 
// Delay for measurement, maybe 750ms is enough, maybe not
delay(800);
digitalWrite(FW1, LOW); // blik
digitalWrite(13, HIGH); // set the LED on
delay(500);
digitalWrite(13, LOW); // set the LED off
delay(500);
 
present = ds.reset();
ds.select(addr);
154,9 → 137,11
Wire.send(0b11000001); // setup (eye light sensing; measurement range 2 [4000 lx])
Wire.endTransmission(); // stop transmitting
 
// Delay for measurement, maybe 100ms is enough, maybe not
delay(110);
digitalWrite(FW2, LOW); // blik
// Delay for measurement
digitalWrite(13, HIGH); // set the LED on
delay(55);
digitalWrite(13, LOW); // set the LED off
delay(55);
 
// Connect to device and set register light0
Wire.beginTransmission(light0);
200,9 → 185,11
Wire.send(0b11000001); // setup (eye light sensing; measurement range 2 [4000 lx])
Wire.endTransmission(); // stop transmitting
 
// Delay for measurement, maybe 100ms is enough, maybe not
delay(110);
digitalWrite(FW3, LOW); // blik
// Delay for measurement
digitalWrite(13, HIGH); // set the LED on
delay(55);
digitalWrite(13, LOW); // set the LED off
delay(55);
 
// Connect to device and set register light0
Wire.beginTransmission(light1);
239,7 → 226,6
Wire.endTransmission(); // stop transmitting
Serial.println(dd, HEX);
 
// Accelerometer
Serial.print("X=");
Serial.print(analogRead(A0)-512, DEC);
Serial.print(" Y=");