Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Main motor
- int Pin1 = 10;
- int Pin2 = 11;
- int Pin3 = 12;
- int Pin4 = 13;
- //Water emitting motor
- int Pin5 = 5;
- int Pin6 = 6;
- int Pin7 = 7;
- int Pin8 = 8;
- int Firepin = 4;
- int _step = 0;
- int times=1;//Only for main motor.
- int desired_angle;
- int angle;
- //boolean dir; false = anti..true = clock //NOW Varified by MAIN
- //For positioning
- int btn_pin = 2;
- int is_btn_pressed = false;
- int current_main = 0;
- int current_water = 0;
- void setup()
- {
- Serial.begin(9600);
- pinMode(Firepin,INPUT);
- pinMode(btn_pin,INPUT);
- //Main
- pinMode(Pin1, OUTPUT);
- pinMode(Pin2, OUTPUT);
- pinMode(Pin3, OUTPUT);
- pinMode(Pin4, OUTPUT);
- //Water
- pinMode(Pin5, OUTPUT);
- pinMode(Pin6, OUTPUT);
- pinMode(Pin7, OUTPUT);
- pinMode(Pin8, OUTPUT);
- }
- void loop()
- {
- //delay(2000);
- if(is_btn_pressed){
- times = 1;
- is_btn_pressed = false;
- }
- //FIRE...FIRE...
- if(!digitalRead(Firepin)){
- fire_handle();
- }
- //SAFE.............SAFE......
- else {
- //Water Motor
- desired_angle = 120;
- angle = (1050/90)*desired_angle;
- for(int i=0;i<angle;i++){
- if(!digitalRead(Firepin)){
- fire_handle();
- }
- if(digitalRead(btn_pin)){
- go_to_init();
- is_btn_pressed = true;
- break;
- }
- if(is_btn_pressed){
- break;
- }
- water_motor(false);
- }
- for(int i=0;i<angle;i++){
- if(!digitalRead(Firepin)){
- fire_handle();
- }
- if(digitalRead(btn_pin)){
- go_to_init();
- is_btn_pressed = true;
- break;
- }
- if(is_btn_pressed){
- break;
- }
- water_motor(true);
- }
- //Main Motor
- if(digitalRead(Firepin) && !is_btn_pressed){
- desired_angle = 30;
- angle = (1050/90)*desired_angle;
- if(times<=6){
- //Serial.println("FALSE");
- for(int i=0;i<angle;i++){
- if(!digitalRead(Firepin)){
- fire_handle();
- }
- if(digitalRead(btn_pin)){
- go_to_init();
- is_btn_pressed = true;
- break;
- }
- if(is_btn_pressed){
- break;
- }
- else {
- main_motor(false);
- }
- }
- }
- else if(times>=7 && times<=12){
- //Serial.println("TRUEEEEEEEEEEEE");
- for(int i=0;i<angle;i++){
- if(!digitalRead(Firepin)){
- fire_handle();
- }
- if(digitalRead(btn_pin)){
- go_to_init();
- is_btn_pressed = true;
- break;
- }
- if(is_btn_pressed){
- break;
- }
- else {
- main_motor(true);
- }
- }
- }
- times++;
- //Serial.print("TIME = ");
- //Serial.println(times);
- if(times==13){
- //Serial.println("BECAME 13");
- times=1;
- }
- }
- }
- }
- void go_to_init()
- {
- // Serial.println("Button Pressed ");
- // Serial.println(current_main);
- // Serial.println(current_water);
- delay(2000);
- int m = current_main;
- int w = current_water;
- Serial.println(w);
- for(int i=0;i<m;i++){
- main_motor(true);
- }
- //Serial.println("WENT BACK ");
- for(int i=0;i<w;i++){
- water_motor(true);
- }
- delay(50000);
- }
- //void go_to_init()
- //{
- // delay(7000);
- //}
- void fire_handle()
- {
- for(int j=0;j<10;j++){
- for(int i=0;i<((1050/90)*25);i++){
- both_motor(false);
- }
- for(int i=0;i<((1050/90)*25);i++){
- both_motor(true);
- }
- }
- }
- void both_motor(boolean dir) {
- switch(_step){
- case 0:
- digitalWrite(Pin1, LOW);
- digitalWrite(Pin2, LOW);
- digitalWrite(Pin3, LOW);
- digitalWrite(Pin4, HIGH);
- digitalWrite(Pin5, LOW);
- digitalWrite(Pin6, LOW);
- digitalWrite(Pin7, LOW);
- digitalWrite(Pin8, HIGH);
- break;
- case 1:
- digitalWrite(Pin1, LOW);
- digitalWrite(Pin2, LOW);
- digitalWrite(Pin3, HIGH);
- digitalWrite(Pin4, HIGH);
- digitalWrite(Pin5, LOW);
- digitalWrite(Pin6, LOW);
- digitalWrite(Pin7, HIGH);
- digitalWrite(Pin8, HIGH);
- break;
- case 2:
- digitalWrite(Pin1, LOW);
- digitalWrite(Pin2, LOW);
- digitalWrite(Pin3, HIGH);
- digitalWrite(Pin4, LOW);
- digitalWrite(Pin5, LOW);
- digitalWrite(Pin6, LOW);
- digitalWrite(Pin7, HIGH);
- digitalWrite(Pin8, LOW);
- break;
- case 3:
- digitalWrite(Pin1, LOW);
- digitalWrite(Pin2, HIGH);
- digitalWrite(Pin3, HIGH);
- digitalWrite(Pin4, LOW);
- digitalWrite(Pin5, LOW);
- digitalWrite(Pin6, HIGH);
- digitalWrite(Pin7, HIGH);
- digitalWrite(Pin8, LOW);
- break;
- case 4:
- digitalWrite(Pin1, LOW);
- digitalWrite(Pin2, HIGH);
- digitalWrite(Pin3, LOW);
- digitalWrite(Pin4, LOW);
- digitalWrite(Pin5, LOW);
- digitalWrite(Pin6, HIGH);
- digitalWrite(Pin7, LOW);
- digitalWrite(Pin8, LOW);
- break;
- case 5:
- digitalWrite(Pin1, HIGH);
- digitalWrite(Pin2, HIGH);
- digitalWrite(Pin3, LOW);
- digitalWrite(Pin4, LOW);
- digitalWrite(Pin5, HIGH);
- digitalWrite(Pin6, HIGH);
- digitalWrite(Pin7, LOW);
- digitalWrite(Pin8, LOW);
- break;
- case 6:
- digitalWrite(Pin1, HIGH);
- digitalWrite(Pin2, LOW);
- digitalWrite(Pin3, LOW);
- digitalWrite(Pin4, LOW);
- digitalWrite(Pin5, HIGH);
- digitalWrite(Pin6, LOW);
- digitalWrite(Pin7, LOW);
- digitalWrite(Pin8, LOW);
- break;
- case 7:
- digitalWrite(Pin1, HIGH);
- digitalWrite(Pin2, LOW);
- digitalWrite(Pin3, LOW);
- digitalWrite(Pin4, HIGH);
- digitalWrite(Pin5, HIGH);
- digitalWrite(Pin6, LOW);
- digitalWrite(Pin7, LOW);
- digitalWrite(Pin8, HIGH);
- break;
- default:
- digitalWrite(Pin1, LOW);
- digitalWrite(Pin2, LOW);
- digitalWrite(Pin3, LOW);
- digitalWrite(Pin4, LOW);
- digitalWrite(Pin5, LOW);
- digitalWrite(Pin6, LOW);
- digitalWrite(Pin7, LOW);
- digitalWrite(Pin8, LOW);
- break;
- }
- if(dir){
- _step++;
- }
- else{
- _step--;
- }
- if(_step>7){
- _step=0;
- }
- if(_step<0){
- _step=7;
- }
- delay(1);
- }
- void water_motor(boolean dir){
- if(dir==true){
- current_water=current_water-1;
- }
- else if(dir==false){
- current_water=current_water+1;
- }
- switch(_step){
- case 0:
- digitalWrite(Pin5, LOW);
- digitalWrite(Pin6, LOW);
- digitalWrite(Pin7, LOW);
- digitalWrite(Pin8, HIGH);
- break;
- case 1:
- digitalWrite(Pin5, LOW);
- digitalWrite(Pin6, LOW);
- digitalWrite(Pin7, HIGH);
- digitalWrite(Pin8, HIGH);
- break;
- case 2:
- digitalWrite(Pin5, LOW);
- digitalWrite(Pin6, LOW);
- digitalWrite(Pin7, HIGH);
- digitalWrite(Pin8, LOW);
- break;
- case 3:
- digitalWrite(Pin5, LOW);
- digitalWrite(Pin6, HIGH);
- digitalWrite(Pin7, HIGH);
- digitalWrite(Pin8, LOW);
- break;
- case 4:
- digitalWrite(Pin5, LOW);
- digitalWrite(Pin6, HIGH);
- digitalWrite(Pin7, LOW);
- digitalWrite(Pin8, LOW);
- break;
- case 5:
- digitalWrite(Pin5, HIGH);
- digitalWrite(Pin6, HIGH);
- digitalWrite(Pin7, LOW);
- digitalWrite(Pin8, LOW);
- break;
- case 6:
- digitalWrite(Pin5, HIGH);
- digitalWrite(Pin6, LOW);
- digitalWrite(Pin7, LOW);
- digitalWrite(Pin8, LOW);
- break;
- case 7:
- digitalWrite(Pin5, HIGH);
- digitalWrite(Pin6, LOW);
- digitalWrite(Pin7, LOW);
- digitalWrite(Pin8, HIGH);
- break;
- default:
- digitalWrite(Pin5, LOW);
- digitalWrite(Pin6, LOW);
- digitalWrite(Pin7, LOW);
- digitalWrite(Pin8, LOW);
- break;
- }
- if(dir){
- _step++;
- }
- else{
- _step--;
- }
- if(_step>7){
- _step=0;
- }
- if(_step<0){
- _step=7;
- }
- delay(1);
- }
- void main_motor(boolean dir) {
- if(dir==true){
- current_main=current_main-1;
- }
- else if(dir==false){
- current_main=current_main+1;
- }
- switch(_step){
- case 0:
- digitalWrite(Pin1, LOW);
- digitalWrite(Pin2, LOW);
- digitalWrite(Pin3, LOW);
- digitalWrite(Pin4, HIGH);
- break;
- case 1:
- digitalWrite(Pin1, LOW);
- digitalWrite(Pin2, LOW);
- digitalWrite(Pin3, HIGH);
- digitalWrite(Pin4, HIGH);
- break;
- case 2:
- digitalWrite(Pin1, LOW);
- digitalWrite(Pin2, LOW);
- digitalWrite(Pin3, HIGH);
- digitalWrite(Pin4, LOW);
- break;
- case 3:
- digitalWrite(Pin1, LOW);
- digitalWrite(Pin2, HIGH);
- digitalWrite(Pin3, HIGH);
- digitalWrite(Pin4, LOW);
- break;
- case 4:
- digitalWrite(Pin1, LOW);
- digitalWrite(Pin2, HIGH);
- digitalWrite(Pin3, LOW);
- digitalWrite(Pin4, LOW);
- break;
- case 5:
- digitalWrite(Pin1, HIGH);
- digitalWrite(Pin2, HIGH);
- digitalWrite(Pin3, LOW);
- digitalWrite(Pin4, LOW);
- break;
- case 6:
- digitalWrite(Pin1, HIGH);
- digitalWrite(Pin2, LOW);
- digitalWrite(Pin3, LOW);
- digitalWrite(Pin4, LOW);
- break;
- case 7:
- digitalWrite(Pin1, HIGH);
- digitalWrite(Pin2, LOW);
- digitalWrite(Pin3, LOW);
- digitalWrite(Pin4, HIGH);
- break;
- default:
- digitalWrite(Pin1, LOW);
- digitalWrite(Pin2, LOW);
- digitalWrite(Pin3, LOW);
- digitalWrite(Pin4, LOW);
- break;
- }
- if(dir){
- _step++;
- }
- else{
- _step--;
- }
- if(_step>7){
- _step=0;
- }
- if(_step<0){
- _step=7;
- }
- delay(1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement