Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Servo and Led Array
- //4 buttons 1 input pin
- #include <Servo.h>
- #define gates (sizeof(servoPins)/sizeof(int))
- #define ledCount (sizeof(leds)/sizeof(int))
- const int servoPins[]{3,5,6};
- const int leds[]{13,12,11,10,9};
- Servo servos[gates];
- #define closed 20
- #define opened 150
- #define fsGates 0
- #define cncGates 1
- #define msGates 2
- #define tsGates 3
- int gateState = fsGates;
- int servoVal[][gates]{
- {closed, closed, closed},
- {opened, closed, closed},
- {closed, opened, closed},
- {closed, closed, opened},
- };
- #define LEDSoff 0
- #define fsLEDS 1
- #define cncLEDS 2
- #define msLEDS 3
- #define tsLEDS 4
- int ledValState = LEDSoff;
- int ledVals[][ledCount]{
- {LOW,LOW,LOW,LOW,LOW},
- {HIGH,LOW,LOW,LOW,HIGH},
- {LOW,HIGH,LOW,LOW,HIGH},
- {HIGH,LOW,HIGH,LOW,HIGH},
- {LOW,LOW,LOW,HIGH,HIGH},
- };
- boolean print = false;
- int val;
- int systemState = LOW;
- unsigned long ct = 0;
- unsigned long period = 500;
- void setup()
- {
- Serial.begin(9600);
- pinMode(A0, INPUT);
- for(int i=0; i<ledCount; i++){
- for(int s=0; s<gates; s++){
- pinMode(leds[i], OUTPUT);
- digitalWrite(leds[i], ledValState);
- servos[s].attach(servoPins[s]);
- servos[s].write(servoVal[fsGates][s]);
- }
- }
- }
- void loop(){
- //Creates Button Values
- val = analogRead(A0);
- val = map(val, 0, 1024, 0, 1000);
- //Create buttonState
- if(val > 350){
- delay(50);
- if(systemState == HIGH){
- systemState = LOW;
- gateState = fsGates;
- ledValState = LEDSoff;
- }else{
- print = true;
- systemState = HIGH;
- gateState = fsGates;
- ledValState = LEDSoff;
- }
- }else if(val > 200){
- delay(50);
- if(systemState == HIGH){
- systemState = LOW;
- gateState = fsGates;
- ledValState = LEDSoff;
- }else{
- print = true;
- systemState = HIGH;
- gateState = cncGates;
- ledValState = cncLEDS;
- }
- }else if(val > 140){
- delay(50);
- if(systemState == HIGH){
- systemState = LOW;
- gateState = fsGates;
- ledValState = LEDSoff;
- }else{
- print = true;
- systemState = HIGH;
- gateState = msGates;
- ledValState = msLEDS;
- }
- }else if(val > 50){
- delay(50);
- if(systemState == HIGH){
- systemState = LOW;
- gateState = fsGates;
- ledValState = LEDSoff;
- }else{
- print = true;
- systemState = HIGH;
- gateState = tsGates;
- ledValState = tsLEDS;
- }
- }
- for(int i=0; i<ledCount; i++){
- for(int s=0; s<gates; s++){
- servos[s].write(servoVal[gateState][s]);
- digitalWrite(leds[i], ledVals[ledValState][i]);
- }
- }
- Print();
- }
- void Print(){
- if(print == true){
- Serial.print("Button Val: ");
- Serial.println(val);
- print = false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement