-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patharduino code
55 lines (47 loc) · 1.03 KB
/
arduino code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <Servo.h>
#define POS_INICIALX 90
#define POS_INICIALY 90
#define X_MINIMO 30
#define Y_MINIMO 35
#define X_INTERVALO 6
#define y_INTERVALO 10
#define LASER_TEMPO 10 //tempo em segundo que o laser fica ligado
#define Laser 7
#define PIR 6
Servo servoX;
Servo servoY;
void setup() {
servoY.attach(3);
servoX.attach(4);
servoX.write(POS_INICIALX);
servoY.write(POS_INICIALY);
pinMode(Laser, OUTPUT);
digitalWrite(Laser,LOW);
pinMode(PIR, INPUT);
}
void loop(){
int trigger = digitalRead(PIR);
if (trigger == HIGH){
liga_Laser();
posiciona_servos();
}else{
desliga_Laser();
}
}
// FUNÇOES AUXILIARES
void posiciona_servos(){
int posicaoX =(random(0,(X_INTERVALO))*10+(X_MINIMO));
int posicaoY = (random(0,(y_INTERVALO))*10+(Y_MINIMO));
servoX.write(posicaoX);
servoY.write(posicaoY);
}
void liga_Laser(){
for (int i = 0; i < LASER_TEMPO/2; ++i){
digitalWrite(Laser,HIGH);
posiciona_servos();
delay(1000);
}
}
void desliga_Laser(){
digitalWrite(Laser,LOW);
}