ATtiny85微控制器是一种非常流行的8位RISC微控制器。它已经成为专业人士和开发人员的首选,因为它在如此小的尺寸上具有令人难以置信的特性。顾名思义,它是一款微型8针(PDIP)微控制器,具有几乎所有微控制器所需的功能,如内置闪存、EEPROM、SRAM等,…
使用Arduino IDE的Atmega162 UAR串行通信
我开始做一个项目,对Atmega162进行编程,以达到预期的输出。我开始使用Atmel studio ide编写代码,但我发现很难与Atmel studio ide一起工作。Atmel工作室很慢,而且发现bug等也非常困难。所以我……
用ESC控制无刷直流电动机
与有刷电机相比,无刷电机具有更令人满意的结果。它们之间的基本区别是,在一个无刷电机,转子本身包含永磁体和电磁铁移动到定子,这是完全相反的看到在一个有刷电机。它更精确,也可以把电机的速度纳入方程。这使得无刷电机更有效率。没有火花,更少的电子噪音。没有刷子可以磨损。定子上有电磁铁,很容易冷却。为了更精确的控制,你可以在定子上安装很多电磁铁。一个无刷电机的唯一缺点是它的较高的初始成本,但你可以经常通过更高的效率在电机的生命周期内收回成本。
采用AVR ATMega16的LED追逐器
您可能见过许多不同的LED chaser项目。使用IC555和数字计数器芯片可以构建简单的LED追逐器。许多LED追逐器都是使用微型控制器制造的。基于单片机的LED追逐器具有多种不同的追逐效果。使用微控制器编程可以产生令人敬畏的LED追踪效果。可能有8个、10个、16个或更多的LED与微控制器连接,它将打开/关闭LED或改变其亮度或使其闪烁,以创造美妙的效果。
采用ATmega16的卫星天线角度控制器
我们需要了解的第一件事是它的伺服机制是什么?伺服机构意味着产生误差输出,作为输出反馈和控制输入之间的差值,并减少该误差,直到其变为零–这意味着当系统达到期望状态时,系统产生期望输出。
使用AVR内部EEPROM的电子投票机
基于微控制器的投票机使得投票和计票过程比以前更加容易。以前,选票是用纸标记的,然后安全地保存在盒子里,并在一个安全的房间里保存数天。将选票分开并手动计数的过程可能需要很多天。但在找到电子投票机后,投票可以不用纸张进行标记,这使得投票过程更加环保。此外,它使计数过程更快,结果可以在相对较短的时间内公布。电子投票机(EVM)内部应有一个控制器,用于控制投票过程,并应有存储投票详情的存储介质。应该有一个芭蕾舞单元,其使用方式应确保前来投票的人只能投一票。
LCD滚动显示模块-(第30/46部分)
微控制器是一种设备,它有一个内置的处理器,周围有几个专用的硬件模块。一旦微控制器初始化它们,它们就开始独立运行。如果是ADC,它将自行进行采样和数模转换,并将转换后的数据保存在其缓冲区中,以便微控制器可以重新启动这种实现的优点是微控制器在这段时间内可以自由执行其他任务,从而提高整体效率。微控制器内的硬件模块或外围设备就是这种情况,它提高了内置处理器的处理效率。效率可以提高如果连接到微控制器的外部硬件也可以在不依赖微控制器的情况下自行完成更多任务,则情况会更糟。
如何用C语言编写AVR的简单引导程序-(第35/46部分)
引导加载程序是一个在微控制器上电或复位时执行的代码。它基本上设置了应用程序代码执行的环境。它是引导加载程序,设置硬件,从任何存储介质或通过外部通信接收应用程序代码并让应用程序执行。因此,Boot-Loader必须执行以下基本功能:初始化控制器外围设备、初始化单板设备、允许用户从可用的应用程序中选择要加载的选项、加载选定的应用程序、让应用程序代码执行。除了上面提到的功能,一些引导加载器可以执行许多其他功能,还有一些引导加载器不执行所有这些功能,比如提供选择所需应用程序的选项等。与像PC这样的高级设备中的引导加载程序相比,微控制器中的引导加载程序代码实际上非常小和简单。在大多数的微控制器中,引导加载程序的功能仅限于为微控制器设置初始时钟和其他设置,从串行端口加载应用程序二进制等。
如何使用SPM从EEPROM加载应用程序-(第34/46部分)
在任何微控制器中,引导加载程序都是在应用程序代码执行之前执行的第一个代码。引导加载程序的主要功能是将应用程序代码加载到微控制器的闪存中并执行它。在AVR微控制器中,自编程模式(SPM)帮助引导加载程序从存储应用程序二进制文件的位置加载特定应用程序。引导加载程序可以从其他存储芯片、SD卡或通过微控制器的串行端口接收代码二进制文件(如果是串行编程)。然后,在SPM的帮助下,微控制器将二进制代码写入应用程序闪存部分。在该特定项目中,使用SPM的引导加载程序代码的操作通过使用代码二进制重新写入闪存来演示,该二进制代码已闪存到ATMEGA16的内置EEPROM中。本项目使用的硬件包括ATMEGA16作为微控制器,USBASP作为编程器,使用的软件是AVR STUDIO4作为IDE,AVR-BURNO-MAT作为燃烧器软件。
如何使用SPM进行闪存到闪存编程-(第33/46部分)
自编程模式(SPM)是一种使微控制器能够编程自己的闪存的功能。使用SPM,微控制器可以使用SPM代码自行编程。SPM通常与微控制器引导加载程序代码一起使用,这些代码有助于对微控制器进行串行编程。在AVR微控制器中,SPM仅适用于闪存BLS中运行的代码。在SPM的帮助下,BLS中的代码可以完全或部分重写应用程序闪存。它甚至可以在BLS部分重写自己的代码。SPM是引导加载程序代码的关键因素,因为引导加载程序的主要功能是将应用程序代码加载到应用程序闪存部分。在串行编程的情况下,引导加载程序可以从其他内存芯片、SD卡或通过微控制器的串行端口接收二进制代码。
如何从引导加载程序部分初始化外围设备-(第32/46部分)
在几乎所有的微控制器代码中,外围初始化功能(如uart初始化、spi初始化)是与不同的应用程序代码一起编写的。这些初始化函数实际上是原始初始化函数的重复。外部硬件初始化也是如此,如LCD初始化、GSM modem初始化等。假设在这种情况下,所需的应用程序代码存储在内存芯片或SD存储卡中,这样就可以在应用程序之间进行选择。如果所有的应用程序代码具有相同的外设和外部硬件初始化功能,这只会增加代码的大小和存储代码所需的内存大小。bootloader加载如此大的应用程序将花费太多的时间,而且由于代码大小过大,会出现flash内存不足的问题。这些问题可以通过在BLS本身运行的代码中对外设和外部硬件进行初始化来解决。
如何在引导加载程序中编程-(第31/46部分)
在AVR单片机中,闪存分为两个部分,即应用程序部分和引导加载程序部分。代码可以被编程到应用程序节或引导加载程序节(BLS)中。在应用程序部分编写的代码可以正常运行,并用于常见的应用程序,而在BLS中运行的代码具有一些特殊功能。在BLS部分运行的代码可以执行自编程模式(SPM)指令,而在应用程序部分运行的代码会阻止这些指令。使用SPM指令,来自BLS的代码可以重写应用程序部分中的代码或BLS本身中的代码。BLS部分通常用于存储微控制器的引导加载程序代码。引导加载器代码可用于初始化在单片机外围设备,连接到单片机初始化设备,选择应用程序加载并执行从存储介质,负载所选应用程序到应用程序部分,跳转到应用程序部分和执行应用程序。
SD卡与AVR微控制器的接口(第38/46部分)
这个项目解释了如何将SD卡与AVR微控制器接口。在本项目中,使用了ATMEGA16微控制器。微控制器在5V电源上运行,内置晶体频率为8MHz。在这个特定的项目中使用了来自超越的2GB SDSC卡,但该代码将适用于大多数SD卡。SD卡是用FAT32格式化的。本项目的最终目标是从SD卡的FAT32文件系统读取文件。SD卡在接口之前已格式化为FAT32。FAT32的通用代码被写入SD卡接口。本项目详细介绍了FAT32文件系统以及如何从这些文件系统访问文件。本项目详细介绍了SD卡与AVR微控制器的接口和电路的工作原理。阅读更多内容,了解该项目的工作原理,并亲自动手!!!
如何将GPS与AVR微控制器(ATmega16)连接(第43/46部分)
GPS调制解调器是一种接收卫星信号并提供纬度、经度、高度、时间等信息的设备。GPS导航器在移动设备中用于跟踪路线图更为著名。GPS调制解调器有一个天线,接收卫星信号并将其传输到调制解调器。调制解调器依次将数据转换为有用的信息,并以串行RS232逻辑电平格式发送输出。有关纬度、经度等的信息通过标识符字符串连续发送。本文介绍如何将GPS调制解调器与ATmega16接口,并从GPGGA字符串中提取位置(纬度和经度)并将其显示在LCD上。电路图中显示了GPS调制解调器与AVR微控制器(ATmega 16)的连接。max 232的接地引脚和GPS调制解调器的串行o/p共用。MAX232的引脚2连接到GPS调制解调器的引脚3,MAX232的引脚3连接到调制解调器的引脚2。这种类型的连接称为串行交叉电缆。
如何配置AVR微控制器(ATmega16)的看门狗定时器(第15/46部分)
一些高端应用需要微控制器进行多个或关键计算。这可能导致控制器进入错误或无限循环的情况。因此,系统挂起或崩溃。克服这些情况的解决方案是在出现这种情况时自动重置系统出现问题。看门狗定时器是硬件或软件生成的定时器中断,在上述情况下重新启动/重置系统。看门狗定时器也用于有意要求在无任何物理干扰的情况下重置系统的情况。AVR微控制器具有内置看门狗定时器。本文说明ATmega16中看门狗定时器的工作原理。看门狗定时器是一种特殊定时器,可在代码的任何部分启用,启用时可确保在预定义的时间范围内执行一定数量的指令。可使用看门狗定时器的寄存器配置/设置此时间范围或时间延迟。
如何将串行ADC0831与AVR微控制器(ATmega16)接口(第27/46部分)
ADC是一种电子设备,它将模拟信号转换为与电压幅值成比例的数字。ADClike ADC0804、ADC0809等提供8位数字输出。控制器设备需要8个引脚来接收8位数据(有关ADC的更多详细信息,请参阅使用AVR的内置ADC).某些应用需要更高分辨率的ADC(10位或更高的数字数据输出)对于数据准确性。使用并行ADC是此类应用的一个选项。但是,使用并行ADC将增加硬件的大小,因为10位并行ADC将有10条输出线。此外,您可能必须使用具有更多管脚的控制器。另一个选项是使用串行ADC,它需要更少的管脚。因为a是串行传输的,与并行ADC相比,串行ADC的数据传输速率较低。在数据传输速度不是关键点的应用中,串行ADC0831可以作为非常好的替代品。本文探讨串行ADC0831与ATmega16的接口。
如何从ATmega16的特定引脚获取输入-(第5/46部分)
为了理解人类的需求,系统必须能够接受用户的输入。可用于系统输入的设备有键盘、触摸屏幕等。在LED闪烁时,单片机驱动LED或用嵌入式语言将单片机设置为o/p,本文给出了在单片机的特定引脚上获取用户输入的简要信息。为了从AVR微控制器的任何引脚上的外部源获取输入,引脚需要配置为输入引脚。这个配置通知控制器相应的引脚被用来接收输入。阅读更多来了解电路是如何构造的,以及IC是如何被编程以期望的方式工作的。
如何在AVR ATmega32中使用I2C/TWI(双线接口)(第36/46部分)
本文探讨了两个ATmega32控制器之间的TWI接口。建议读者在进一步阅读之前,先通过ATmega32的TWI Communication和TWI寄存器[[wysiwyg_imageupload::]]。通常模式1、3和模式2、4是一起使用的。本文通过实验说明了这四种模式的使用方法。使用TWI接口建立两台ATmega32之间的通信。首先,主服务器开始发送数据,然后从服务器将接收到的数据发送给主服务器。当Master接收到补数据时,它将原始数据向左移动。这个发送和接收的过程还在继续。当数据值达到0x80时,整个过程重复进行。开始时,原始数据的值是0x01。 The received value is displayed on PORTB at both the ends.
如何连接伺服电机与AVR单片机(ATmega16)-(第21/46部分)
伺服电机在自动化、控制和机器人领域有着巨大的应用。伺服电机以其精确的控制和基于伺服机构原理的工作[[wysiwyg_imageupload::]]而闻名。伺服电机可以使用PWM以精确的角度运行。PWM(脉宽调制)是伺服电机背后的基本工作原理(有关PWM的更多详细信息,请参阅相位校正PWM模式)。本文探讨了伺服电机与ATmega16的接口。还要了解更多有关伺服机构的信息,请参阅8051与伺服电机的接口。市场上有不同类型的伺服装置。本文将其范围限定为与一个常见的伺服系统接口,该伺服系统被业余爱好者广泛使用于ATmega16。这种伺服由三根导线组成:正极电源、接地和控制信号。与其他电机不同,伺服电机不需要任何驱动器。当PWM信号应用于其控制销时,轴根据脉冲的占空比旋转到特定角度。
如何将键盘与AVR微控制器(ATmega16)连接(第11/46部分)
键盘是应用最广泛的输入设备,为单片机提供外界的输入。键盘使应用程序更具用户交互性。将键盘与ATmega16接口的概念类似于将它与任何其他微控制器接口。可以参考8051接口键盘的文章来详细描述这里所使用的方法。本文介绍了4×3键盘与AVR单片机(ATmega16)的接口以及在LCD上显示输出的方法。文中给出了键盘接口的算法和详细说明。将键盘与AVR接口的简单步骤写在下面:2.配置行针或列针。将所有输出引脚调到低,输入引脚调到高。持续监控键盘连接的端口值。