Arduino 14个项目

//LED灯
int LED = 7;//定义7为输出引脚
void setup()
{
	pinMode(LED, OUTPUT);
}
void loop()
{
	digitalWrite(LED, HIGH);//点亮LED灯
	delay(1000);//持续1秒
	digitalWrite(LED, LOW);//熄灭LED灯
	delay(1000);//持续1秒
}

//按键控制LED
int ledpin = 11;//定义数字11接口
int inpin = 7;//定义数字7接口
int val;//定义变量val
void setup()
{
	pinMode(ledpin, OUTPUT);//定义小灯接口为输出接口
	pinMode(inpin, INPUT);//定义按键接口为输入接口
}
void loop()
{
	val = digitalRead(inpin);//读取数字7 电平值赋给val
	if (val == LOW)//检测按键是否按下,按键按下时小灯亮起
	{
		digitalWrite(ledpin, HIGH);//高频小灯亮起
	}
	else
	{
		digitalWrite(ledpin, LOW);//低频小灯亮起
	}
}

//控制蜂鸣器
int buzzer = 6;//设置控制蜂鸣器的数字10脚
void setup()
{
	pinMode(buzzer, OUTPUT);//设置数字10脚模式,OUTPUT为输出
}
void loop()
{
	unsigned char i, j;//定义变量
	while (1)
	{
		for (i = 0; i < 80; i++)//输出一个频率的声音
		{
			digitalWrite(buzzer, HIGH);//发声音
			delay(1);//延时1ms
			digitalWrite(buzzer, LOW);//不发声音
			delay(1);//延时1ms
		}
		for (j = 0; j < 100; j++)//输出另一个频率的声音
		{
			digitalWrite(buzzer, HIGH);//发声音
			delay(2);//延时2ms
			digitalWrite(buzzer, LOW);//不发声音
			delay(2);//延时2ms
		}
	}
}




//继电器
#define relay 8//定义控制光耦继电器为PIN 8
void setup()
{
	pinMode(relay, OUTPUT);//设置PIN 8为输出模式
}
void loop()
{
	digitalWrite(relay, HIGH);//给出高电平,光耦吸合常开端与公共端连接,常闭端与公共端断开
	delay(1000);
	digitalWrite(relay, LOW);//给出低电平,光耦离开常开端与公共端断开,常闭端与公共端断开
	delay(1000);
}

//舵机
#include<Servo.h>
#define PIN_SERVO 9
Servo myservo;
void setup()
{
	myservo.attach(PIN_SERVO);
}
void loop()
{
	myservo.write(0);
	delay(1000);
	myservo.write(80);
	delay(1000);
	myservo.write(160);
	delay(1000);
	myservo.write(80);
	delay(1000);
	myservo.write(0);
	delay(1000);
}

//串口通信实验
int instruction = 0;
void setup()
{
	Serial.begin(9600);//设置串口波特率为9600(开启串口)

	Serial.println(97, BIN);//"1100001"(串口输出数据,写入字符数据到串口,并换行)二进制
	Serial.println(97, OCT);//"141"八进制
	Serial.println(97, DEC);//"97"十进制
	Serial.println(97, HEX);//"61"十六进制
	Serial.println(3.14159,0);//"3"
	Serial.println(3.14159,2);//"3.14"
	Serial.println(3.14159,4);//"3.1416"
	Serial.println('Y');
	Serial.println("Hello");
}
void loop()
{
	if (Serial.available() > 0)//串口接收到数据
	{
		instruction = Serial.read();//获得串口接收到的数据
		if (instruction == 'H')
		{
			Serial.println("HanDan University");
		}
	}
	delay(1000);
}

//控制数码管
# define D_a 2//数码管a接引脚2
# define D_b 3
# define D_c 4
# define D_d 5
# define D_e 6 
# define D_f 7
# define D_g 8
# define D_h 9

unsigned char num[17][8] =
{//0为点亮,1为关闭,a表示数码管a的LED灯,其他类似
	{0,0,0,0,0,0,1,1},//0
	{1,0,0,1,1,1,1,1},//1
	{0,0,1,0,0,1,0,1},//2
	{0,0,0,0,1,1,0,1},//3
	{1,0,0,1,1,0,0,1},//4
	{0,1,0,0,1,0,0,1},//5
	{0,1,0,0,0,0,0,1},//6
	{0,0,0,1,1,1,1,1},//7
	{0,0,0,0,0,0,0,1},//8
	{0,0,0,0,1,0,0,1},//9
	{0,0,0,1,0,0,0,1},//A
	{0,0,0,0,0,0,0,1},//B
	{0,1,1,0,0,0,1,1},//C
    {0,0,0,0,0,0,1,1},//D
	{0,1,1,0,0,0,0,1},//E
	{0,1,1,1,0,0,0,1},//F
	{1,1,1,1,1,1,1,0},// .
};


void setup()
{
	pinMode(D_a, OUTPUT);//设置引脚输出
	pinMode(D_b, OUTPUT);
	pinMode(D_c, OUTPUT);
	pinMode(D_d, OUTPUT);
	pinMode(D_e, OUTPUT);
	pinMode(D_f, OUTPUT);
	pinMode(D_g, OUTPUT);
	pinMode(D_h, OUTPUT);
}

void loop()
{
	for (int i = 0; i < 17; i++)//按数序显示0123456789ABCDEF.
	{
		digitalWrite(D_a, num[i][0]);//设置a引脚的电平
		digitalWrite(D_b, num[i][1]);
		digitalWrite(D_c, num[i][2]);
		digitalWrite(D_d, num[i][3]);
		digitalWrite(D_e, num[i][4]);
		digitalWrite(D_f, num[i][5]);
		digitalWrite(D_g, num[i][6]);
		digitalWrite(D_h, num[i][7]);
		delay(1000);//延迟1秒
	}
}

//控制1602显示屏
// 第一种 四线模式(失败  原因不知)
/*Arduino 在 4 位接法下不使用 LiquidCrystal 库
 * 输出 Hello World 和 Welcome to HandanUniversity!  *  *  */
int RS = 12; //数据/命令选择器引脚(RS) 
int RW = 11; //读/写选择器引脚(R/W)
int DB[] = { 6, 7, 8, 9 }; //使用数组来定义总线需要的管脚(D4-D7)
int Enable = 10; //使能(E)  
void LcdCommandWrite(int value) 
{
	// 定义所有引脚
    int i = 0; 
	digitalWrite(Enable, LOW);
	delayMicroseconds(1); // 延时 1us 
	digitalWrite(RS, LOW);  
	digitalWrite(RW, LOW);  
	/* 6 7 8 9
	* D7 D6 D5 D4
	* DB[0] DB[1] DB[2] DB[3]
	*/
	int temp = value & 0xf0;//取指令高 4 位 
	for (i=DB[0]; i <= 9; i++) 
	{ 
	     if ((temp & 0x80) != 0)//取指令最高位
		 digitalWrite(i,HIGH); 
	     else
		 digitalWrite(i, LOW);  
	     temp <<= 1;
     }
    delayMicroseconds(1); // 延时 1us 
	digitalWrite(Enable,HIGH); 
    delayMicroseconds(1); // 延时 1us
	digitalWrite(Enable,LOW);  

    temp = (value & 0x0f) << 4; 
	for (i = DB[0]; i <= 9; i++)
	{
	if ((temp & 0x80) != 0)//取指令最高位 
		digitalWrite(i,HIGH); 
	else
		digitalWrite(i, LOW); 
	     temp <<= 1;
     }
delayMicroseconds(1); // 延时 1us 
digitalWrite(Enable,HIGH); 
delayMicroseconds(1); // 延时 1us
digitalWrite(Enable,LOW); 
delayMicroseconds(1); // 延时 1us 
}  
void LcdDataWrite(int value) 
{
	// 定义所有引脚 
	int i = 0; 
	digitalWrite(Enable, LOW);
	delayMicroseconds(1); // 延时 1us 
	digitalWrite(RS, HIGH);  
	digitalWrite(RW, LOW);  
	int temp=value& 0xf0; 
	for (i = DB[0]; i <= 9; i++)
	{
		if ((temp & 0x80) != 0)//取指令最高位 
			digitalWrite(i,HIGH);  
		else
			digitalWrite(i, LOW); 
		temp <<= 1;
	}
	digitalWrite(Enable, HIGH);
	delayMicroseconds(1); // 延时 1us 
	digitalWrite(Enable,LOW);  
	temp = (value & 0x0f) << 4;  
		for (i = DB[0]; i <= 9; i++) 
		{
		if ((temp & 0x80) != 0)//取指令最高位 
			digitalWrite(i,HIGH);  
		else
			digitalWrite(i, LOW);  
		temp <<= 1;
	     }
	delayMicroseconds(1); // 延时 1us 
	digitalWrite(Enable,HIGH); 
	delayMicroseconds(1); // 延时 1us 
	digitalWrite(Enable,LOW); 
	delayMicroseconds(1); // 延时 1us 
}  
	void setup(void)
	{
		int i = 0;
		for (i = Enable; i <= RS; i++)
		{ 
			pinMode(i, OUTPUT); 
		} 
		delay(100);
		// 短暂的停顿后初始化 LCD 
		// 用于 LCD 控制需要
		LcdCommandWrite(0x38); // 设置为 8-bit 接口,2 行显示,5x7 文字大小 
		delay(20); 
		LcdCommandWrite(0x06); // 输入方式设定,自动增量,画面没有移位 
		delay(20); 
		LcdCommandWrite(0x0C); // 显示设置,开启显示屏,光标关,无闪烁
		delay(20);  
	}  
		void loop(void) 
		{
			LcdCommandWrite(0x01); // 屏幕清空,光标位置归零 
			delay(10); 
			LcdCommandWrite(0x80 + 5); // 定义光标位置为第一行第五个位置
			delay(10); 
			// 写入欢迎信息 
			LcdDataWrite('H'); 
			LcdDataWrite('e');
			LcdDataWrite('l');
			LcdDataWrite('l');
			LcdDataWrite('o'); 
			delay(10);
			LcdCommandWrite(0xc0 + 5); // 定义光标位置为第二行第五个位置  delay(10); 
			LcdDataWrite('W'); 
			LcdDataWrite('o'); 
			LcdDataWrite('r'); 
			LcdDataWrite('l'); 
			LcdDataWrite('d'); 
			LcdDataWrite('!');
			delay(3000);
			LcdCommandWrite(0x01); // 屏幕清空,光标位置归零 
			delay(10); 
			LcdCommandWrite(0x80 + 2); //定义光标位置为第一行第二个位置 
			delay(10); 
			LcdDataWrite('W');  
			LcdDataWrite('e'); 
			LcdDataWrite('l'); 
			LcdDataWrite('c'); 
			LcdDataWrite('o');
			LcdDataWrite('m'); 
			LcdDataWrite('e'); 
			LcdDataWrite(' '); 
			LcdDataWrite('t'); 
			LcdDataWrite('o');
			LcdCommandWrite(0xc0); // 定义光标位置为第二行起始位置 
			delay(10); 
			LcdDataWrite('H');
			LcdDataWrite('a'); 
			LcdDataWrite('n'); 
			LcdDataWrite('d'); 
			LcdDataWrite('a'); 
			LcdDataWrite('n'); 
			LcdDataWrite('U'); 
			LcdDataWrite('n'); 
			LcdDataWrite('i'); 
			LcdDataWrite('v'); 
			LcdDataWrite('e'); 
			LcdDataWrite('r');
			LcdDataWrite('s'); 
			LcdDataWrite('i');
			LcdDataWrite('t'); 
			LcdDataWrite('y'); 
			delay(10); 
			delay(5000);
		}


//第二种
#include<LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7, 6);//初始化LED
void setup()
{
	lcd.begin(16, 2);//设置LED为16列*2行
}
void loop()
{
	lcd.clear();//清屏操作
	lcd.setCursor(5, 0);//设置光标位置为第一行,第六列
	lcd.print("Hello");//在LED上输出信息
	delay(10);//延时程序
	lcd.setCursor(5, 1);
	lcd.print("World");
	delay(3000);
	lcd.clear();
	lcd.setCursor(2, 0);
	lcd.print("Welcome to");
	lcd.setCursor(0, 1);
	lcd.print("HanDanUniversity");
	delay(5000);
}

//控制12864显示屏
//大屏
#include <Arduino.h> 
//#ifndef LCD12864R_h 
#define LCD12864R_h 
#include <stdio.h> //not needed yet 
#include <string.h> //needed for strlen() 
#include <avr/pgmspace.h> 
#include <inttypes.h> 
#define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] ) 
unsigned char show0[] = { 0xBA, 0xAA,0xB5, 0xA6,0xD1, 0xA7,0xD4, 0xBA };
unsigned char show1[] = "HanDanUniversity";
unsigned char logo[] = 
{
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 
0X00,0X00,0X00,0X00,0X00,0X03,0XFC,0X00,0X00,0XFE,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0XF8,0X00,0X00,0X00,0X00,0X78,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X1E,0X00,0XC0,0X00,0X00,0X30,0X03,0XC0,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0XE0,0X35,0XC0,0X00,0X00,0X6D,0XE0,0X1C,0X00,0X00,0X00,0X00, 
0X00,0X00,0X00,0X07,0X14,0XC1,0XA0,0X00,0X00,0X38,0XF8,0X83,0X00,0X00,0X00,0X00, 
0X00,0X00,0X00,0X38,0X65,0XB6,0X60,0X00,0X00,0X47,0XA5,0X80,0XE0,0X00,0X00,0X00, 
0X00,0X00,0X00,0XC0,0X09,0X90,0X20,0X00,0X00,0X94,0X4C,0X00,0X1C,0X00,0X00,0X00, 
0X00,0X00,0X03,0X00,0X0C,0XC0,0X30,0X00,0X00,0X03,0XE4,0X00,0X03,0X00,0X00,0X00,
0X00,0X00,0X1C,0X00,0X02,0X20,0X08,0X00,0X00,0X0C,0X04,0X00,0X00,0XC0,0X00,0X00, 
0X00,0X00,0X20,0X00,0X00,0X30,0X3F,0XFF,0XFF,0XE0,0X08,0X00,0X00,0X30,0X00,0X00,
0X00,0X00,0XC0,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X0C,0X00,0X00, 
0X00,0X03,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X02,0X00,0X00, 
0X00,0X04,0X40,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X61,0X80,0X00, 
0X00,0X19,0X2C,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0XC8,0X40,0X00,
0X00,0X32,0X64,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X0F,0X78,0X20,0X00, 
0X00,0X45,0X72,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X75,0XE4,0X18,0X00,
0X00,0X86,0XA9,0XE7,0XFF,0XFF,0XFF,0XFE,0X00,0X1F,0XFF,0XFE,0X00,0X19,0X0C,0X00, 
0X01,0X18,0X70,0X0F,0XFF,0XFF,0XFF,0XF3,0XDF,0X83,0XFF,0XFF,0X83,0XCA,0XC6,0X00,
0X02,0X07,0X00,0X3F,0XFF,0XFF,0XFF,0XEF,0XDF,0XFD,0XFF,0XFF,0XC3,0XF5,0X43,0X00,
0X04,0X04,0XE0,0X7F,0XFF,0XFF,0XFF,0XEF,0XDF,0XFC,0XFF,0XFF,0XF0,0X26,0X61,0X00,
0X0C,0X09,0X20,0XFF,0XFF,0XFF,0XFF,0XE7,0XCF,0XF9,0XFF,0XFF,0XF8,0XCF,0XE0,0X80,
0X08,0XFA,0X41,0XFF,0XFF,0XFF,0XFF,0XF9,0XE7,0XE3,0XFF,0XFF,0XFC,0X98,0X00,0XC0, 
0X10,0X0F,0X83,0XFF,0XFF,0XFF,0XFF,0XFD,0XF7,0X0F,0XFF,0XFF,0XFE,0X60,0X00,0X40, 
0X30,0X00,0X07,0XFF,0XFC,0X00,0X1F,0XFF,0XF4,0X7F,0XFC,0X00,0XFE,0X00,0X00,0X20, 
0X20,0X00,0X07,0XFF,0XC1,0X83,0X87,0XFF,0XE1,0XFF,0X80,0X01,0XFF,0X00,0X00,0X20, 
0X20,0X00,0X0F,0XFF,0X1F,0XF8,0X60,0XFF,0X8F,0XF8,0X00,0X11,0XFF,0X80,0X00,0X30, 
0X60,0X00,0X0F,0XFE,0X4F,0XFE,0X18,0X7F,0XB7,0X80,0X02,0X07,0XFF,0X80,0X00,0X10, 
0X40,0X00,0X1F,0XFE,0X07,0XFF,0X8E,0X1F,0X9E,0X00,0XF9,0XBF,0XFF,0X80,0X00,0X10, 
0X40,0X00,0X1F,0XFF,0X0F,0XFF,0XE3,0X86,0X70,0X8F,0XFF,0XFF,0XFF,0XC0,0X00,0X10, 
0X40,0X00,0X1F,0XFF,0XDF,0XFF,0XFC,0X60,0XE2,0X7F,0XFF,0XFF,0XFF,0XC0,0X00,0X18, 
0X40,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0X90,0X09,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X18, 
0X40,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XC7,0X0F,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X18, 
0X40,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0X8F,0X0F,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X10,
0X40,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0X1F,0X0F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X10,
0X60,0X00,0X0F,0XFF,0XFF,0XFF,0XFE,0X3E,0X1F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X10,
0X20,0X00,0X0F,0XFF,0XFF,0XFF,0XF8,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X30, 
0X20,0X00,0X07,0XFF,0XFF,0XFF,0XE7,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X20,
0X10,0X00,0X07,0XFF,0XFF,0X0E,0X1F,0XC3,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X20,
0X10,0X00,0X03,0XFF,0XFF,0X13,0XFC,0X1F,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X40, 
0X08,0X03,0XC1,0XFF,0X83,0XFF,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X08,0X00,0XC0, 
0X0C,0X18,0X20,0XFF,0X1F,0XF0,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X04,0X00,0X80, 
0X04,0X03,0X80,0X7F,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0X81,0X00, 
0X02,0X04,0X00,0X3F,0XF3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0X00,
0X01,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0X80,0X06,0X00,
0X00,0X81,0X2C,0X07,0XFF,0XFF,0XF3,0XEF,0X9E,0X3F,0XFF,0XFE,0X02,0XE0,0X0C,0X00,
0X00,0X40,0X30,0X01,0XFF,0XFF,0XF3,0X93,0X26,0X1F,0XFF,0XFE,0X00,0X18,0X18,0X00, 
0X00,0X30,0X20,0X40,0XFF,0XFF,0XF3,0XD3,0X27,0X9F,0XFF,0XF8,0X18,0X00,0X20,0X00, 
0X00,0X18,0X00,0X40,0X3F,0XFF,0XFB,0XE7,0X8E,0X7F,0XFF,0XC0,0X06,0X00,0XC0,0X00, 
0X00,0X04,0X04,0X80,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X01,0X01,0X80,0X00, 
0X00,0X03,0X01,0X81,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0XE0,0X06,0X00,0X00, 
0X00,0X00,0XC0,0X06,0X80,0X0F,0XFF,0XFF,0XFF,0XFF,0X00,0X10,0X10,0X0C,0X00,0X00, 
0X00,0X00,0X30,0X08,0X80,0X00,0X3F,0XFF,0XFF,0XE0,0X00,0X48,0X40,0X30,0X00,0X00, 
0X00,0X00,0X0C,0X03,0X06,0X00,0X00,0X00,0X00,0X00,0X04,0X36,0X00,0XC0,0X00,0X00,
0X00,0X00,0X03,0X00,0X04,0X18,0X00,0X00,0X00,0X02,0X30,0X18,0X03,0X00,0X00,0X00,
0X00,0X00,0X00,0XC0,0X0C,0X0A,0X01,0X00,0X03,0X18,0X19,0X00,0X18,0X00,0X00,0X00, 
0X00,0X00,0X00,0X18,0X00,0X0C,0X01,0X01,0XA1,0X04,0X0C,0X00,0XE0,0X00,0X00,0X00,
0X00,0X00,0X00,0X07,0X00,0X04,0X01,0X20,0XE1,0X02,0X00,0X03,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0XE0,0X00,0X01,0X02,0X21,0X80,0X00,0X3C,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X1E,0X00,0X00,0X00,0X00,0X00,0X03,0XC0,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0XF8,0X00,0X00,0X00,0X00,0XF8,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X03,0XFC,0X00,0X01,0XFE,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00 
};

int ScreenBuffer[16][32];
int delaytime; 
int DEFAULTTIME;
int RS = 17;
int RW = 16;
int EN = 18; 
int D0 = 8; 
int D1 = 9; 
int D2 = 10; 
int D3 = 11;
int D4 = 4; 
int D5 = 5;
int D6 = 6; 
int D7 = 7;
int temp[8];

/*LCD12864R::LCD12864R()
{
this->DEFAULTTIME = 300; // 80 ms default time this->delaytime = DEFAULTTIME;
} */
void setPins(uint8_t tRS, uint8_t tRW, uint8_t tD7, uint8_t tD6, uint8_t tD5, uint8_t tD4, uint8_t tD3, uint8_t tD2, uint8_t tD1, uint8_t tD0)
{
	digitalWrite(EN, 1);  
	delayns();  
	digitalWrite(RS, tRS); 
	digitalWrite(RW, tRW); 
	digitalWrite(D7, tD7); 
	digitalWrite(D6, tD6); 
	digitalWrite(D5, tD5); 
	digitalWrite(D4, tD4); 
	digitalWrite(D3, tD3); 
	digitalWrite(D2, tD2); 
	digitalWrite(D1, tD1); 
	digitalWrite(D0, tD0); 
	delayns();  
	digitalWrite(EN, 0); 
	delayns();
}
//*********************延时函数************************//
 void delayns(void) 
 { 
delayMicroseconds(delaytime);
 }
 void VectorConverter(int vector)
 {
	 int result = vector; 
	 for (int i = 7; i >= 0; i--) 
	 {
		 temp[i] = result % 2;
		 result = result / 2;
	 }
 }
 void WriteCommand(int CMD)
 {
	 delayns();
	 delayns();
	 VectorConverter(CMD); // lets get the binary from the dec  
	 setPins(0,0,temp[0],temp[1],temp[2],temp[3],temp[4],temp[5],temp[6],temp[7]); //WriteCommand 
 }
 void WriteData(int CMD)
 {
	 delayns();
	 delayns();
	 VectorConverter(CMD); // lets get the binary from the dec 
	 setPins(1,0,temp[0],temp[1],temp[2],temp[3],temp[4],temp[5],temp[6],temp[7]); //WriteData
 } 
 void Initialise(void)
 {
	 pinMode(RS, OUTPUT);  
	 pinMode(RW, OUTPUT); 
	 pinMode(EN, OUTPUT); 
	 pinMode(D0, OUTPUT); 
	 pinMode(D1, OUTPUT); 
	 pinMode(D2, OUTPUT);  
	 pinMode(D3, OUTPUT); 
	 pinMode(D4, OUTPUT); 
	 pinMode(D5, OUTPUT); 
	 pinMode(D6, OUTPUT); 
	 pinMode(D7, OUTPUT); 
	 delayns();
	 WriteCommand(0x30); //功能设定控制字 
	 WriteCommand(0x0c); //显示开关控制字 
	 WriteCommand(0x01); //清除屏幕控制字 
	 WriteCommand(0x06); //进入设定点控制字
} 
void CLEAR(void)
{
	 WriteCommand(0x30);
	 WriteCommand(0x01);//清除显示 
} 
void DisplayString(int X, int Y, unsigned char* ptr, int dat)
{
	 int i;
	 switch (X)
	 {
	     case 0: Y |= 0x80; break;
		 case 1: Y |= 0x90; break;
		 case 2: Y |= 0x88; break;
		 case 3: Y |= 0x98; break;
		 default: break;
	 }
	 WriteCommand(Y); // 定位显示起始地址 
	 for (i = 0; i < dat; i++)
	 {
		 WriteData(ptr[i]);//显示汉字时注意码值,连续两个码表示一个汉字  
	 } 
 } 
					 void DisplaySig(int M, int N, int sig)
					 {
						 switch (M)
						 {
						 case 0: N |= 0x80; break;
						 case 1: N |= 0x90; break;
						 case 2: N |= 0x88; break;
						 case 3: N |= 0x98; break;
						 default: break;
						 }
						 WriteCommand(N); // 定位显示起始地址 
						 WriteData(sig); //输出单个字符 
					 } 
						 void DrawFullScreen(unsigned char* p)
						 {
							 int ygroup, x, y, i; 
							 int temp;  
							 int tmp;

							 for (ygroup = 0; ygroup < 64; ygroup++) //写入液晶上半图象部分 
							 { //写入坐标
								 if (ygroup < 32)
								 {
									 x = 0x80;
									 y = ygroup + 0x80;
								 }

								 else
								 {
									 x = 0x88;
									 y = ygroup - 32 + 0x80;
								 }
								 WriteCommand(0x34); //写入扩充指令命令 
								 WriteCommand(y); //写入 y 轴坐标  
								 WriteCommand(x); //写入 x 轴坐标 
								 WriteCommand(0x30); //写入基本指令命令  
								 tmp = ygroup * 16;

								 for (i = 0; i < 16; i++)
								 {
									 temp = p[tmp++];
									 WriteData(temp);
								 }
							 }
						 
						 WriteCommand(0x34); //写入扩充指令命令 
						 WriteCommand(0x36); //显示图象
                         } 

						 void setup()
						 {
							 Initialise(); // 屏幕初始化 
							 delay(100);
						 } 

							 void loop()
							 {
								 CLEAR();//清屏 
								 delay(100); 
                                 DisplayString(0, 2, show0, AR_SIZE(show0));//第一行第三格开始,显示文字邯郸学院
								 delay(100); 
								 DisplayString(2, 0, show1, AR_SIZE(show1));//第三行第二格开始,显示Handan University
								 delay(2000); 
								 CLEAR();//清屏
								 delay(100); 
								 DrawFullScreen(logo);//第一行第三格开始,显示文字邯郸学院
								 delay(2000);
							 } 

//小屏
#include <Wire.h>//申明OLED 12864的函数库   IIC接口
#include <Adafruit_GFX.h>//申明OLED 12864的函数库
#include <Adafruit_SSD1306.h>//申明OLED 12864的函数库

#define OLED_RESET 8
							 Adafruit_SSD1306 display(OLED_RESET);

							 static const unsigned char PROGMEM logo[] = // 邯郸学院logo     注意,不能漏写了PROGMEM,这个是动态内存控制的关键
							 {
							 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
							 0X00,0X00,0X00,0X00,0X00,0X03,0XFC,0X00,0X00,0XFE,0X00,0X00,0X00,0X00,0X00,0X00,
							 0X00,0X00,0X00,0X00,0X00,0XF8,0X00,0X00,0X00,0X00,0X78,0X00,0X00,0X00,0X00,0X00,
							 0X00,0X00,0X00,0X00,0X1E,0X00,0XC0,0X00,0X00,0X30,0X03,0XC0,0X00,0X00,0X00,0X00,
							 0X00,0X00,0X00,0X00,0XE0,0X35,0XC0,0X00,0X00,0X6D,0XE0,0X1C,0X00,0X00,0X00,0X00,
							 0X00,0X00,0X00,0X07,0X14,0XC1,0XA0,0X00,0X00,0X38,0XF8,0X83,0X00,0X00,0X00,0X00,
							 0X00,0X00,0X00,0X38,0X65,0XB6,0X60,0X00,0X00,0X47,0XA5,0X80,0XE0,0X00,0X00,0X00,
							 0X00,0X00,0X00,0XC0,0X09,0X90,0X20,0X00,0X00,0X94,0X4C,0X00,0X1C,0X00,0X00,0X00,
							 0X00,0X00,0X03,0X00,0X0C,0XC0,0X30,0X00,0X00,0X03,0XE4,0X00,0X03,0X00,0X00,0X00,
							 0X00,0X00,0X1C,0X00,0X02,0X20,0X08,0X00,0X00,0X0C,0X04,0X00,0X00,0XC0,0X00,0X00,
							 0X00,0X00,0X20,0X00,0X00,0X30,0X3F,0XFF,0XFF,0XE0,0X08,0X00,0X00,0X30,0X00,0X00,
							 0X00,0X00,0XC0,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X0C,0X00,0X00,
							 0X00,0X03,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X02,0X00,0X00,
							 0X00,0X04,0X40,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X61,0X80,0X00,
							 0X00,0X19,0X2C,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0XC8,0X40,0X00,
							 0X00,0X32,0X64,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X0F,0X78,0X20,0X00,
							 0X00,0X45,0X72,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X75,0XE4,0X18,0X00,
							 0X00,0X86,0XA9,0XE7,0XFF,0XFF,0XFF,0XFE,0X00,0X1F,0XFF,0XFE,0X00,0X19,0X0C,0X00,
							 0X01,0X18,0X70,0X0F,0XFF,0XFF,0XFF,0XF3,0XDF,0X83,0XFF,0XFF,0X83,0XCA,0XC6,0X00,
							 0X02,0X07,0X00,0X3F,0XFF,0XFF,0XFF,0XEF,0XDF,0XFD,0XFF,0XFF,0XC3,0XF5,0X43,0X00,
							 0X04,0X04,0XE0,0X7F,0XFF,0XFF,0XFF,0XEF,0XDF,0XFC,0XFF,0XFF,0XF0,0X26,0X61,0X00,
							 0X0C,0X09,0X20,0XFF,0XFF,0XFF,0XFF,0XE7,0XCF,0XF9,0XFF,0XFF,0XF8,0XCF,0XE0,0X80,
							 0X08,0XFA,0X41,0XFF,0XFF,0XFF,0XFF,0XF9,0XE7,0XE3,0XFF,0XFF,0XFC,0X98,0X00,0XC0,
							 0X10,0X0F,0X83,0XFF,0XFF,0XFF,0XFF,0XFD,0XF7,0X0F,0XFF,0XFF,0XFE,0X60,0X00,0X40,
							 0X30,0X00,0X07,0XFF,0XFC,0X00,0X1F,0XFF,0XF4,0X7F,0XFC,0X00,0XFE,0X00,0X00,0X20,
							 0X20,0X00,0X07,0XFF,0XC1,0X83,0X87,0XFF,0XE1,0XFF,0X80,0X01,0XFF,0X00,0X00,0X20,
							 0X20,0X00,0X0F,0XFF,0X1F,0XF8,0X60,0XFF,0X8F,0XF8,0X00,0X11,0XFF,0X80,0X00,0X30,
							 0X60,0X00,0X0F,0XFE,0X4F,0XFE,0X18,0X7F,0XB7,0X80,0X02,0X07,0XFF,0X80,0X00,0X10,
							 0X40,0X00,0X1F,0XFE,0X07,0XFF,0X8E,0X1F,0X9E,0X00,0XF9,0XBF,0XFF,0X80,0X00,0X10,
							 0X40,0X00,0X1F,0XFF,0X0F,0XFF,0XE3,0X86,0X70,0X8F,0XFF,0XFF,0XFF,0XC0,0X00,0X10,
							 0X40,0X00,0X1F,0XFF,0XDF,0XFF,0XFC,0X60,0XE2,0X7F,0XFF,0XFF,0XFF,0XC0,0X00,0X18,
							 0X40,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0X90,0X09,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X18,
							 0X40,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XC7,0X0F,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X18,
							 0X40,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0X8F,0X0F,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X10,
							 0X40,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0X1F,0X0F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X10,
							 0X60,0X00,0X0F,0XFF,0XFF,0XFF,0XFE,0X3E,0X1F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X10,
							 0X20,0X00,0X0F,0XFF,0XFF,0XFF,0XF8,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X30,
							 0X20,0X00,0X07,0XFF,0XFF,0XFF,0XE7,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X20,
							 0X10,0X00,0X07,0XFF,0XFF,0X0E,0X1F,0XC3,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X20,
							 0X10,0X00,0X03,0XFF,0XFF,0X13,0XFC,0X1F,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X40,
							 0X08,0X03,0XC1,0XFF,0X83,0XFF,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X08,0X00,0XC0,
							 0X0C,0X18,0X20,0XFF,0X1F,0XF0,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X04,0X00,0X80,
							 0X04,0X03,0X80,0X7F,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0X81,0X00,
							 0X02,0X04,0X00,0X3F,0XF3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0X00,
							 0X01,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0X80,0X06,0X00,
							 0X00,0X81,0X2C,0X07,0XFF,0XFF,0XF3,0XEF,0X9E,0X3F,0XFF,0XFE,0X02,0XE0,0X0C,0X00,
							 0X00,0X40,0X30,0X01,0XFF,0XFF,0XF3,0X93,0X26,0X1F,0XFF,0XFE,0X00,0X18,0X18,0X00,
							 0X00,0X30,0X20,0X40,0XFF,0XFF,0XF3,0XD3,0X27,0X9F,0XFF,0XF8,0X18,0X00,0X20,0X00,
							 0X00,0X18,0X00,0X40,0X3F,0XFF,0XFB,0XE7,0X8E,0X7F,0XFF,0XC0,0X06,0X00,0XC0,0X00,
							 0X00,0X04,0X04,0X80,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X01,0X01,0X80,0X00,
							 0X00,0X03,0X01,0X81,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0XE0,0X06,0X00,0X00,
							 0X00,0X00,0XC0,0X06,0X80,0X0F,0XFF,0XFF,0XFF,0XFF,0X00,0X10,0X10,0X0C,0X00,0X00,
							 0X00,0X00,0X30,0X08,0X80,0X00,0X3F,0XFF,0XFF,0XE0,0X00,0X48,0X40,0X30,0X00,0X00,
							 0X00,0X00,0X0C,0X03,0X06,0X00,0X00,0X00,0X00,0X00,0X04,0X36,0X00,0XC0,0X00,0X00,
							 0X00,0X00,0X03,0X00,0X04,0X18,0X00,0X00,0X00,0X02,0X30,0X18,0X03,0X00,0X00,0X00,
							 0X00,0X00,0X00,0XC0,0X0C,0X0A,0X01,0X00,0X03,0X18,0X19,0X00,0X18,0X00,0X00,0X00,
							 0X00,0X00,0X00,0X18,0X00,0X0C,0X01,0X01,0XA1,0X04,0X0C,0X00,0XE0,0X00,0X00,0X00,
							 0X00,0X00,0X00,0X07,0X00,0X04,0X01,0X20,0XE1,0X02,0X00,0X03,0X00,0X00,0X00,0X00,
							 0X00,0X00,0X00,0X00,0XE0,0X00,0X01,0X02,0X21,0X80,0X00,0X3C,0X00,0X00,0X00,0X00,
							 0X00,0X00,0X00,0X00,0X1E,0X00,0X00,0X00,0X00,0X00,0X03,0XC0,0X00,0X00,0X00,0X00,
							 0X00,0X00,0X00,0X00,0X00,0XF8,0X00,0X00,0X00,0X00,0XF8,0X00,0X00,0X00,0X00,0X00,
							 0X00,0X00,0X00,0X00,0X00,0X03,0XFC,0X00,0X01,0XFE,0X00,0X00,0X00,0X00,0X00,0X00,
							 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00
							 };

							 void setup()
							 {



								 /* 初始化WIFI通讯波特率为9600 */
								 Serial.begin(9600);

								 display.begin(SSD1306_SWITCHCAPVCC, 0x3c);  // initialize with the I2C addr 0x3D (for the 128x64)


							 }
							 
							 void loop()
							 {

								 display.clearDisplay();   // 清屏
								 display.setTextSize(3);   //字体尺寸大小2
								 display.setTextColor(WHITE);//字体颜色为白色
								 display.setCursor(0, 16); //把光标定位在第0行,第0列
								 display.print(F("JIANG  JIE"));//显示字符
								 display.display();//显示
								 delay(5000); //延时两秒

								 display.clearDisplay();   // 清屏    
								 display.setTextSize(2);   //字体尺寸大小2
								 display.setTextColor(WHITE);//字体颜色为白色
								 display.setCursor(0, 0); //把光标定位在第0行,第0列
								 display.print(F("HanDan    College"));//显示字符   加上F()表示写入flash里,不占全局变量
								 display.setCursor(0, 16); //把光标定位在第0行,第0列
								 display.print("2024-05-24");//显示时间年月日
								 display.setCursor(0, 32);   //把光标定位在第32行,第0列
								 display.print(F("2021-01-28 ")); //显示时间时分秒
								 display.setCursor(0, 48); //把光标定位在第48行,第0列
								 display.print(F(" Welcome!")); //显示字符
								 display.display();//显示   
								 delay(5000); //延时10秒


								 display.clearDisplay();   // 清屏    
								 display.setTextSize(1);   //字体尺寸大小2
								 display.setTextColor(WHITE);//字体颜色为白色
								 display.setCursor(0, 0); //把光标定位在第0行,第0列
								 //display.print(*show1);//显示字符
								 //LCDA.DisplayString(0,2,show1,AR_SIZE(show1));//第一行第一格开始,显示"邯郸学院"
								 //display.drawBitmap(0, 0, str_1, 16, 16, 1); //在坐标X:26  Y:16的位置显示中文字符姜
								 //display.drawBitmap(16, 0, str_2, 16, 16, 1); //在坐标X:42  Y:16的位置显示中文字符敏
								 //display.drawBitmap(32, 0, str_3, 16, 16, 1);
								 //display.drawBitmap(74, 32, str_4, 16, 16, 1);
								 //display.drawBitmap(90, 32, str_5, 16, 16, 1);
								 display.display();//显示
								 delay(2000); //延时10秒

								 display.clearDisplay();   // 清屏    
								 display.setTextSize(1);   //字体尺寸大小2
								 display.setTextColor(WHITE);//字体颜色为白色
								 display.setCursor(0, 0); //把光标定位在第0行,第0列 
								 display.drawBitmap(0, 0, logo, 128, 63, 1);
								 display.display();//显示
								 delay(2000); //延时10秒
							 }

//温湿度显示
#include <LiquidCrystal.h> 
#include <dht11.h>
#define DHT11PIN 8 
dht11 DHT11; 
float interchk;  
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 

void setup() {
	pinMode(DHT11PIN, OUTPUT);
    lcd.begin(16,2); 
}

void loop() 
{
	interchk = DHT11.read(DHT11PIN); 
	lcd.setCursor(0, 0); 
	lcd.print("Temp:"); 
	lcd.print((float)DHT11.temperature, 2);
	lcd.print("C");
    lcd.setCursor(0,1); 
	//print the number of seconds since reset: 
    lcd.print("Hum:");  
	lcd.print((float)DHT11.humidity,2);
	lcd.print("%");
	delay(200); 
}

//超声波测距
#include<LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
//创建 4 线制液晶显示实例,RS-12;E-11;5-D4;4-D5;3-D6;2-D7 
// 设定 SR04 连接的 Arduino 引脚 
#define Trig 6 //引脚 Tring 连接 IO D6 
#define Echo 7 //引脚 Echo 连接 IO D7 
float distance;//距离变量 
float temp;

void setup()
{ 
	// 初始化串口通信及连接 SR04 的引脚 
	// // Serial.begin(9600); 
	pinMode(Trig, OUTPUT);
	// 要检测引脚上输入的脉冲宽度,需要先设置为输入状态 
	pinMode(Echo, INPUT);
	lcd.begin(16, 2); //制定显示屏的尺寸(16 列,2 行) 
}
void loop()
{
	// 产生一个 10us 的高脉冲去触发 TrigPin 
	digitalWrite(Trig, LOW);//给 Trig 发送一个低电平 
	delayMicroseconds(2);//等待 2 微秒 
	digitalWrite(Trig, HIGH);//给 Trig 发送一个高电平 
	delayMicroseconds(10);//等待 10 微秒 
	digitalWrite(Trig, LOW);//给 Trig 发送一个低电平 
	// 检测脉冲宽度,并计算出距离 
	temp = float(pulseIn(Echo, HIGH)); //存储回波等待时间, 
	//pulseIn 函数会等待引脚变为 HIGH,开始计算时间,再等待变为 LOW 并停止计时 
	//返回脉冲的长度 
	//声速是:340m/s 换算成 34000cm / 1000000μs => 34 / 1000 
	//因为发送到接收,实际是相同距离走了 2 回,所以要除以 2 
	//距离(厘米) = (回波时间 * (34 / 1000)) / 2 
	//简化后的计算公式为 (回波时间 * 17)/ 1000 
	distance = (temp * 17) / 1000;//把回波时间换算成 cm 
	lcd.setCursor(4, 0);//将光标放在第一行第 5 个位置 
	lcd.print("distance:");//显示字符"distance" 
	lcd.setCursor(5, 1);//将光标放在第二行第 6 个位置
	lcd.print(distance);//显示数据 distance 
	lcd.print("cm");
	delay(1000);//延迟 1000ms 
	lcd.clear();
}

//光照检测器
#include<LiquidCrystal.h>
const int sensorPin = A0;
const int LED = 13;//设施LED灯管脚
float sensorValue;//定义读取光敏电阻两端的电压值
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
//创建4线制液晶显示
void setup()
{
	lcd.begin(16, 2);//初始化LED灯
	delay(1000);//延时1000ms
	Serial.begin(9600);
	pinMode(LED, OUTPUT);//初始化LED数字端口
	pinMode(sensorPin, INPUT);//初始化传感器读取模拟口
}

void loop()
{
	sensorValue = analogRead(sensorPin) * 0.07;//读取光敏电阻两端值。为1024*(0.8/(10+0.8))V
	if (sensorValue >= 60)//定值电阻为10K,资料显示光敏电阻值为 50 - 100K 之间
	{
		digitalWrite(LED, HIGH);//外界光弱则LED亮
	}
	else
	{
		digitalWrite(LED, LOW);//外界光强则LED灭
	}
	lcd.setCursor(1, 0);//将光标放在第一行第2个位置
	lcd.print("light intensity:");//“显示light intensity:”
	lcd.setCursor(5, 1);//将光标放在第二行第6个位置
	lcd.print(sensorValue);//“显示数据sensorValue”
	Serial.println(sensorValue, DEC);//串口显示光强度电压值
	delay(1000);//延迟1000ms
	lcd.clear();
}

//声控灯
const int sensorPin = A0;
const int LED = 2;//设置 LED 灯管脚 
int sensorValue; //定义读取声音传感器两端的电压值 
// initialize the library with the numbers of the interface pins 
void setup() 
{ 
 // put your setup code here, to run once: 
  Serial.begin(9600); 
  pinMode(LED, OUTPUT);//初始化 LED 数字端口 
  pinMode(sensorPin, INPUT); //初始化传感器读取模拟口 
} 
void loop() 
{
	// put your main code here, to run repeatedly: 
  sensorValue = analogRead(sensorPin);// 读取声音传感器传感器两端值 
	if (sensorValue >= 600) //声音传感器电压值为 0-1024 之间 
	{ 
		digitalWrite(LED, HIGH); //外界光弱则 LED 亮 
    } 
	else
	{
		digitalWrite(LED, LOW);//外界光强则 LED 灭  
	} 
	Serial.println(sensorValue, DEC);//串口显示声音传感器电压值 
	delay(1000);
} 

//红外发射和接收
//1.串口和1602显示屏获取遥控器各按键的编码值
#include <LiquidCrystal.h> 
#include <IRremote.h> 
LiquidCrystal lcd(13, 12, 5, 4, 3, 2);//设置接口 
int RECV_PIN = 11; // 红外一体化接收头连接到 Arduino 11 号引脚 
IRrecv irrecv(RECV_PIN);//引用红外发射接收库函数 
decode_results results; // 用于存储编码结果的对象 
void setup()
{
	Serial.begin(9600); // 初始化串口通信 
	irrecv.enableIRIn(); // 初始化红外解码 
	lcd.begin(16, 2); //初始化 LCD 
	delay(1000); //延时 1000ms
} 
	void loop()
	{
		lcd.clear(); //清屏 
		if (irrecv.decode(&results)) //有数据接收到 
		{ 
			Serial.println(results.value, HEX);//以 16 进制串口显示接收代码 
			lcd.setCursor(0,0); 
		lcd.print(results.value, HEX);//以 16 进制 1602 显示接收代码 
		irrecv.resume(); // 接收下一个编码 
		} 
		delay(5000);
	}

//2.红外遥控器控制LED灯开关
#include<LiquidCrystal.h>
#include <IRremote.h> 

int RECV_PIN = 11; // 红外一体化接收头连接到 Arduino 11 号引脚 
int LEDpin = 13; //定义 LED 输出引脚
IRrecv irrecv(RECV_PIN);  
decode_results results; // 用于存储编码结果的对象  
void setup()
{
	pinMode(LEDpin, OUTPUT);
	irrecv.enableIRIn(); // 初始化红外解码 
}  
void loop()
{
	if (irrecv.decode(&results))
	{
		Serial.println(results.value);
		if (results.value == 0xFFA25D) //若接收到按键 ON 按下的指令,打开 LED 
		{
			digitalWrite(LEDpin, HIGH);
		}
		else if (results.value == 0xFFE21D) //接收到 OFF 按键按下的命令,关闭 LED
		{
			digitalWrite(LEDpin, LOW);
		}
		irrecv.resume(); // 接收下一个编码 
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值