看论坛里面别人用继电器做的,然后由于没有继电器,所以要找一个动作的东西代替,最后由舵机来实现来,舵机上压一个重物来将它固定好。
那么首先看一下成绩,是我不想玩了,室友把我给弄死了,要不然应该无限玩下去。
然后就是程序和接线了。由于水平有限,写的程序不好的地方请大家多多批评指正,然后一起互相学习,谋求进步。
舵机上固定一个棉签 ,棉签沾水湿润后通上5v电压,就可以充当触控笔了,然后固定到舵机法兰上,如下图。
具体舵机是什么,大家可以百度上搜或者到淘宝上看也可以,都可以搜到具体的图片可以看的很清楚,
包括舵机的外形结构, 注意弄明白舵机的动作,
和你想实现的运动过程:
以下是我的程序:
#include <Servo.h> Servo myservo; int char_to_int(char i) { switch(i) { case '0':return 0; case '1':return 1; case '2':return 2; case '3':return 3; case '4':return 4; case '5':return 5; case '6':return 6; case '7':return 7; case '8':return 8; case '9':return 9; default: return 0; } } void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(8,OUTPUT); myservo.attach(8); myservo.write(120); delay(2000); } void loop() { // put your main code here, to run repeatedly: char a,b,c; int i; while(!Serial.available());//等待数据 if(Serial.available()) { a=Serial.read(); delay(3); } if(Serial.available()) { b=Serial.read(); delay(3); } if(Serial.available()) { c=Serial.read(); delay(3); } if(b==NULL) { i=char_to_int(a); Serial.println(i,DEC); } else if(c==NULL) { i=char_to_int(a)*10+char_to_int(b); Serial.println(i,DEC); } else { i=char_to_int(a)*100+char_to_int(b)*10+char_to_int(c); Serial.println(i,DEC); } i=i*23; for(int j=120;j<=135;j++) { myservo.write(j); delay(5); } delay(i); for(int j=135;j>=120;j--) { myservo.write(j); delay(5); } }然后再上个视频吧:
最后就是接线的事了,其实只有一个舵机,给它通上电,由于舵机没有负载,因此用Arduino的vcc和gnd供电也可以,
然后信号线连到Arduino UNO的8号引脚。
最后说明一下量的数据,量的是两个地方的长度,单位mm,取整数就好,打开串口监视器输入数值发送出去就行:还有一点就是舵机的角度要自己找,这个角度每个人都不一样
具体的角度值怎么找可以参考我另一个帖子,串口控制舵机旋转的那个
希望大家多多批评指正,谢谢。
我的博客:www.iilala.com
邮箱:953598974@qq.com