《Arduino零基础C语言编程》课件-ch5-5. 8 夜光盒-舵机_第1页
《Arduino零基础C语言编程》课件-ch5-5. 8 夜光盒-舵机_第2页
《Arduino零基础C语言编程》课件-ch5-5. 8 夜光盒-舵机_第3页
《Arduino零基础C语言编程》课件-ch5-5. 8 夜光盒-舵机_第4页
《Arduino零基础C语言编程》课件-ch5-5. 8 夜光盒-舵机_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.

8夜光盒--舵机夜光宝盒,听着名字是不是很好玩,实际也是这么好玩儿!本节要做的这个盒子,在白天是闭合的,一旦进入了深夜,就开始慢慢张开,灯光也会慢慢变亮,好似一颗“夜明珠”,一旦到了白天,又慢慢合上了。原理是通过一个模拟环境光传感器,来检测环境光线强弱,随着亮度的不同,输出值不同。到了晚上的设定值,就转动舵机角度,LED同时慢慢变亮。预备实验

舵机是一种电机,它使用一个反馈系统来控制电机的位置。可以很好掌握电机角度。大多数舵机是可以最大旋转180°的。也有一些能转更大角度,甚至360°。舵机比较多的用于对角度有要求的场合,比如摄像头,智能小车前置探测器,需要在某个范围内进行监测的移动平台。又或者把舵机放到玩具,让玩具动起来。还可以用多个舵机,做个小型机器人,舵机就可以作为机器人的关节部分。所以,舵机的用处很多。Ardruino提供了<Servo.h>库2025/2/7Arduino零基础C语言编程15.

8夜光盒--舵机1、实现舵机0~180°来回转动#include<Servo.h>//声明调用Servo.h库Servomyservo;//创建一个舵机对象voidsetup(){myservo.attach(9);//将引脚9上的舵机与声明的舵机对象连接起来}voidloop(){for(inti=0;i<180;i++){myservo.write(i);//给舵机写入角度delay(15);//延时15ms让舵机转到指定位置}for(inti=180;i>=0;i--){myservo.write(i);//给舵机写入角度delay(15);//延时15ms让舵机转到指定位置}}下载代码成功后可以看到舵机0~180。来回转动。2025/2/7Arduino零基础C语言编程25.

8夜光盒--舵机2、可控舵机#include<Servo.h>//声明调用Servo.h库Servomyservo;//创建一个舵机对象intpotpin=0;//连接到模拟口0intval;//变量val用来存储从模拟口0读到的值voidsetup(){myservo.attach(9);//将引脚9上的舵机与声明的舵机对象连接起来}voidloop(){val=analogRead(potpin);//从模拟口0读值,并通过val记录val=map(val,0,1023,0,179);//通过map函数进行数值转换myservo.write(val);//给舵机写入角度delay(15);//延时15ms让舵机转到指定位置}下载代码,成功后,旋转电位器,看看舵机是不是随着电位器转动。2025/2/7Arduino零基础C语言编程35.

8夜光盒--舵机所需材料

1× 模拟环境光线传感器

1× TowerProSG50舵机

1× 数字食人鱼红色LED发光模块2025/2/7Arduino零基础C语言编程45.

8夜光盒--舵机硬件连接TowerProSG50->数字口9模拟环境光线传感器->模拟口0

数字食人鱼红色LED发光模块->数字口

2025/2/7Arduino零基础C语言编程55.

8夜光盒--舵机输入代码样例代码8:

#include<Servo.h>

Servomyservo;

intLED=3; //设置LED灯为数字引脚

3

intval=0; //val存储环境光传感器的值

intpos=0;intlight=0;voidsetup(){

pinMode(LED,OUTPUT); //LED为输出模式

Serial.begin(9600); //串口波特率设置为

9600

myservo.attach(9); //舵机接到数字口

9

myservo.write(0); //初始角度为

0

}

2025/2/7Arduino零基础C语言编程6voidloop(){val=analogRead(0); //读取传感器的值Serial.println(val); //串口查看电压值的变化if(val<40){ //一旦小于设定的值,增加角度pos=pos+2;if(pos>=90){ //转到了90°后,就保持90°pos=90;}myservo.write(pos); //写入舵机的角度delay(100);light=map(pos,0,90,0,255); //随角度增大,LED亮度增大analogWrite(LED,light); //写入亮度值}else{pos=pos-2; //减2°if(pos<=0){pos=0; //减到0°为止}myser

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论