직접 만든 소프트웨어
에어소프트건 비비로더(자동급탄기) 소스코드
heon2slow
2022. 10. 17. 14:16
반응형
에어소프트건(비비탄총) 자동 비비로더(비비탄 급탄기) 제작
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);
}
}