#include // game vars #define PLAY true #define STOP false; bool gameState = STOP; // button vars const int buttonPin = 2; bool buttonState = false; // sensor vars const int refSensorPin = A0; int refSensorValue = 0; const int sensorPin = A1; int sensorValue = 0; int baseValue = 0; // servo vars int servoPin = 5; Servo servo; void setup() { Serial.begin(9600); pinMode(buttonPin, INPUT_PULLUP); pinMode(LED_BUILTIN, OUTPUT); servo.attach(servoPin); servo.write(0); // button interrupt EICRA = 0; EIMSK = 0; // set event on falling edge EICRA |= (1 << ISC01); // enable INT0 EIMSK |= (1 << INT0); sei(); } ISR(INT0_vect) { // cod întrerupere externă PD2 /INT0 gameState = !gameState; digitalWrite(LED_BUILTIN, gameState); } void loop() { if (gameState == false) { // calibrate sensorValue = analogRead(sensorPin); baseValue = sensorValue; } else { // play sensorValue = analogRead(sensorPin); if (abs(sensorValue - baseValue) > 5) { servo.write(110); delay(300); servo.write(0); delay(400); } } }