电子

电子 · 圈子

1421 位酷友已加入

电子圈子中包含常用的源代码、电路图、学习教程、产品样本、技术报告等干货资料,加入圈子可以上传、下载资料,也可以使用提问来寻求资料或分享你认为有价值的站外链接~

关注推荐最新

热门标签

电子

电子·圈子   首发

张宇哲 更新了
资源

【实验报告】ARM 基础编程实验

学习使用 Keil 开发工具。 使用 ARM 汇编语言,编程实现 1+2+……+N 累加运算功能。 使用 C 调用汇编函数,实现字符串拷贝功能。 使用汇编调用 C 函数,实现求和运算功能。

资源

可用于激活设备的可编程定时器 part3

需要的元件 Arduino UNO Arduino 5V继电器模块 4 x 4 键盘 DS1307模块 LCD1602显示屏 杜邦线 面包板 主动蜂鸣器 LED5mm Arduino IDE 原理及流程 在本例程中,你将学习开发计时器和可编程负载触发器的所有必要功能。 介绍 在第三部分中,我们执行几个步骤来创建几个函数,如ReadKeyPad,AdjustHour和ActivationHour。 通过这些功能,我们创建了项目的第一部分。可以在以下链接中访问第二部分:访问文章的第二部分。 现在,我们实现了该项目的新功能。 开发项目 通过到目前为止已实现的功能,在第三部分中,我们将实现新功能,以提高项目质量。 此后,将介绍新功能: 实现DeactivationHour()函数; 实施逻辑系统以比较时钟以激活和停用继电器中连接的设备; 进行信号显示以指示按键。 基于这些新功能,实现了如图2所示的新电路。 电路的电子原理图。 首先,我们将介绍新功能DeactivateHour()。此功能等同于ActivateHour功能。 唯一的区别是EEPROM的位置用于节省小时和分钟来停用设备。 现在,我们将看到DeactivateHour函数。 实现DeactivateHour Function() 通过此代码,你可以看到ActivateHour函数的代码是相等的。第二部分介绍了所有逻辑编程-访问第二部分。 如前所述,唯一的区别是用于节省小时和分钟的EEPROM位置。 在下图中执行该功能时,此后将在屏幕上显示。 调整关机时间。 在此屏幕中,用户将配置停用设备的时间。用户输入小时后,系统将进行验证,如项目第二部分所示。 之后,系统将返回空循环功能并执行块代码。 当73值保存在MEMORY位置时,存储在EEPROM位置1、2、3和4中的值保存在两个向量中:TimeActiveDevice和TimeDeactiveDevice。 这两个向量用于存储计时器,以激活和停用继电器中连接的设备。 因此,此后,系统将在LCD中显示小时和日期。并且,此后,将把当前的小时和分钟与向量的值进行比较。 这样,继电器将基于一天中的小时被激活或禁用。 最后,我们将实现蜂鸣器,以指示用户按下了某个键。 蜂鸣器指示按键被按下 该蜂鸣器是非常重要的指示键被用户按下。通常,用户不确定是否输入了该值。这样,蜂鸣器将指示该键已被按下。 在for循环内,蜂鸣器被激活400毫秒,以向用户发出信号。 现在,你将看到根据时间激活的继电器的工作情况。 继电器激活 为了执行继电器激活的测试,将继电器编程为在上午10:46激活。从下图中可以看到,继电器已停用。 此状态由绿色LED表示。 现在,如下图,继电器被激活,绿色LED被激活以表示继电器的激活。 最后,我们已经能够实现主要功能,以便在预定时间执行继电器的激活。 现在,你可以使用整个项目将其应用于需要在预定时间触发的设备。 最后 所有需要的文件在下载区均可找到。 via:https://www.hackster.io/167342/programmable-timer-for-activation-of-devices-part-iii-4f14c4

资源

可用于激活设备的可编程定时器 part2

需要的元件 Arduino UNO Arduino 5V继电器模块 DS1307 RTC模块 LCD1602显示屏 杜邦线 面包板 10kohm旋转电位器 LED5mm Arduino IDE 原理及流程 介绍 在本文的第一部分,我们介绍如何创建实现该项目的所有过程。你可以访问链接的第一部分 现在,通过第二部分,我们将介绍创建函数的所有过程,以对时钟和日期进行编程,并对设备激活的小时进行编程。 因此,通过这些功能,我们将学习实时时钟(RTC)DS1307的几种应用和使用原理。 项目拟议职能 根据第一部分的解释,该项目的目的是在用户编程的时间内激活和停用设备。 因此,基于该问题,需要使用CHIP实时时钟。CHIP用于计数7个变量:秒,分钟,小时,星期几,月份的日期,月份和年份。因此,为此,需要实现一个小时系统供用户调整小时,日期,激活和停用时间。 为此,将根据第I部分中的图表实现一些功能来解决此问题。因此,我们将开发这些功能来配置实时时钟的实际时间和日期以及激活设备的小时数连接在继电器上。 此后将展示下图中的原理图电路和为该项目的第二部分开发的代码。 第一部分项目的电子示意图。 项目开发 首先,我们将通过变量创建和设备初始化来介绍配置过程。 因此,在输入void setup()之前,包括所有库,变量和函数原型。因此,请参见已实现的三个功能:ReadKeypad,AdjustHour和ActivationHour。 此后,下面指定每个功能: ReadKeyPad():执行键盘按钮的读取,并通过此键盘使用数字及其字母。“ A”字母用于调整小时,“ C”用于清除小时信息,“ D”用作完成参数配置的键。 AdjustTime():负责调整DS1307的内部日期和小时; ActivationHour():用于调整激活继电器中连接的设备的小时数。 在原型声明之后,立即初始化了设备RTC DS1307和LCD 16x2以及Arduino的所有引脚。 现在,我们将通过函数void loop()学习如何对该系统进行逻辑编程。 项目的主要逻辑 首先,当系统处于循环功能的开始时,执行初始化过程的验证。此验证由第一个条件表示,如下所示。 这样,系统会验证这是用户首次进入系统。如果EEPROM(位置100)的读取编号不同于73,则需要配置系统的时间和日期。 因此,配置时间和日期后,系统会将73值写入EEPROM。 该数字用于向用户表示已经配置了时间和日期。 此后,获取日期和时间的所有7个参数并将其存储在DataTime向量中。 采集后,秒的值存储在变量SegAtual中。此变量用于存储秒的值。这些命令如下所示。 现在,将执行条件来知道用户是否按下了按键“ A”来调整时钟时间和设备激活的小时数。 按键“ A”由10表示,这是按下“ A”时函数的返回值,如下所示。 最后,小时和数据将显示在显示屏LCD上。为了表示小时和日期,在以下条件下进行了实施。 因此,在这种情况下,日期和小时将每秒显示在LCD上,如下图所示。 LCD中显示的小时和日期。 现在,将说明调整时间和调整小时的功能,以激活继电器上连接的设备。 调整设备时钟和激活时间的功能 首先,这两个功能非常相似,但你将看到每个功能的工作原理,我们将分析AdjustTime()函数。 AdjustTime功能 现在,通过我们的函数,我们将看到该函数的某些部分在整个函数中自己重复,并且你将看到该函数分为两部分: 插入时钟的小时和分钟, 插入月份,月份和年份的数据; 首先,我们创建函数中使用的所有变量。 此后,DS1307的功能是获取数据并将其存储在DadosTempo中,然后将值分割并打印在字符串“ tempo”和“ data”中。这两个字符串用于在LCD后面打印其信息。 向量“ DadosTempo”的数据被分离并存储在向量时间中。向量“时间”将用于接收副本并操纵“ DadosTempo”向量的数据。 之后,times [4]和times [5]将被分隔为数十位和几位的数字,以便在时间设置中进行操作。 此后,系统将显示消息“ Adjust Hour:”,并根据下面显示的代码在第二行显示“ tempo”字符串的内容。 下图中显示了LCD显示屏中显示的消息。 调整小时信息。 一旦在LCD上打印了该消息,系统就会开始读取过程,以验证用户按下了什么键。此过程由以下代码表示。 首先,系统读取键盘并将值存储在变量号中,此后,请验证以下所示的条件。 根据情况,它验证了三个要点: 验证如果一个数是被按下的键是0和9之间; 验证变量“ controle”是否等于0。此变量用于允许条件**仅一次为真,并且仅读取一次。 验证,如果变量“CONT”小于4。该变量被用来允许用户能够仅输入4位数*:两位数字的小时和两位数字分钟。* 这样,当条件为真时,将数字存储在数字向量中并打印在LCD上。此后,“ PosCursor”变量将递增以指向单位放置位置。 如果cont变量等于2或cont等于4,则由于信号“:”,光标位置再次增加。这样,光标将指向分钟的小数位。 现在,如果上述条件不成立,将验证以下条件。如果用户按下了任何人的按键,函数“ LerTeclado()”将返回数字16,表示没有按键被按下。 因此,如果此条件为真,则系统将在变量“ controle”中将属性归零。在接收用户按下的0到9之间的数字的情况下,此变量用于控制访问。 最后,我们要检查最后一个条件。如果按下“ C”键,则返回值为13。 因此,通过此键,系统将清除小时值,以允许用户再次输入新值。如下图所示。 LCD的清除屏幕。 当用户输入错误的值并需要输入新值时,这非常有用,如下图所示。 插入错误的小时数。 现在,查看“ do while”循环的条件。系统在do-while中运行,直到用户按下“ D”键(“完成”)为止,该键由值13表示。 此键用于通知系统用户已插入值。 此后,用户输入的数字将在一个小时和几十个小时内被安装,如以下代码所示。 最后,我们有最后一个条件。最后一个条件用于验证用户输入的小时和分钟。 如果用户输入的值错误,则布尔变量Validate将收到1。该值将向系统发出信号,表明某些值是错误的,并显示“ Invalid Hour”消息,如下图所示。 无效小时消息。 因此,系统将需要接收新的正确值。但是,如果值正确,则系统不会在这种情况下进入并通过功能的第二部分:接收日期数据。 设定日期的过程 以相同的形式,在配置时钟数据时,我们将设置日期。这个过程是相似的。它具有接收数字的过程,数字错误的情况下的擦除功能以及用户输入的数字的验证过程。 最后,在配置完所有参数之后,有一个发送实时时钟芯片的参数的功能,如下所示。 通过此功能,可以为RTC配置小时和日期参数。此后,系统返回空循环功能。 返回空循环功能后,将立即清除LCD屏幕并调用ActiveHour功能。 功能HourActivate与设置RTC时钟的功能相似。唯一的区别是小时和分钟的值存储在EEPROM存储器中,如下所示。 这些值存储在EEPROM存储器中,以便在初始化系统开始时读取。因此,通过这些值,可以与时钟进行比较并在编程的小时内启动设备。 在完全执行功能HourActivation之后,系统将返回空循环功能并显示日期和小时,如本文开头所示。 现在,将在下一篇文章-第三部分中解释新功能。 接下来要实现的功能 通过到目前为止已实现的功能,在第三部分中,我们将实现新功能,以提高工作质量。此后将介绍新功能: 实现DeactivationHour()函数; 实施逻辑系统以比较时钟以激活和停用继电器中连接的设备; 进行信号显示以指示按键。 最后 所有需要的文件在下载区均可找到。 via:https://www.hackster.io/166068/programmable-timer-for-activation-of-devices-part-ii-802a95

资源

使用Arduino构建指南针

需要的元件 Arduino UNO HM5883L磁传感器 LCD1602显示屏 杜邦线 面包板 Arduino IDE 原理及流程 介绍 有人用机器人技术开发项目,而最大的问题之一是确定他们的导航方向。换句话说,机器人在环境中移动,但是系统不知道其确切方向,这暗示了其需要导航过程。 作为解决方案,许多人采用GPS设备来协助确定方向。但是,由于其商业财务价值,该项目变得更加昂贵,并且无法使用它仅确定导航方向。 在这种情况下,理想的是使用磁力计传感器。它具有从项目的低财务投资中确定指导方向的能力。这样,你将能够确定机器人的导航方向。 在本文中,你将学习如何使用Arduino构建自己的数字指南针。通过它,你将能够了解HMC5883L传感器的完整操作,并检测其方向。 此外,你还将学习如何构建自己的电子罗盘并与Arduino一起使用。下图显示了数字指南针的印刷电路板。 数字罗盘的印刷电路板。 因此,在本文结尾,你将学到以下几点: 用Arduino创建数字罗盘; HMC5883L传感器的操作; 用Arduino创建Compass印刷电路板; 使用Arduino赢得Compass印刷电路板文件。 项目发展 该项目将分为三个重要阶段:指南针印刷电路板的构造,带有HMC5883L传感器的Arduino电路以及Arduino的代码,以控制印刷电路板上的数字指南针。 首先,我们将介绍数字罗盘电路的结构。接下来,我们将介绍Arduino和HMC5883L磁力计传感器的电路结构。 最后,我们将提供一个基本程序来控制印刷电路板上的数字罗盘。 1.数字指南针印刷电路板的开发 要开始开发数字罗盘的印刷电路板,必须开发具有8个LED和9针公连接器的电路。 每个LED代表罗盘玫瑰的特定方向。该电路如下图所示。 数字罗盘的电子原理图。 电子原理图构建完成后,便开发了电子板。PCB设计如下图所示。 数字罗盘的印刷电路板。 完成电子板项目的构建后,我们可以在下图看到其结构。 罗盘PCB 现在,我将向你展示如何使用Arduino和HMC5883L传感器构建电路。通过该电路,我们将能够检测机器人的方向,然后激活罗盘玫瑰的特定LED 。 2.使用HMC5883L传感器进行Arduino的电路开发 在下面的电路中,我们介绍了与HMC5883L传感器连接的Arduino Nano 。 所述HMC5883L传感器负责从北检测方向南,然后阿尔杜伊诺将接收和处理这些信息。 从那里,Arduino将触发D2到D9的输出之一。这些输出将连接到步骤1中开发的板。 因此,每个LED将代表一个特定的方向。电子原理图如下图所示。 Arduino和传感器HMC5883L的电子原理图。 现在,我们将介绍上述项目的编程。 3. Arduino编程项目 首先,我们介绍项目编程的完整逻辑。 现在,我们将开始讨论代码的每个部分。 首先,我们声明库,即“ bussola”对象,然后声明程序变量。代码区域如下所示。 之后,我们进入功能void setup。在其中,我们初始化串行和I2C通信,然后初始化磁力计传感器。 最后,我们将数字引脚2到9设置为输出。这些引脚将用于驱动印刷电路板上的LED。该部分代码如下所示。 在完全执行void setup函数之后,我们将进入void循环函数。在此功能中,将执行项目的主要逻辑。 首先,我们读取传感器的x,y和z轴,然后执行到角度计算的转换。 随后,我们将角度值转换为0到360度之间的值范围。调整计算在以下条件下给出。 因此,根据获得的角度的计算,我们将在以下条件下应用该值。每个角度值代表一个不同的方向。 这样,根据当前角度,它将触发数字罗盘上的LED 。 因此,通过该系统,可以设计自己的机器人引导系统。 PCB文件已给出。 最后 所有需要的文件在下载区均可找到。 via:https://www.hackster.io/322974/the-3-steps-for-you-to-build-your-compass-with-arduino-56ebc6

资源

可用于激活设备的可编程定时器 part1

需要的元件 Arduino UNO Arduino 5V继电器模块 DS1307模块 LCD1602显示屏 杜邦线 面包板 LED5mm Arduino IDE 原理及流程 在本例程中,您将学习开发计时器和可编程负载触发器的所有必要功能。 介绍 在许多自动化领域,最需要的是自动执行过程,而无需人工干预。 工业和住宅自动化的多个过程基于一个变量工作:时间。即,操作员将设备参数化以在特定时间执行特定过程,并且当时钟在该时间时,系统开始执行活动。 该项目 对于此项目,我们将开发一个具有16x2 LCD显示屏的人机界面系统,以便用户可以与系统进行通信并输入在特定时间触发负载所需的信息。 通过这种方式,我将向您展示如何构建系统及其功能的模型。 Processo构建您的计时器时钟项目。 根据图1,将对Arduino UNO进行编程以处理整个项目的信息。在将要连接到Arduino板的所用组件中,要包括: 按钮; 16x2 LCD ; 实时时钟; 继电器; 每个设备在此项目中都将具有其适当的功能。 这些按钮将用于设置触发负载所需的时间。 该LCD将被用于发送所述计时器信息提供给用户,并显示由系统中的用户输入的参数; 该实时时钟将被用于计数小时的时间,交流与信息的Arduino UNO ; 该继电器将用于接收Arduino命令并触发负载,在本例中,该负载将使用灯泡。 在接下来的几篇文章中,您将逐步了解如何开发设备的所有电子设计和编程,以根据用户的预设时间触发负载。 计时器时钟编程过程的流程图 然后,基于项目构建过程,对整个流程图进行建模非常重要,以利于系统代码的实现。 在下图中,我展示了建模项目,以帮助理解每个步骤以及在代码执行过程中将发生的动作。 创建所有项目以根据时间控制费用的流程图。 该项目很简单。在启动初始循环之后,该条件将检查是第一次启动计算机还是用户进行了重置,因此必须设置日期和时间。 如果是,系统将提示您更新新的日期和时间,然后提示您设置实际时间和应保持负载的时间。 设置完成后,系统将在16 x 2 LCD显示屏上显示更新的时间和日期。 在该系统中,实现了两个功能: 更新系统的日期和时间; 重置所有日期,时间和时间信息以及负载触发。 在命令“显示时间”之后的第一个决策中,已验证。并且,如果条件(检查是否按下调整时间按钮)为真,则将调用调整时间功能,以便用户正确配置日期和小时。 在第二种情况下(检查是否已按下重置时间按钮),我们将检查是否已按下重置按钮。如果为true,则将调用该函数,并清除触发加载的日期,时间和小时,并设置新的触发加载的日期,时间和小时。 此后,还有另外两个条件可以检查时间是否等于选择触发负载的时间。如果为真,则将触发负载(第三个条件)。 并且仅当时间等于用户设置的时间(第四种条件)时才禁用。 此后,代码返回循环的开始。 最后 所有需要的文件在下载区均可找到。 via:https://www.hackster.io/138114/programmable-timer-for-activation-of-devices-part-i-7ae0e4

电子

电子·圈子   首发

蝈蝈 发布了
  • 1
  • 102
  • 103
  • 104
  • 120
前往