// two servos [H: horizontal, V: vertical] to place the samples inside the MF experiment
// and exchange it with new sample.
#include <Servo.h>
#include <Wire.h> // making variables global
#define aref_voltage 3.3 // tie 3.3V to AREF
int finish = 100000; // experiment time
int MagOnTime = 200; // MF frequency = 1/(2*100ms) = 5 Hz
int WaterSensorValue = 0;
int PowerSupplyTry = 1;
// Assigning the pins; PWM pins: D3, D5, D6, D9, D10, D11
int tempPin = 0;
//int Pin1 = 1;
int HBridgeForward = 2;
int HBridgeBack = 3;
int RelayValve = 4;
int RelayCoil = 5;
int BlueLedWater = 6;
//int Pin7 = 7;
int RedLedTemp = 8;
int GreenLedExpDone = 9;
Servo servoH; //D10
Servo servoV; //D11
int WaterLeakLed = 12;
int WaterSensor = A7;
// servo setting
int angle = 90;
int RotAngle = 10;
int Hstart = 0;
int Hfinish = 180;
void setup() {
Serial.begin(9600);
analogReference(EXTERNAL); // Feed the 3.3v cable back into the AREF pin
pinMode(HBridgeForward, OUTPUT);
pinMode(HBridgeBack, OUTPUT);
pinMode(BlueLedWater, OUTPUT); // Blue: water cooling
pinMode(RedLedTemp, OUTPUT); // Red: power supply Off
pinMode(GreenLedExpDone, OUTPUT); // Green: experiment done
pinMode(RelayValve, OUTPUT); // D4: Valve control pin
pinMode(RelayCoil, OUTPUT); // D5: Power supply control pin
servoH.attach(10); // Horizontal servo
servoV.attach(11); // Vertical servo
}
void loop() {
while(Hstart < Hfinish){
for(angle = Hstart; angle <= Hstart + RotAngle; angle += 1){
servoH.write(angle);
delay(20);
}
delay(1000);
for(angle = 0; angle <= 180; angle+=1){
servoV.write(angle);
delay(20);
}
delay(2000); // here we do the experiment; so, you can implement the code in "BioExperiment" here.
for(angle = 180; angle >= 0; angle-=1){
servoV.write(angle);
delay(20);
}
Hstart += RotAngle;
}
}