본문 바로가기

소프트웨어

에어소프트건 비비로더(자동급탄기) 소스코드

반응형

https://www.choogo.net/6

 

에어소프트건(비비탄총) 자동 비비로더(비비탄 급탄기) 제작

https://youtu.be/j50TV--xbPw 50초짜리 짧은 영상입니다. 에어소프트건(비비탄총)용 비비로더(비비탄 급탄기) 제작중입니다. 돌돌이 비비로더를 샀는데..이놈이 제 탄창에 정확히 맞지않아서 비비탄 10

www.choogo.net



위 게시물에서 소개했던 자동급탄기 소스코드 입니다.
아두이노나노와 L298N모터드라이버, DC12V모터가 필요합니다.


 

//L298N 관련
int ENA = 10; //속도조절핀(pwm핀인 D3,5,6,9,10,11 중에서 사용)
int INA1 = 9; 
int INA2 = 8; 
int cmd = 0; 

//스위치
int switch_1 = 7; //
int switch_2 = 6; //
int switch_3 = 5; //
int switch_4 = 4; //

//int switch_2 = 6; //
//int switch_3 = 5; //

//리미트스위치 변수
int loadswitch_1 = HIGH; //
int loadswitch_2 = HIGH; //
int loadswitch_3 = HIGH; //
int loadswitch_4 = HIGH; //
//int loadswitch_2 = HIGH; //
//int loadswitch_3 = HIGH; //


void setup()
  { 
  
    pinMode(switch_1,INPUT_PULLUP);    // 타겟 리미트 스위치를 입력으로 설정
    pinMode(switch_2,INPUT_PULLUP);    // 타겟 리미트 스위치를 입력으로 설정
    pinMode(switch_3,INPUT_PULLUP);    // 타겟 리미트 스위치를 입력으로 설정
    pinMode(switch_4,INPUT_PULLUP);    // 타겟 리미트 스위치를 입력으로 설정
    //pinMode(switch_2,INPUT_PULLUP);    
    //pinMode(switch_3,INPUT_PULLUP);   
    
    Serial.begin(9600); 
    pinMode(ENA, OUTPUT); 
    pinMode(INA1, OUTPUT); 
    pinMode(INA2, OUTPUT); 
    digitalWrite(ENA, LOW); 
    digitalWrite(INA1, LOW); 
    digitalWrite(INA2, LOW); 
    Serial.println("DC motor test"); 
  
   } 

void loop()
  {  
    loadswitch_1 = digitalRead (switch_1); //변수에 스위치값을 입력받음(타겟)
    loadswitch_2 = digitalRead (switch_2); //변수에 스위치값을 입력받음(타겟)
    loadswitch_3 = digitalRead (switch_3); //변수에 스위치값을 입력받음(타겟)
    loadswitch_4 = digitalRead (switch_4); //변수에 스위치값을 입력받음(타겟)
    //loadswitch_2 = digitalRead (switch_2);
    //loadswitch_3 = digitalRead (switch_3);

    if (loadswitch_1 == LOW || loadswitch_2 == LOW || loadswitch_3 == LOW || loadswitch_4 == LOW) {
      //Serial.println("Backward-PWM"); 
      //analogWrite(ENA, 100); 
      //digitalWrite(INA1, LOW); 
      //digitalWrite(INA2, HIGH);       
      Serial.println("Forward-PWM"); 
      analogWrite(ENA, 255); 
      digitalWrite(INA1, HIGH); 
      digitalWrite(INA2, LOW); 
      //delay(3000); 
      //Serial.println("Backward-PWM"); 
      //analogWrite(ENA, 100); 
      //digitalWrite(INA1, LOW); 
      //digitalWrite(INA2, HIGH); 
      //delay(3000); 
      //Serial.println("stop"); 
      //digitalWrite(ENA, LOW); 
      //digitalWrite(INA1, LOW); 
      //digitalWrite(INA2, LOW);
    }
    else {
      Serial.println("stop"); 
      digitalWrite(ENA, LOW); 
      digitalWrite(INA1, LOW); 
      digitalWrite(INA2, LOW);
    }
  
  }

 

댓글