Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

两个版本,一强一弱

1.机械臂版本

2.直接触发版本

直接触发版硬件

1.四路继电器 *1

2.Arduino uno *1

3.导电硅胶 *4

4.光敏电阻模块 *4

原理

电磁继电器原理

当AB端断开,电器1工作。

当AB端通电,即AB端有电势差,电器2工作。

这样就整个外挂的原理有凸显出来了:

Arduino接收光敏电阻的变化,黑和白(也不完全白),如果是黑则输出高电平,如果是白则输出低电平,继电器接收不同的高低电平来输出给导电硅胶进行触发。

模拟点击屏幕

手指点击屏幕是通过感应电流触发电容屏,同样我们可以用这个导电硅胶来代替手指,手指触摸导线=点击一次。

继电器部分的接线

继电器的输入端与Arduino输出高低电平的引脚相连,比如Arduino的8号引脚是输出的高电平,则8号引脚与继电器的输入端连接,继电器的NO端与导电硅胶相连,COM端与接地相连,可以用手或者电池负极来代替接地。

Arduino代码

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
56
57
58
59
60
61
62
63
64
void setup() {
Serial.begin(9600);
pinMode(8, OUTPUT);//四个高低电平输出引脚
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11,OUTPUT);
}
//判断黑白块,0为白,1为黑
int is_black_or_white(int a) {
if(a<515) {
return 0;
}
return 1;
}
void loop() {
int sensorValue = analogRead(A0);//四个光敏电阻的阻值
int sensorValue1 = analogRead(A1);
int sensorValue2= analogRead(A2);
int sensorValue3 = analogRead(A3);
int a=is_black_or_white(sensorValue);
int b=is_black_or_white(sensorValue1);
int c=is_black_or_white(sensorValue2);
int d=is_black_or_white(sensorValue3);
Serial.print(a);
Serial.print(' ');
Serial.print(b);
Serial.print(' ');
Serial.print(c);
Serial.print(' ');
Serial.println(d);
int count=0;
//判断是否要同时点击两个块,
if(a^b^c^d==1) {
count=1;
}
//只点击一个块
if(count==1) {
if(sensorValue>515) {
digitalWrite(8, HIGH);//8号引脚输出高电平
delay(19);
digitalWrite(8, LOW);//8号引脚输出低电平
delay(9);
//完成一次点击
}
if(sensorValue1>515) {
digitalWrite(9, HIGH);
delay(19);
digitalWrite(9, LOW);
delay(9);
}
if(sensorValue2>515) {
digitalWrite(10, HIGH);
delay(19);
digitalWrite(10, LOW);
delay(9);
}
if(sensorValue3>515) {
digitalWrite(11, HIGH);
delay(19);
digitalWrite(11, LOW);
delay(9);
}
}
}

评论