Данный проект предлагает создание автоматически поднимаемой мишени при попадании в нее пули или другого снаряда при практике стрельбы из пневматического пистолета, лука или прочего подобного средства.

Для начала необходимо взять коробку, в которую бы поместилась электронная часть. На краю коробки следует смонтировать мишень.

Данную мишень будет поднимать после выстрела серводвигатель, а точнее планка, прикрепленная к его валу.

Определение того, что мишень упала, осуществляется путем считывания состояния концевого выключателя, на который должна падать мишень.

Схема подключения Arduino к серводвигателю и концевику (в данном случае кнопке) представлена далее.

Код программы для Arduino следующий.
#include <VarSpeedServo.h>
const int BUTTON_PIN = 7;
const int SERVO_PIN = 9;
VarSpeedServo servo;
int angle = 0;
int lastButtonState;
int currentButtonState;
int Speed = 160;
void setup() {
Serial.begin(9600);
pinMode(BUTTON_PIN, INPUT_PULLUP);
servo.attach(SERVO_PIN);
servo.write(angle);
currentButtonState = digitalRead(BUTTON_PIN);
}
void loop() {
lastButtonState = currentButtonState;
currentButtonState = digitalRead(BUTTON_PIN);
if(lastButtonState == HIGH && currentButtonState == LOW) {
Serial.println("The button is pressed");
if(angle == 0)
angle = 90;
servo.write(angle,Speed/2);
delay(100);
servo.wait();
servo.wait();
servo.wait();
servo.wait();
}
if(lastButtonState == LOW && currentButtonState == HIGH) {
delay(100);
Serial.println("The button is released");
if(angle == 90)
angle = 0;
servo.write(angle,Speed);
}
}
© digitrode.ru