0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arduino键盘的制作教程

454398 来源:wv 2019-10-09 10:40 次阅读

第1步:

对于此项目,我们将使用以下-

硬件

-Arduino Uno

-伺服电机(180 *)

-瞬时按钮x5

-10k电阻x5

-LED x2(Redx1,Greenx1)

-16x2字符LCD

-10k电位器

-各种跳线

-面包板(一个大的可以容纳整个项目,或者几个小的)

-不要忘记您的计算机或笔记本电脑,还有用于Arduino

〜软件〜

-Arduino的USB电缆(当然是:3)

〜Fritzing(http://www.fritzing。 ORG)。很酷的东西。它具有三种可视化电路的方式-面包板,原理图和PCB。加!您可以发送设计并让他们制作您的PCB,这样您就可以完成产品!我还没有尝试过,但是触手可及的可能性真棒!我使用Fritzing制作原理图和更整洁,更有条理的面包板视图:)最重要的是,它是一个免费软件。

第2步:连接起来-按钮

为Arduino的Analog Pin区域A0-A4上的按钮留出空间。

按钮的一侧将绑在5v上,另一侧绑在5v上。将被接地和模拟引脚之一。它也将以另一种方式工作-一侧连接到5v和模拟引脚,另一侧接地。这实际上是一个优先选择的问题,具体取决于您要寻找的是HIGH信号还是LOW信号。

我更喜欢寻找HIGH信号,因为我担心5V恒定电压会馈入引脚。而且我也是一个乐观主义者-等待好的事情发生,而不是等待好的事情消失:P

第3步:接线-伺服

我必须说,我爱我一些伺服器!

无论如何。..如果您注意到,伺服器发出了三行信号-特别是在我的身上,有红色,棕色和橙色。显而易见,红色是5v。棕色的引线为接地,橙色的为信号。我们将其连接起来,将橙色引线连接到Arduino的Digital Pin 9,将另外两个引线分别连接到5v和Ground。

我不确定较旧的版本,但最新版本的Arduino IDE装有伺服库和一些启动示例。 #在项目中包含一个伺服器很简单!

第4步:将其接线-16x2字符LCD

LCD是一个有趣的小物件。像伺服系统一样,应该有一个使用和控制LCD屏幕的库和示例,以及在线教程以帮助您入门。我将在这里详细说明,因为LCD比伺服器要复杂一些。

首先,我们将其连接到Arduino。

LCD上的针脚从左到右,如下所示-

-1:VSS(接地)

-2:VDD(+ 5v)

-3:对比度(将此与10k电位计抽头相连-中间引脚)

-4 :寄存器选择

-5:读/写

-6:启用

-7:数据0

-8:数据1

-9:数据2

-10:数据3

-11:数据4

-12:数据5

-13:数据6

-14:数据7

-15:背光+ 5v

-16:背光地

分别将电源和地线连接到。..电源和地线(如果您的LCD仅具有14针,则很可能没有背光,因此,请省略背光连接)。引脚3(对比电压)将到达10k电位计的抽头引脚。您可以将针脚4、6、11、12、13和14连接到Arduino上任何未使用的数字针脚,只要它在代码中按顺序排列即可,例如-

LCD针脚Arduino针脚

4 6

6 2

11 5

12 11

13 7

14 3

虽然有点。..奇怪的。..在Arduino草图中仍然可以正常工作,您可以按此顺序进行操作。

这是它的样子-

LiquidCrystal lcd(6,2,5,11,11,7)

库的方式根据我的收集工作,它将按顺序将那些Arduino引脚指定为LCD引脚。引脚6将被指定为寄存器选择,引脚2将被启用,依此类推。因此,如果在进行连接和编码时顺序不对,那么效果就不会很好。

那不是很复杂吗?对我们来说幸运的是,其他才华横溢的人写了图书馆,为我们做了繁重的工作。对那些家伙表示敬意!因此,我们要做的就是正确地将所有东西绑在一起,这将是顺风顺水。

对于此特定项目,将把针脚4、6、11、12、13和14分配给数字针脚2 ,3、4、5、6和7。

您可能会想,“但是其他4个数据引脚呢?”。仅使用这四个引脚,我们就可以很好地摆脱困境。使用所有8个引脚的速度据说是以前的两倍,但是对于我们现在正在做的事情,这4个引脚将为我们提供很好的服务:)

哦,将LCD的引脚5接地。将其接地将LCD设置为Write-因为我们正在对其进行写入。

步骤5:将其接线-LEDs

这肯定是一小步。我们将数字引脚8和10用于LED。绿色代表8,红色代表10。只需确保记住是哪一个即可。

长引线为正,短引线为地,以免我们忘记了!

步骤6:将其编码。..现在就好玩了

这将变得有点。..具有挑战性。..

我尽最大努力不只是遵循别人的教程,而是使用我知道的。弄清楚什么有效,什么无效。像往常一样,您可以在github(底部的链接)上下载我的草图,在这里,我将逐段详细描述草图的每个部分。

//在这里,我们包括我们的库

#include

#include

//初始化库并设置LCD的引脚

LiquidCrystal lcd(2,3, 4,5,6,7);

Servo myservo;

//const int表示常量整数。常数不变。因为我们正在使用按钮,所以很合适。

//不想让我们的Arduino感到困惑!

const int button1 = A0;

const int button2 = A1;

const int button3 = A2;

const int button4 = A3;

const int button5 = A4;

//我们将使用“ countx”来跟踪一次按下按钮

int count1 = 0;

int计数2 = 0;

int计数3 = 0;

int计数4 = 0;

int计数5 = 0;

//“ statex”将跟踪状态按钮。

int state1 = 0;

int state2 = 0;

int state3 = 0;

int state4 = 0;

int state5 = 0;

//这些将选项卡保留在按钮的先前状态。高吗低吗?

int prev1 = 0;

int prev2 = 0;

int prev3 = 0;

int prev4 = 0;

int prev5 = 0;

//totalcount是每个按钮被按下的次数。 。.就像一个组合。

int totalcount = 0;

//这适用于LCD。输入组合时,它将显示一个星号。

int rows = 0;

//并声明LED:)

int red = 8;

int green = 10;

第7步:对其进行编码-设置和循环

//在这里,我们设置引脚的功能(输入/输出),启动LCD并指定与伺服器相连的

//引脚。我们还将以0度的舵机开始。

void setup(){

pinMode(button1,INPUT);

pinMode(按钮2,输入);

pinMode(按钮3,输入);

pinMode(按钮4,输入);

pinMode(按钮5,输入);

pinMode(红色,输出);

pinMode(绿色,输出);

lcd.begin(16,2);

lcd.setCursor(0,0);

lcd.print(“:ENTER CODE:”);

Serial.begin(9600); //用于调试。

myservo.attach(9);

myservo.write(0);

}

//从读取状态开始。

void loop(){

state1 = digitalRead(button1);

state2 = digitalRead(button2);

state3 = digitalRead(button3);

state4 = digitalRead (button4);

state5 = digitalRead(button5);

//如果按钮的状态不等于它的先前状态(1 = HIGH,0 = LOW),基本上是

//意思是它刚被按下或释放?如果按钮的状态为HIGH(1)

//,我们将增加该按钮的计数。

if(state1!= prev1){

delay(10);

if(state1 == HIGH){

count1 ++;

}

//注意延迟(10)。这个很重要。它有助于消除抖动。按钮有一个

//跳动性。您感觉不到,但是当您按下一个按钮时,它有时会多次接触,并且Arduino将多次按下它。延迟

//将程序暂停10毫秒,使按钮“稳定”,然后

//恢复。 10毫秒应该足够长,但是可以根据需要调整更长的时间。

else {}

}

//我们为每个按钮执行此操作。

if(state2!= prev2){

delay(10);

if(state2 == HIGH){

count2 ++;

}

else {}

}

if(state3!= prev3){

delay(10);

if(state3 == HIGH){

count3 ++;

}

else {}

}

if(state4!= prev4){

delay(10);

if(state4 == HIGH){

count4 ++;

}

else { }

}

如果(state5!= prev5){

delay(10);

如果(state5 == HIGH){

count5 ++;

}

else {}

}

//这将有助于跟踪使用

//按钮进行的操作。按下按钮时,其状态与

//之前的状态不匹配,表示已更改。在这里,我们将先前的

//状态设置为当前状态,以便您按下或释放Arduino的那一刻就知道并采取相应的措施。

prev1 = state1;

prev2 = state2;

prev3 = state3;

prev4 = state4;

prev5 = state5;

//然后计算每个按钮的按下次数。

totalcount = count1 + count2 + count3 + count4 + count5;

//这是每次按下按钮时在LCD上写入星号(“ *”)的地方。

表示(行= 0;行 lcd.setCursor(rows,1);

lcd.print(“ *”);

行++;

}

//“行”是LCD上光标从左到右的位置。

//每按一次按钮,我们将递增“行”加1,然后将其设置为光标位置。我们这样做直到某个点(5),因为这是我们组合中的位数。

//现在,如果我们的总数达到5,我们将开始查看每个按钮被按下了多少次。如果与预定组合相符。..

if(totalcount == 5){

if(count1 == 2 && count2 == 0 && count3 == 1 && count4 == 2 && count5 == 0){

lcd.clear();

lcd.print(“接受代码”); //接受代码!

myservo.write(90); //伺服器移动了90度,就好像打开门一样。。

digitalWrite(绿色,高); //绿色等于良好,因此绿色LED亮起

//如果第一次未正确输入代码,请确保红色LED保持熄灭

digitalWrite(red,LOW);

count1 = 0; //将我们所有的计数器重置为0,再次开始该过程。

count2 = 0;

count3 = 0;

count4 = 0;

count5 = 0;

totalcount = 0;

delay(10000);

lcd.clear();

lcd.setCursor(0,0);

lcd.print(“:ENTER CODE:”) ;//我们又回到了开头。

myservo.write(0);

digitalWrite(green,LOW);

}

否则if(count1!= 2 && count2!= 0 && count3!= 1 && count4!= 2 && count5!= 0 && totalcount == 5){

lcd.clear();

lcd.setCursor(0,0);

lcd.print( “拒绝代码”); //和下面的部分是每个按钮的计数

digitalWrite(red,HIGH); //不等于预定计数,或者大于计数,

digitalWrite(绿色,低); //且总按下次数等于5(表示5位数

count1 = 0;输入了//组合,但错误),然后代码被拒绝。

count2 = 0;

count3 = 0;

count4 = 0;

count5 = 0;

totalcount = 0;

delay(5000);

lcd.clear();

lcd.setCursor(0,0);

lcd.print(“:ENTER CODE:”);

digitalWrite(red,LOW);

}

else if(count1》 2 && count2》 0 && count3》 1 && count4》 2 && count5》 0 || totalcount == 5){

lcd.clear();

lcd.setCursor(0, 0);

lcd.print(“ CODE REJECTED”);

digitalWrite(red,HIGH);

digitalWrite(green,LOW);

count1 = 0;

count2 = 0;

count3 = 0;

count4 = 0;

count5 = 0;

totalcount = 0;

delay(5000);

lcd.clear();

lcd。 setCursor(0,0);

lcd.print(“:ENTER CODE:”);

digitalWrite(red,LOW);

}

}

}

第8步:下载草图

哪!复杂。

总的来说,考虑到“人工”和缺少键盘库,这实际上是一个简短的草图。对我来说,这绝对是一次学习的经历,因为我必须反复试验才能做到这一点。如果我有更多按钮,我会尽力制造键盘,就像在其他任何按键面板上看到的一样。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 键盘
    +关注

    关注

    4

    文章

    859

    浏览量

    39666
  • Arduino
    +关注

    关注

    188

    文章

    6469

    浏览量

    187027
收藏 人收藏

    评论

    相关推荐

    自己设计的Arduino UNO R3主控板原理图+PCB源文件(可直接打样)

    一年前做的Arduino UNO r3,开源精神,把自己这块板子奉献给大家,板子没有什么问题,可以直接打样制作,原理图文件都表明了型号。不用谢~ Arduino UNO R3主控板原理图部分截图: *附件:MYArduino
    发表于 12-10 10:14

    开源项目!基于 Arduino 的 MIDI 架子鼓

    牢固地固定在插槽中。 第 6 步:给鼓垫接线 1、固定电缆: 使用热胶将带状电缆连接到垫子上。 2、焊接鼓垫: 通过焊接将鼓垫连接到多频段带状电缆。 第 7 步:制作 Arduino 扩展板 1
    发表于 11-25 12:00

    基于Arduino的串口通信项目

    基于Arduino的串口通信项目涉及多个方面,包括硬件连接、软件编程、串口参数配置等。 一、硬件准备 Arduino开发板 :确保你有一块Arduino开发板,如Arduino Uno
    的头像 发表于 11-22 09:24 499次阅读

    基于XIAO SAMD21开发板的数字键盘制作方案

    今天小编给大家带来了来自印度的Arnov Sharma 制作的基于XIAO SAMD21的数字键盘项目,该项目可以通过按键在电脑和OLED的屏幕上输入0-9的阿拉伯数字,可以当作一个数字副键盘来使用。
    的头像 发表于 09-06 10:02 336次阅读
    基于XIAO SAMD21开发板的数字<b class='flag-5'>键盘</b><b class='flag-5'>制作</b>方案

    开源项目!基于 Arduino DIY 漂亮的宏机械键盘

    。 我利用黑色 PLA 材料,通过 3D 打印技术精心制作键盘的外壳及其盖子。外壳上巧妙设置了一个网格,用于安装按键。内部空间则用于放置 Arduino 主板及连接线。此外,我特意在外壳背面预留了一个孔
    发表于 08-19 17:02

    磁轴键盘霍尔开关MST-MH481霍尔磁轴机械键盘

    磁轴键盘是一种利用霍尔效应进行触发的键盘,与传统的机械键盘有所不同。磁轴键盘的轴体采用了霍尔效应技术,可以更快速、更稳定地触发按键,同时也具有更高的耐用性和更长的使用寿命。它能够为每个
    的头像 发表于 06-22 08:07 676次阅读
    磁轴<b class='flag-5'>键盘</b>霍尔开关MST-MH481霍尔磁轴机械<b class='flag-5'>键盘</b>

    键盘的矩阵规格设计图

    键盘的矩阵规格设计图
    发表于 06-19 14:29 0次下载

    什么是磁轴键盘?电竞磁轴键盘高精度线性霍尔传感器方案简析

    磁轴键盘是一种新型的电脑键盘,相较于传统的机械键盘而言,它采用了磁性材料和磁场进行操作,具有更轻柔、噪音更小、寿命更长的优点
    的头像 发表于 04-18 14:12 5984次阅读
    什么是磁轴<b class='flag-5'>键盘</b>?电竞磁轴<b class='flag-5'>键盘</b>高精度线性霍尔传感器方案简析

    如何用Arduino制作一个简易自动喂鱼器

    如果你家里养有鱼,并想找到一种自动化喂食的方法,这个项目可能会对你有所启发。 在这个教程中,作者将展示如何制作自己的基于Arduino的自动喂鱼器,让小鱼不在饿肚子。 自动喂鱼器的工作原理非常
    发表于 03-28 11:25

    如何制作自己的Arduino电容计

    在这个项目中,您将学习如何制作自己的Arduino电容计(测量电容器的值,范围从pF到1000的uF)。一般来说,电子爱好者喜欢设计自己的小工具而不是购买。在这个项目中,我们使用两种电容测量方法,即
    的头像 发表于 02-25 15:10 1560次阅读
    如何<b class='flag-5'>制作</b>自己的<b class='flag-5'>Arduino</b>电容计

    如何使用Arduino制作智能垃圾箱

    在这个项目中,我将向您展示如何使用Arduino制作智能垃圾箱,当您带着垃圾接近时,垃圾箱的盖子会自动打开。
    的头像 发表于 02-11 12:22 3018次阅读
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b>智能垃圾箱

    使用Arduino Nano制作一个4×4×4 LED立方体

    在这个项目中,我们将使用 Arduino Nano 制作一个很酷的 4×4×4 LED立方体。LED 立方体,也称为 LED矩阵,可以照亮您的房间、学习空间或创客区域,使其看起来非常酷炫。此外,它非常容易构建,并帮助您在电子和编码方面发挥创意。
    的头像 发表于 02-11 12:07 3201次阅读
    使用<b class='flag-5'>Arduino</b> Nano<b class='flag-5'>制作</b>一个4×4×4 LED立方体

    薄膜键盘领域设计#键盘

    薄膜键盘
    泰达克电子材料
    发布于 :2024年01月09日 11:30:41

    Arduino制作循迹小车教程

    Arduino制作循迹小车完全教程
    发表于 01-05 11:09 7次下载

    单片机如何读取键盘数据

    单片机作为一种嵌入式系统,往往需要与外部设备进行交互。其中之一的重要环节就是通过键盘读取输入的数据。在本文中,我们将详细介绍如何使用单片机读取键盘数据,包括键盘的原理、扫描方式、连接方式以及编程实现
    的头像 发表于 01-04 17:09 1796次阅读