#include "HX711.h"
#include <Servo.h>
Servo Servo1;
Servo Servo2;
HX711 scale;
const int ledCount = 10;
int ledPins[] = {
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
};
void setup() {
Serial.begin(9600);
Servo1.attach(13);
Servo2.attach(12);
Servo2.write(90);
Servo2.write(0);
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT);
}
scale.begin(A1, A0);
}
void loop() {
float weight = scale.get_units()/420;
int ledLevel = (weight-0.1)/5+1;
Serial.println("当前重量(kg):");
Serial.println(weight,1);
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
if (thisLed < ledLevel) {
digitalWrite(ledPins[thisLed], HIGH);
}
else {
digitalWrite(ledPins[thisLed], LOW);
}
}
if (scale.get_units()/420> 40){
tone(11,8000,50);
tone(11,4000,20);
tone(11,6000,30);
tone(11,4000,400);
Servo1.write(90);
Servo2.write(0);
Serial.println("超重");
for (int thisLed = 8; thisLed < ledCount; thisLed++) {
if (thisLed < ledLevel) {
digitalWrite(ledPins[thisLed], HIGH);
digitalWrite(ledPins[thisLed], LOW);
}
else {
digitalWrite(ledPins[thisLed], LOW);
}
}
}
else if (scale.get_units()/420<= 40 && digitalRead(A2) == HIGH){
Servo2.write(22.5*ledLevel);
Servo1.write(0);
Serial.println("正在进入货道:");
Serial.println(ledLevel);
delay(2000);
Servo1.write(90);
}
delay(1000);
}