Calibration
// iter # : move dist (mm) // x & y direction // 1800 = 180 mm // 1 count = 0.1 mm // z direction // 15000 = 150 mm // 1 count = 0.01 mm void moveXYZToOrigin(){ touchXsensor(); // in Calibration.INO touchYsensor(); touchZsensor(); } void touchXsensor(){ int count = 0; while (!digitalRead(X_MIN_PIN)) { Serial.println(digitalRead(X_MIN_PIN)); digitalWrite(X_STEP_PIN, HIGH); delayMicroseconds(motorSpeed); digitalWrite(X_STEP_PIN, LOW); delayMicroseconds(motorSpeed); count++; } Serial.print("X home: "); Serial.println(count); } void touchYsensor(){ int count = 0; while (!digitalRead(Y_MIN_PIN)) { //Serial.println(digitalRead(X_MIN_PIN)); digitalWrite(Y_STEP_PIN, HIGH); delayMicroseconds(motorSpeed); digitalWrite(Y_STEP_PIN, LOW); delayMicroseconds(motorSpeed); count++; } Serial.print("Y home: "); Serial.println(count); } void touchZsensor(){ int count = 0; while (!digitalRead(Z_MIN_PIN)) { digitalWrite(Z_STEP_PIN, HIGH); delayMicroseconds(motorSpeed); digitalWrite(Z_STEP_PIN, LOW); delayMicroseconds(motorSpeed); count++; } Serial.print("Z home: "); Serial.println(count); } void cal_X(){ for (int i = 0; i < 100; i++) { digitalWrite(X_STEP_PIN, HIGH); delay(5); digitalWrite(X_STEP_PIN, LOW); delay(5); } delay(100); } void cal_Y(){ for (int i = 0; i < 100; i++) { digitalWrite(Y_STEP_PIN, HIGH); delay(5); digitalWrite(Y_STEP_PIN, LOW); delay(5); } delay(100); } void cal_Z_old(){ for (int i = 0; i < 100; i++) { digitalWrite(Z_STEP_PIN, HIGH); delay(5); digitalWrite(Z_STEP_PIN, LOW); delay(5); } delay(100); } void cal_Z(){ int count = 0; while(count <= 20000) { digitalWrite(Z_STEP_PIN, HIGH); delay(1); digitalWrite(Z_STEP_PIN, LOW); delay(1); count++; Serial.println(count); } delay(100000); }
Initialization
void ini_setting(){ // pinmode setting pinMode(X_STEP_PIN, OUTPUT); pinMode(X_DIR_PIN, OUTPUT); pinMode(X_ENABLE_PIN, OUTPUT); pinMode(Y_STEP_PIN, OUTPUT); pinMode(Y_DIR_PIN, OUTPUT); pinMode(Y_ENABLE_PIN, OUTPUT); pinMode(Z_STEP_PIN, OUTPUT); pinMode(Z_DIR_PIN, OUTPUT); pinMode(Z_ENABLE_PIN, OUTPUT); pinMode(WATER_NOZZLE_PIN, OUTPUT); pinMode(WATER_PUMP_PIN, OUTPUT); // direction setting digitalWrite(X_ENABLE_PIN, LOW); digitalWrite(X_DIR_PIN, LEFT); digitalWrite(Y_ENABLE_PIN, LOW); digitalWrite(Y_DIR_PIN, FRONT); digitalWrite(Z_ENABLE_PIN, LOW); digitalWrite(Z_DIR_PIN, UP); // water nozzle digitalWrite(WATER_NOZZLE_PIN, HIGH); // Turn off } void resetDirection(){ digitalWrite(X_DIR_PIN, LEFT); digitalWrite(Y_DIR_PIN, FRONT); digitalWrite(Z_DIR_PIN, UP); }
Move
void moveX(int dir, int dist){ digitalWrite(X_DIR_PIN, dir); for (int i = 0; i < dist * XY_1cm; i++) { digitalWrite(X_STEP_PIN, HIGH); delayMicroseconds(motorSpeed); digitalWrite(X_STEP_PIN, LOW); delayMicroseconds(motorSpeed); } } void moveY(int dir, int dist){ digitalWrite(Y_DIR_PIN, dir); for (int i = 0; i < dist * XY_1cm; i++) { digitalWrite(Y_STEP_PIN, HIGH); delayMicroseconds(motorSpeed); digitalWrite(Y_STEP_PIN, LOW); delayMicroseconds(motorSpeed); } } void moveXY(int x_dir, int y_dir, int dist){ digitalWrite(X_DIR_PIN, x_dir); digitalWrite(Y_DIR_PIN, y_dir); for (int i = 0; i < dist * XY_1cm; i++) { digitalWrite(X_STEP_PIN, HIGH); digitalWrite(Y_STEP_PIN, HIGH); delayMicroseconds(motorSpeed); digitalWrite(X_STEP_PIN, LOW); digitalWrite(Y_STEP_PIN, LOW); delayMicroseconds(motorSpeed); } } void moveZ(int dir, int dist){ digitalWrite(Z_DIR_PIN, dir); for (int i = 0; i < dist * Z_1cm; i++) { digitalWrite(Z_STEP_PIN, HIGH); delayMicroseconds(motorSpeed); digitalWrite(Z_STEP_PIN, LOW); delayMicroseconds(motorSpeed); } }
Sensors
int Humidity = 0; void getHumidity(){ moveZ(DOWN, 2); delay(3000); int readValue = analogRead(HUMIDITY_SENSOR_PIN); Humidity = map(readValue, 1023, 0, 0, 100); Serial.print("Humidity Percentage: "); Serial.println(Humidity); moveZ(UP, 2); }
Water
void giveWater(){ //int waterTime = map(Humidity, 0, 100, 2000, 0); // need to test //Serial.println(waterTime); digitalWrite(WATER_NOZZLE_PIN, LOW); //d12 = 25 in arduino mega //delay(waterTime); delay(1000); digitalWrite(WATER_NOZZLE_PIN, HIGH); }
Leave a Reply
You must be logged in to post a comment.