int reload = 0;
void setup() {
Serial.begin(9600);
pinMode(3, OUTPUT);
pinMode(4, INPUT_PULLUP);
pinMode(5, OUTPUT);
pinMode(6, INPUT_PULLUP);
pinMode(7, OUTPUT);
digitalWrite(3, LOW);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
}
void loop() {
int sw1 = digitalRead(4); // 방아쇠 감지 스위치
int sw2 = digitalRead(6); // 장전 감지 스위치
if (sw2 == 1) { // 장전
reload = 1;
}
if (sw1 == 1 && sw2 == 1) { // 영점모드
digitalWrite(3, HIGH);
reload = 0;
}
if (reload == 1 && sw1 == 1) { // 레이저 발사
reload = 0;
digitalWrite(3, HIGH); // Laser ON
delay(50);
digitalWrite(3, LOW); // Laser OFF
}
}
#include <Servo.h>
Servo servo;
int val1 = 0;
int val2 = 0;
int sen = 0;
void setup() {
Serial.begin(9600);
pinMode(A0, INPUT);
servo.attach(7);
}
void loop() {
val2 = val1;
val1 = analogRead(A0);
Serial.println(val1);
if ((val2 - val1 >= 180) && (val1 < 100)) { // 밝기의 변화가 180 이상이고, 현재 밝기가 100 이하(레이저가 비춰짐)이면,
sen = 1; // 레이저 감지
}
if (sen == 1) { // 레이저가 감지되면,
servo.write(90); // 타켓이 쓰러짐
delay(5000);
servo.write(0); // 5초 후 타켓이 제자리로 돌아옴
sen = 0;
delay(1000);
}
delay(100);
}