极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 106345|回复: 34

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

  [复制链接]
发表于 2012-7-24 07:07:24 | 显示全部楼层 |阅读模式
嗨,伙计们,我带来了一个arduino新教程。
这个教程是通过一个arduino和一个4 x4键盘访问密码来控制一个舵机。
我们将使用arduino的密码和键盘函数库。
除了使用舵机之外,也可以将舵机换成一个电机继电器或步进电机,或其他的任何想法…

第一步:准备材料
我们需要这些零件

  • 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







将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


第三步:安装舵机



第四步:安装LED


第五步:编程
现在需要这两个库:


开始编程


  1. #include <Password.h>
  2. #include <Keypad.h>
  3. #include <Servo.h> //使用舵机

  4. Servo myservo; //声明 servo
  5. Password password = Password( "your_password" ); //解锁密码

  6. const byte ROWS = 4; // 四行
  7. const byte COLS = 4; // 四列

  8. // 定义键盘
  9. char keys[ROWS][COLS] = {
  10. {'1','2','3','A'},
  11. {'4','5','6','B'},
  12. {'7','8','9','C'},
  13. {'*','0','#','D'}
  14. };

  15. //行
  16. byte rowPins[ROWS] = { 5, 4, 3, 2 };
  17. //列
  18. byte colPins[COLS] = { 8, 7, 6, 9 };

  19. // 建立键盘
  20. Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

  21. void setup(){
  22.   Serial.begin(9600);
  23.   Serial.print(254, BYTE);
  24.   Serial.print(0x01, BYTE);
  25.   delay(200);
  26.   pinMode(11, OUTPUT);  //绿灯
  27.   pinMode(12, OUTPUT);  //红灯
  28.   myservo.attach(13); //舵机digital pin 9

  29. //舵机
  30.   keypad.addEventListener(keypadEvent); //增加对键盘的侦听
  31.   }

  32. void loop(){
  33.   keypad.getKey();
  34.   myservo.write(0);
  35.   }
  36.   //注意一些特殊的事件
  37.   void keypadEvent(KeypadEvent eKey){
  38.   switch (keypad.getState()){
  39.   case PRESSED:

  40.   Serial.print("Enter: ");
  41.   Serial.println(eKey);
  42.   delay(10);

  43.   Serial.print(254, BYTE);

  44.   switch (eKey){
  45.     case 'A': checkPassword(); delay(1); break;
  46.     case 'B': password.reset(); delay(1); break;
  47.     default: password.append(eKey); delay(1);
  48. }
  49. }
  50. }


  51. void checkPassword(){

  52. if (password.evaluate()){  
  53.    
  54.     Serial.println("Accepted");//如果密码正确开锁
  55.     Serial.print(254, BYTE);delay(10);
  56.     //如果开始工作,运行以下代码
  57.     myservo.write(5); //160度
  58.    
  59.     digitalWrite(11, HIGH);//打开
  60.     delay(500); //等待5秒
  61.     digitalWrite(11, LOW);// 关闭
  62.    
  63.    
  64. }else{
  65.     Serial.println("Denied"); //如果密码错误保持锁定
  66.     Serial.print(254, BYTE);delay(10);
  67.     //如果没有开始工作,运行以下代码
  68.     myservo.write(0);

  69.     digitalWrite(12, HIGH); //打开
  70.     delay(500); //等待5秒
  71.     digitalWrite(12, LOW);//关闭
  72.    
  73. }
  74. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1 +1 收起 理由
幻生幻灭 + 1 新人贴 鼓励发教程

查看全部评分

回复

使用道具 举报

发表于 2012-7-24 08:37:53 | 显示全部楼层
好东西,咋没人顶呢?支持!!!
回复 支持 反对

使用道具 举报

发表于 2012-7-24 10:18:56 | 显示全部楼层
好东西。帮顶
回复 支持 反对

使用道具 举报

发表于 2012-7-24 10:38:41 | 显示全部楼层

好东西。帮顶
回复 支持 反对

使用道具 举报

发表于 2012-7-29 20:31:20 | 显示全部楼层
确实是好东西,谢谢
回复 支持 反对

使用道具 举报

发表于 2012-7-30 11:44:45 | 显示全部楼层
好东西,顶一个!
回复 支持 反对

使用道具 举报

发表于 2012-7-30 14:09:00 | 显示全部楼层
密码是可以改变的吗?可以做密码锁了。
回复 支持 反对

使用道具 举报

发表于 2012-10-15 16:43:23 | 显示全部楼层
学习了,支持!
回复 支持 反对

使用道具 举报

发表于 2012-10-16 10:21:51 | 显示全部楼层
我比较关系矩阵键盘
楼主不用接上拉电阻吗~
回复 支持 反对

使用道具 举报

发表于 2013-2-22 22:42:52 | 显示全部楼层
大牛 有qq吗 你的教程正是我要的找的 ,能交流交流吗
回复 支持 反对

使用道具 举报

发表于 2013-2-26 21:12:15 | 显示全部楼层
4号口那不用再加个电阻吗?
回复 支持 反对

使用道具 举报

发表于 2013-3-16 19:11:14 | 显示全部楼层
嗯,真不错,这个用于智能家居会很好的哦。
回复 支持 反对

使用道具 举报

发表于 2013-4-25 18:15:59 | 显示全部楼层
这个好像不能一直转啊。。我如果要它一直转该怎么调程序???求速解
回复 支持 反对

使用道具 举报

发表于 2013-5-24 11:48:12 | 显示全部楼层
我下载后,库没用。。。。新手不会咯
回复 支持 反对

使用道具 举报

发表于 2013-5-30 18:33:10 | 显示全部楼层
这库用不好啊。。。跪求大神速速解决!!!!!!!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 06:33 , Processed in 0.054626 second(s), 34 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表