两个版本,一强一弱
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); }
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); delay(19); digitalWrite(8, LOW); 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); } } }
|