完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
硬件连接:
舵机连接: [tr]ArduinoMicro Servo 9g[/tr]
实现:在串口输入舵机转动角度,arduino控制舵机转动相应角度。 代码: #include Servo myservo; // 创建一个伺服电机对象 char inByte = 0; //串口接收的数据 int angle = 0; //角度值 String temp = "";//临时字符变量 void setup() { myservo.attach(9); //定义舵机的引脚为9 Serial.begin(9600); //设置波特率 } void loop() { while (Serial.available() > 0) //判断串口是否有数据 { inByte = Serial.read();//读取数据,串口一次只能读1个字符 temp += inByte;//把读到的字符存进临时变量里面缓存, //再继续判断串口还有没有数据,直到把所有数据都读取出来 } if(temp != "") //判断临时变量是否为空 { angle = temp.toInt(); //把变量字符串类型转成整型 Serial.println(angle); //输出数据到串口上,以便观察 } temp = "";//清空临时变量 myservo.write(angle); //控制舵机转动相应的角度。 delay(100);//延时100毫秒 } 红外连接: [tr]ArduinoHC-SR501红外[/tr]
代码: #include Servo myservo; // 创建一个伺服电机对象 int angle1 = 0; //原始角度值 int angle2 = 180; //旋转角度值 int Sensor_pin = A5; void setup() { pinMode(Sensor_pin,INPUT); //设置人体红外接口为输入状态 myservo.attach(9); //定义舵机的引脚为9 Serial.begin(9600); } void loop() { int val=digitalRead(Sensor_pin); //定义参数存储人体红外传感器读到的状态 Serial.println(val); if(val == 1) //如果检测到有人(在检测范围内) { myservo.write(angle2); //控制舵机转动相应的角度。 } else { myservo.write(angle1); //控制舵机转动相应的角度。 } delay(100); //延时100毫秒 } 总接线图: |
|
|
|
只有小组成员才能发言,加入小组>>
2367 浏览 0 评论
8663 浏览 4 评论
36387 浏览 18 评论
4965 浏览 0 评论
24117 浏览 34 评论
1324浏览 2评论
1568浏览 1评论
1937浏览 1评论
1389浏览 0评论
1824浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-6 07:27 , Processed in 1.287148 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号