“第二课:输出设备的使用”的版本间的差异
Zhangfengfeng(讨论 | 贡献) (→程序说明) |
Zhangfengfeng(讨论 | 贡献) (→编程) |
||
(未显示同一用户的11个中间版本) | |||
第1行: | 第1行: | ||
+ | {|style="width: 90%;“ | ||
=所需物料= | =所需物料= | ||
{|class="wikitable" style=" text-align: left; border-width: 1px;" | {|class="wikitable" style=" text-align: left; border-width: 1px;" | ||
第22行: | 第23行: | ||
=程序说明= | =程序说明= | ||
− | + | 打开_01_ColorLED_01_blink.ino | |
− | #include<Adafruit_NeoPixel.h> | + | #include<Adafruit_NeoPixel.h> |
− | + | //大部分传感器和设备都有自己的库文件,要想使用这个设备,就需要调用这些文件内容,调用语法就是 #include<库文件名称> | |
Adafruit_NeoPixel ColorLED=Adafruit_NeoPixel(2, 6, NEO_GRB+NEO_KHZ800); | Adafruit_NeoPixel ColorLED=Adafruit_NeoPixel(2, 6, NEO_GRB+NEO_KHZ800); | ||
//这一句是定义彩灯的命令,用到了之前定义的两个值,一个是引脚”PIN“,另一个是灯的个数”PIN_NUM,按之前的定义,分别为“6”和“2”, 另外ColorLED为定义的彩灯名称,这个名称可以自行修改,但后面使用时要保持一致。 | //这一句是定义彩灯的命令,用到了之前定义的两个值,一个是引脚”PIN“,另一个是灯的个数”PIN_NUM,按之前的定义,分别为“6”和“2”, 另外ColorLED为定义的彩灯名称,这个名称可以自行修改,但后面使用时要保持一致。 | ||
+ | |||
+ | void loop(){ | ||
+ | |||
+ | ColorLED.setPixelColor(0, ColorLED.Color(255,0,0)); | ||
+ | //这段代码控制哪盏灯亮,以及灯的颜色,当前灯的编号为0,即第一盏灯亮,如果接了两盏灯,想让第二盏灯亮,那编号就为1。后面的三个数字对应的是颜色的RGB值,当前255,0,0对应的是红色。 | ||
+ | |||
+ | ColorLED.show(); | ||
+ | //显示灯的效果 | ||
+ | |||
+ | delay(1000); | ||
+ | //当前状态保持1000毫秒 | ||
+ | |||
+ | ColorLED.setPixelColor(0,ColorLED.Color(0,0,0)); | ||
+ | //再将灯的颜色设置成黑色(0,0,0),延时1000毫秒,循环起来,灯光就会亮1秒后,再暗1秒,循环往复,就形成了灯光闪烁的效果。 | ||
+ | |||
+ | ColorLED,show(); | ||
+ | |||
+ | delay(1000); | ||
+ | } | ||
+ | |||
+ | *要想使用彩灯,首先要调用库文件“Adafruit_NeoPixel.h",设置灯的名称,引脚以及灯的个数,并输入那一大段定义,灯的名称要统一。<br> | ||
+ | *之后,在void setup()中要输入”LEDname.begin();", 用来初始化彩灯。<br> | ||
+ | *最后记得要显示彩灯的状态,这几个固定形式记住,彩灯的使用就掌握了。 | ||
+ | |||
+ | =其他输出设备= | ||
+ | ==舵机== | ||
+ | 对舵机的控制主要是通过程序对旋转角度以及速度进行控制。 | ||
+ | ===舵机连接=== | ||
+ | *舵机通过舵机转接板与接口板连接,连接方法如图所示 | ||
+ | [[File:Servo connection.png]]<br> | ||
+ | 舵机上有三根线,黑色的那根是负极(GND), 与转接板上的GND对应连接<br> | ||
+ | [[File:Servo GND.png]]<br> | ||
+ | *舵机转接板可以连接两个舵机,上面一排对应引脚的前一个编号,下面对应后一个编号,例如图中连接6/7,接上面一排引脚就为6,下面一排就为7<br> | ||
+ | [[File:Two servo.png]] | ||
+ | |||
+ | ===编程=== | ||
+ | 打开_02_Servo_01_Basic.ino | ||
+ | #include<Servo.h> //调用舵机的库文件 | ||
+ | Servo myservo; //定义舵机名称为myservo | ||
+ | void setup(){ | ||
+ | myservo.attach(6); //初始化舵机,定义引脚为6 | ||
+ | } | ||
+ | void loop(){ | ||
+ | myservo.write(180); //舵机旋转到180度 | ||
+ | delay(1000); //保持1秒 | ||
+ | myservo.write(0); //舵机旋转到0度 | ||
+ | delay(1000); //保持1秒 | ||
+ | } | ||
+ | ===动手时间=== | ||
+ | 尝试用for循环写一个舵机在0-180度之间来回摇摆的程序 | ||
+ | ==蜂鸣器== | ||
+ | 控制蜂鸣器主要是控制发声频率,从而实现不同的音调。 | ||
+ | ===编程=== | ||
+ | 打开_03_Buzzer_01_basic.ino | ||
+ | void setup(){ | ||
+ | pinMode(2, OUTPUT); //用pinMode()命令定义引脚为输出状态 | ||
+ | } | ||
+ | void loop(){ | ||
+ | tone(buzzer_pin,200); //tone(a,b)是控制蜂鸣器的基本语法,其中"a"为引脚,”b“为输出的频率值,人耳可以听到的频率在20~20000Hz之间 | ||
+ | delay(1000); //当前声音保持1秒 | ||
+ | noTone(buzzer_pin); //noTone()顾名思义就是静音 | ||
+ | delay(1000); //静音保持1秒,可以刷进核心模块,听听效果 | ||
+ | } | ||
+ | |||
+ | ===动手时间=== | ||
+ | 尝试用for循环做一个警报的音效 | ||
+ | |||
+ | |} |
2017年6月8日 (四) 06:25的最新版本
名称 | 数量 | 说明 |
ColorLED | 1 | 全彩LED |
Core | 1 | 核心模块 |
Hub | 1 | 接口模块 |
USB线 | 1 | 连接USBTTL模块和电脑 |
传感器线 | 1 | 连接传感器到接口模块 |
ColorLED连接
- 把灯接在数字信号的接口上,引脚默认为前面那个值,比如如果接到6/7管脚上,引脚就是6
注意将连接线接到ColorLED的IN管脚
- 如果要接多个灯,按下图所示方式连接
最多可以连接6个彩灯
程序说明
打开_01_ColorLED_01_blink.ino
#include<Adafruit_NeoPixel.h> //大部分传感器和设备都有自己的库文件,要想使用这个设备,就需要调用这些文件内容,调用语法就是 #include<库文件名称>
Adafruit_NeoPixel ColorLED=Adafruit_NeoPixel(2, 6, NEO_GRB+NEO_KHZ800); //这一句是定义彩灯的命令,用到了之前定义的两个值,一个是引脚”PIN“,另一个是灯的个数”PIN_NUM,按之前的定义,分别为“6”和“2”, 另外ColorLED为定义的彩灯名称,这个名称可以自行修改,但后面使用时要保持一致。
void loop(){
ColorLED.setPixelColor(0, ColorLED.Color(255,0,0)); //这段代码控制哪盏灯亮,以及灯的颜色,当前灯的编号为0,即第一盏灯亮,如果接了两盏灯,想让第二盏灯亮,那编号就为1。后面的三个数字对应的是颜色的RGB值,当前255,0,0对应的是红色。
ColorLED.show(); //显示灯的效果
delay(1000); //当前状态保持1000毫秒
ColorLED.setPixelColor(0,ColorLED.Color(0,0,0)); //再将灯的颜色设置成黑色(0,0,0),延时1000毫秒,循环起来,灯光就会亮1秒后,再暗1秒,循环往复,就形成了灯光闪烁的效果。
ColorLED,show();
delay(1000); }
- 要想使用彩灯,首先要调用库文件“Adafruit_NeoPixel.h",设置灯的名称,引脚以及灯的个数,并输入那一大段定义,灯的名称要统一。
- 之后,在void setup()中要输入”LEDname.begin();", 用来初始化彩灯。
- 最后记得要显示彩灯的状态,这几个固定形式记住,彩灯的使用就掌握了。
其他输出设备
舵机
对舵机的控制主要是通过程序对旋转角度以及速度进行控制。
舵机连接
- 舵机通过舵机转接板与接口板连接,连接方法如图所示
舵机上有三根线,黑色的那根是负极(GND), 与转接板上的GND对应连接
- 舵机转接板可以连接两个舵机,上面一排对应引脚的前一个编号,下面对应后一个编号,例如图中连接6/7,接上面一排引脚就为6,下面一排就为7
编程
打开_02_Servo_01_Basic.ino
#include<Servo.h> //调用舵机的库文件 Servo myservo; //定义舵机名称为myservo void setup(){ myservo.attach(6); //初始化舵机,定义引脚为6 } void loop(){ myservo.write(180); //舵机旋转到180度 delay(1000); //保持1秒 myservo.write(0); //舵机旋转到0度 delay(1000); //保持1秒 }
动手时间
尝试用for循环写一个舵机在0-180度之间来回摇摆的程序
蜂鸣器
控制蜂鸣器主要是控制发声频率,从而实现不同的音调。
编程
打开_03_Buzzer_01_basic.ino
void setup(){ pinMode(2, OUTPUT); //用pinMode()命令定义引脚为输出状态 } void loop(){ tone(buzzer_pin,200); //tone(a,b)是控制蜂鸣器的基本语法,其中"a"为引脚,”b“为输出的频率值,人耳可以听到的频率在20~20000Hz之间 delay(1000); //当前声音保持1秒 noTone(buzzer_pin); //noTone()顾名思义就是静音 delay(1000); //静音保持1秒,可以刷进核心模块,听听效果 }
动手时间
尝试用for循环做一个警报的音效