考试模板

需要用什么就复制到相关位置,编完程序后将注释删除

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);
}

******************************************************/