“延时摄影”的版本间的差异
853387039@qq.com(讨论 | 贡献) |
853387039@qq.com(讨论 | 贡献) |
||
第61行: | 第61行: | ||
==实验二:按键控制拍照== | ==实验二:按键控制拍照== | ||
− | ==设备== | + | ===设备=== |
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
第77行: | 第77行: | ||
[[File:IR_Crash.jpg|600px|center|thumb]] | [[File:IR_Crash.jpg|600px|center|thumb]] | ||
− | ==搭建硬件== | + | ===搭建硬件=== |
*Setup 1:将红外发射传感器接到Hub的D6引脚上,碰撞传感器接到Hub的D8引脚上。 | *Setup 1:将红外发射传感器接到Hub的D6引脚上,碰撞传感器接到Hub的D8引脚上。 | ||
[[file:mCookie-IR transmitter-pc.JPG|600px|center]] | [[file:mCookie-IR transmitter-pc.JPG|600px|center]] | ||
第83行: | 第83行: | ||
[[file:mCookie-IR transmitter-crash-pc.JPG|600px|center]] | [[file:mCookie-IR transmitter-crash-pc.JPG|600px|center]] | ||
− | ==软件调试== | + | ===软件调试=== |
*打开Arduino IDE,将下列代码复制到IDE中。 | *打开Arduino IDE,将下列代码复制到IDE中。 | ||
<source lang="cpp"> | <source lang="cpp"> | ||
第126行: | 第126行: | ||
*结果:将红外发射传感器对准SONY相机的红外接收头,在设置SONY相机为遥控模式,按下按键, SONY相机拍照一次。 | *结果:将红外发射传感器对准SONY相机的红外接收头,在设置SONY相机为遥控模式,按下按键, SONY相机拍照一次。 | ||
− | ===程序说明== | + | ===程序说明=== |
*按下的时候是从“1”变到“0”,松开的时候是从“0”变到“1”,采用数据有变化的时候进行判断,然后检测当前值就可判断是按下还是松开,按下就拍照。 | *按下的时候是从“1”变到“0”,松开的时候是从“0”变到“1”,采用数据有变化的时候进行判断,然后检测当前值就可判断是按下还是松开,按下就拍照。 | ||
<source lang="cpp"> | <source lang="cpp"> |
2015年10月28日 (三) 05:19的版本
Language | English |
---|
目录目的使用红外发射传感器延时发送红外信号,控制SONY相机拍照。达到延时摄影目的。 实验一:系统延时发送设备
准备
调试
#include <IRremote.h>
#define PHOTO 0xB4B8F
IRsend irsend;
void setup() {
Serial.begin(115200);
pinMode(6, OUTPUT);
}
void loop() {
for (int i = 0; i < 3; i++)
{
irsend.sendSony(PHOTO, 20); // Sony code
delay(12);
}
delay(5000);
}
程序调试
实验二:按键控制拍照设备
搭建硬件
软件调试
#include <IRremote.h>
#define PHOTO 0xB4B8F
IRsend irsend;
#define pushButton 8
int buttonState, num;
void setup() {
Serial.begin(115200);
pinMode(6, OUTPUT);
pinMode(pushButton, INPUT);
}
void loop() {
buttonState = digitalRead(pushButton);
if (num != buttonState)
{
num = buttonState;
if (num == 0)
{
take();
Serial.println("take");
}
}
}
void take()
{
for (int i = 0; i < 3; i++)
{
irsend.sendSony(PHOTO, 20); // Sony code
delay(12);
}
}
程序说明
buttonState = digitalRead(pushButton);
if (num != buttonState)
{
num = buttonState;
if (num == 0)
{
take();
Serial.println("take");
}
}
视频 |