考试模板
需要用什么就复制到相关位置,编完程序后将注释删除
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
/********** 引脚控制 **********************
pinMode(引脚号, INPUT/OUTPUT);//引脚模式设定
digitalWrite(引脚号, 1/0);//数字输出 控制灯亮灭,电机启停
analogWrite(引脚号,0至255);//模拟输出3,5,6,9,10,11 控制灯亮度,电机转速
digitalRead(引脚号);//数字读取 按键
analogRead(引脚号);//模拟读取,范围0-1023,电位器和光敏电阻使用此指令
delay(毫秒);//延时
int val=map(传感器值,传感器范围低,传感器范围高,目标范围低,目标范围高);//映射,用一个东西调另外一个东西
*********** 超声波测距函数 **********************
int cm()
{
pinMode(A0, OUTPUT); // Trig A0
pinMode(A1, INPUT); // Echo A1
digitalWrite(A0, 0);
delayMicroseconds(2);
digitalWrite(A0, 1);
delayMicroseconds(10);
digitalWrite(A0, 0);
int s = pulseIn(A1, 1) / 58.0;
return s;
}
//将以上函数放到setup外面的上面
int s=cm();//测的距离存到s变量,此语句放到loop
*********** 红外遥控(将程序各个部分复制到相应的函数中) **********
#include <IRremote.h>//安装IRremote库,版本号3.7.1
const String IR_PROTOCOL_TYPE[] = {
"UNKNOWN",
"PULSE_DISTANCE",
"PULSE_WIDTH",
"DENON",
"DISH",
"JVC",
"LG",
"LG2",
"NEC",
"PANASONIC",
"KASEIKYO",
"KASEIKYO_JVC",
"KASEIKYO_DENON",
"KASEIKYO_SHARP",
"KASEIKYO_MITSUBISHI",
"RC5",
"RC6",
"SAMSUNG",
"SHARP",
"SONY",
"ONKYO",
"APPLE",
"BOSEWAVE",
"LEGO_PF",
"MAGIQUEST",
"WHYNTER"};
IRrecv irrecv(A0); // 接收头引脚号
int f = -1;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop()
{
if (irrecv.decode())
{
struct IRData *pIrData = &irrecv.decodedIRData;
long ir_item = pIrData->decodedRawData;
String irProtocol = IR_PROTOCOL_TYPE[pIrData->protocol];
Serial.print("IR TYPE:" + irProtocol + "\tVALUE:");
Serial.println(ir_item, HEX);
irrecv.resume();
Serial.println(ir_item, HEX);
//以下的分支结构为按键编码,按几号按键就把赋值为几
if (ir_item == 0xE916FF00)
{
f = 0;
}
else if (ir_item == 0xf30cff00)
{
f = 1;
}
else if (ir_item == 0xe718ff00)
{
f = 2;
}
else if (ir_item == 0xA15EFF00)
{
f = 3;
}
}
//以下分支结构为按对应按键时循环执行什么内容
if (f == 0)
{
}
else if (f == 1)
{
}
else if (f == 2)
{
}
else if (f == 3)
{
}
}
*********** 舵机控制 **********************
#include <Servo.h>
Servo sv;//以上两句放setup前面
sv.attach(引脚号);//初始化,放setup里
sv.write(角度);//转动角度,需要放哪就放哪
*********** 蜂鸣器 **********************
tone(引脚号,频率值);//发声
noTone(引脚号);//停止发声
*********** 串口 **********************
Serial.begin(9600);//串口初始化,放setup
Serial.println(打印的内容);//打印,按需放到相应的位置
****** 舵机往复摆动(90到150度) ***********
for (int i = 90; i <= 150; i++) {
sv.write(i);
delay(10);
}
for (int i = 150; i >= 90; i--) {
sv.write(i);
delay(10);
}
************* 呼吸灯 *******************
for (int i = 0; i <= 255; i++) {
analogWrite(3,i);
delay(5);
}
for (int i = 255; i >= 0; i--) {
analogWrite(3,i);
delay(5);
}
******************************************************/