#include #include #include "HX711.h" #define buzzerPin 2 #define DOUT 12 #define CLK 13 HX711 scale; Servo lidarServo; Servo myservo; byte trigger = 7; // Sensörün Trigger bacağının bağlı olduğu pin byte echo = 4; // Sensörün Echo bacağının bağlı olduğu pin int deger = 10; unsigned long sure; // Echo bacağının kac mikro saniyede aktif olduğunu saklayacak olan değişken double toplamYol; int aradakiMesafe; int pos = 0; #define basinc1 A0 #define basinc2 A1 Servo basincServo; float calibration_factor = 807; float units; float ounces; SoftwareSerial mySerial(10, 11); // RX, TX DFRobot_TFmini TFmini; //lidar sensörünün kütüphanesinden nesne ürettik. uint16_t lidarMesafe; // void setup() { myservo.attach(3); lidarServo.attach(5); basincServo.attach(6); pinMode(trigger, OUTPUT); // Sensörün Trigger bacağına gerilim uygulayabilmemiz için OUTPUT yapıyoruz. pinMode(echo, INPUT); // Sensörün Echo bacağındaki gerilimi okuyabilmemiz için INPUT yapıyoruz. pinMode(buzzerPin, OUTPUT); pinMode(buzzerPin, OUTPUT); Serial.begin(9600); Serial.println("HX711 kalibrasyon..."); Serial.println("Kalibrasyon artırmak için + tuşuna basınız."); Serial.println("Kalibrasyon azaltmak için - tuşuna basınız."); TFmini.begin(mySerial); // lidar sensörünü başlattık. scale.begin(DOUT, CLK); // Ağırlık modülü başlatıldı scale.tare(); // Ağırlık resetleme } void loop() { digitalWrite(trigger, HIGH); delayMicroseconds(10); digitalWrite(trigger, LOW); sure = pulseIn(echo, HIGH); toplamYol = (double)sure * 0.034; aradakiMesafe = toplamYol / 2; Serial.print("HC-SR04 ile karsisindaki yuzey arasindaki mesafe :"); Serial.print(aradakiMesafe); Serial.println("cm.\n\n"); delay(100); scale.set_scale(calibration_factor); Serial.print("Reading: "); units = scale.get_units(), 10; ounces = units * 0.035274; Serial.print(units); Serial.print(" grams"); Serial.print(" calibration_factor: "); Serial.print(calibration_factor); Serial.println(); delay(100); if ((units>50 && units < 200) && aradakiMesafe < 25 ) { digitalWrite(buzzerPin, HIGH); myservo.write(90); delay(50); units = 0.00; } else { digitalWrite(buzzerPin, LOW); myservo.write(0); delay(50); } if(TFmini.measure()){ //lidar değer kontrolü lidarMesafe = TFmini.getDistance(); // lidar mesafe değerleri alındı. Serial.print("Lidar Mesafe: ");Serial.println(lidarMesafe); delay(100); } delay(50); if(lidarMesafe<30){ lidarServo.write(90); digitalWrite(buzzerPin,HIGH); delay(50); }else{ lidarServo.write(0); digitalWrite(buzzerPin,LOW); delay(50); } int basinc1Deger=analogRead(basinc1); int basinc2Deger=analogRead(basinc2); Serial.print("Basinc:");Serial.print(basinc1Deger); if(basinc1Deger>300 || basinc2Deger>300){ basincServo.write(0); digitalWrite(buzzerPin,HIGH); delay(50); } else{ basincServo.write(90); digitalWrite(buzzerPin,LOW); delay(50); } }