Arduino通过输入密码控制电器运行

嗨,伙计们,我带来了一个arduino新教程。

这个教程是通过一个arduino和一个4 x4键盘访问密码来控制一个舵机。

我们将使用arduino的密码和键盘函数库。

除了使用舵机之外,也可以将舵机换成一个电机继电器或步进电机,或其他的任何想法…

pic1成品大图.jpg

2012-8-10 18:18 上传
(109.82 KB)





第一步:准备材料

我们需要这些零件

pic2元件清单.jpg

2012-8-10 18:18 上传
(194.4 KB)



1块Arduino UNO 或者类似的1个舵机1个4X4键盘或者类似的1个开发板若干跳线1个910Ω的电阻1个 2.7kΩ的电阻1个红色LED灯1个绿色LED灯







第二步:安装键盘

好, 现在,我们必须安装电阻先,记住键盘针脚安装的位置.

键盘针脚输出



1 pin = col 1

2 pin = col 2

3 pin = col 3

4 pin = col 4



5 pin = row 1

6 pin = row 2

7 pin = row 3

8 pin = row 4

pic3键盘连接1.jpg

2012-8-10 18:18 上传
(106.06 KB)


pic4键盘连接2.jpg

2012-8-10 18:18 上传
(127.9 KB)


pic5键盘连接3.jpg

2012-8-10 18:18 上传
(29.68 KB)


pic6键盘连接4.jpg

2012-8-10 18:18 上传
(105.4 KB)


pic7键盘连接5.jpg

2012-8-10 18:18 上传
(113.47 KB)







将3个910欧的电阻分别同键盘的1、2、3针脚连接, 然后按照这个表将它们同arduino的三个digital pins相连接:

pins keypad|pins arduino

---------------------------------------

1 | 8

2 | 7

3 | 6

4 | 9

5 | 5

6 | 4

7 | 3

8 | 2





第三步:安装舵机

pic8安装舵机.jpg

2012-8-10 18:18 上传
(33.66 KB)


pic8安装舵机3.jpg

2012-8-10 18:18 上传
(228.45 KB)





第四步:安装LED

pic9安装LED.jpg

2012-8-10 18:18 上传
(39.53 KB)





第五步:编程

现在需要这两个库:

密码控制附件.rar

(29.35 KB, 下载次数: 624)

2012-8-31 21:02 上传
点击文件名下载附件

密码库&键盘库下载





开始编程ARDUINO 代码复制打印

#include <Password.h>#include <Keypad.h>#include <Servo.h> //使用舵机 Servo myservo; //声明 servoPassword password = Password( "your_password" ); //解锁密码 const byte ROWS = 4; // 四行const byte COLS = 4; // 四列// 定义键盘char keys[ROWS][COLS] = {{'1','2','3','A'},{'4','5','6','B'},{'7','8','9','C'},{'*','0','#','D'}};//行byte rowPins[ROWS] = { 5, 4, 3, 2 };//列byte colPins[COLS] = { 8, 7, 6, 9 };// 建立键盘Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );void setup(){Serial.begin(9600);Serial.print(254, BYTE);Serial.print(0x01, BYTE);delay(200);pinMode(11, OUTPUT);//绿灯pinMode(12, OUTPUT);//红灯myservo.attach(13); //舵机digital pin 9 //舵机keypad.addEventListener(keypadEvent); //增加对键盘的侦听}void loop(){keypad.getKey();myservo.write();}//注意一些特殊的事件void keypadEvent(KeypadEvent eKey){switch (keypad.getState()){case PRESSED:Serial.print("Enter: ");Serial.println(eKey);delay(10);Serial.print(254, BYTE);switch (eKey){  case 'A': checkPassword(); delay(1); break;  case 'B': password.reset(); delay(1); break;  default: password.append(eKey); delay(1);}}}void checkPassword(){if (password.evaluate()){  Serial.println("Accepted");//如果密码正确开锁  Serial.print(254, BYTE);delay(10);  //如果开始工作,运行以下代码  myservo.write(5); //160度  digitalWrite(11, HIGH);//打开  delay(500); //等待5秒  digitalWrite(11, LOW);// 关闭}else{  Serial.println("Denied"); //如果密码错误保持锁定  Serial.print(254, BYTE);delay(10);  //如果没有开始工作,运行以下代码  myservo.write(


via - 极客工坊

标签: Arduino教程