//pins
int depthSet = A5; //depth set pot pin
int axlePot[] = {A0, A1}; //ram pot pins
int sol1 = 2; // solenoid 1 pin
int inSol[] = {3, 4}; //solenoid 2 - 3
int liftRam = 7 ; // button for transport solenoid
int ledPins[] = {9, 10, 11, 12, 13}; //display pins
//variables
int readSet; //value of setting pot
int readAxle[3]; //number of ram pots to read
const int ledCount = 6; // the number of LEDs in the display
void setup() {
for (byte i = 0; i < 3; i++) { //setting the ram potentimeters
pinMode(axlePot[i], INPUT);
}
for (byte i = 0; i < 3; i++) { //setting the ram solenoids
pinMode(inSol[i], OUTPUT);
}
for (int thisLed = 0; thisLed < ledCount; thisLed++) { //setting the depth display
pinMode(ledPins[thisLed], OUTPUT);
}
pinMode(depthSet, INPUT); // setting the depth potenimeter
pinMode(liftRam, INPUT_PULLUP); //reading the ramLift pin
pinMode(sol1, OUTPUT); // setting solenoid 1
}
void loop() {
readSet = analogRead(depthSet);
int ledLevel = map(readSet, 0, 1023, 0, ledCount); //shows a depth value on the led display
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
if (thisLed < ledLevel) {
digitalWrite(ledPins[thisLed], HIGH);}
else {
digitalWrite(ledPins[thisLed], LOW);
}
}
for (int i = 0; i < 3; i++) { //read axle pins
readAxle[i] = analogRead(axlePot[i]);
for (int i = 0; i < 3; i++) {
if(readAxle[i] < 0.9*readSet) {
digitalWrite(inSol[i], HIGH);
digitalWrite(sol1, HIGH);
}
if (readAxle[i] > 0.9*readSet && readAxle[i] < 1.1*readSet) {
digitalWrite(inSol[i], LOW);
digitalWrite(sol1, LOW);
}
if (readAxle[i] > 1.1*readSet) {
digitalWrite(inSol[i], HIGH);
digitalWrite(sol1, LOW);
}
}
}
}
Comments