当我们的项目需要远程访问时,GSM模块就会很有用。通过这些模块可以完成我们普通手机可以执行的所有操作,例如拨打/接听电话、发送/接收短信、使用GPRS连接到互联网等。您还可以将普通麦克风和扬声器连接到此模块,实现与您的手机进行通话。如果将其与微控制器连接,这将为许多创意项目打开大门。因此,在本篇文章中,我们将学习如何将GSM模块(SIM900A)与AVR微控制器ATmega16进行连接,并演示如何使用GSM模块发送和接收短信。
所需的材料
● ATmega16控制器
● GSM模块(SIM900)
● 液晶显示器
● 按键
● 10k电阻,电位器
● 连接导线
● 12V适配器
● USBASP programmer
● 10针FRC电缆
使用的软件
我们将使用CodeVisionAVR软件编写代码,使用SinaProg软件和USBASP programmer将代码上传到Atmega16。
您可以从下面的链接下载这些软件:
● CodeVisionAVR:http://www.hpinfotech.ro/cvavr_download.html
● SinaProg:http://www.ablab.in/sinaprog-hex ... ler/#inline_content
在开始设计原理图和编写代码之前,我们将先了解GSM模块及其工作原理。
GSM模块
通过使用AT命令模式,即使没有连接任何微控制器,也可以使用GSM模块。如上图所示,GSM模块带有一个USART适配器,可通过MAX232模块直接连接到计算机,或者Tx和Rx引脚可用于将其连接到微控制器。您还可以注意到MIC +、MIC-、SP +、SP-等其他引脚,可以连接麦克风或扬声器。该模块可通过在普通DC插座插入12V适配器的方式供电。
将SIM卡插入模块的插槽并打开电源,您应该注意到电源LED指示灯亮。现在等待一分钟左右,您应该看到红色LED每3秒闪烁一次。这意味着您的模块能够与您的SIM卡建立连接。现在,您可以继续将模块与电话或任何微控制器连接。
使用AT命令与GSM模块通信
正如您猜到的那样,GSM模块可以通过串行通信进行通信,并且只能理解一种语言,即“AT命令”。无论您想告诉或询问GSM模块,它都应该只通过AT命令。例如,如果您想知道您的模块是否处于活动状态。你应该询问(发送)像“AT”这样的命令,你的模块将回复“OK”。
这些AT命令在其数据手册中有详细说明,可以在其官方数据手册中找到。这是一份271页的数据手册,您可能需要几天的时间来阅读它们。所以我给出了一些最重要的AT命令,以便您尽快了解这些指令。
本篇文章中,我们将使用AT + CMGF和AT + CMGS命令发送短信。
如果您同时使用了Arduino和GSM模块,在接收消息时可以使用+ CMT:命令查看串行监视器上的手机号码和短信。短信出现在第二行,如图所示。
我们将扫描此+ CMT:命令以检查是否有短信。
ATMega16与GSM模块的连接电路图
1. GSM模块的Tx和Rx分别连接到Atmega16的Rx(Pin14)和Tx(Pin15)。
2. 将按钮按到PD5(Pin19)和PD6(Pin20)。
3. LCD连接:
◼ RS - PA0
◼ R / W - PA1
◼ EN - PA2
◼ D4 - PA4
◼ D5 - PA5
◼ D6 - PA6
◼ D7 - PA7
使用CodeVision创建ATmega16项目
安装CodeVisionAVR和SinaProg软件后,按照以下步骤创建项目和编写代码:
第1步、 打开CodeVision,单击File -> New -> Project。将出现确认对话框。单击YES。
第2步、 将打开CodeWizard向导。单击第一个选项,即AT90,然后单击“OK”。
第3步、 - 选择你的微控制器芯片,这里我们将选择Atmega16L,如图所示。
第4步、 - 单击USART。在上面选择Receiver and Transmitter。如下所示:
步骤5: - 单击Alphanumeric LCD,并勾选Enable Alphanumeric LCD support。
第6步、 - 单击Program -> Generate, Save and Exit。现在,我们一多半的工作已经完成。
第7步: - 在桌面上创建一个新文件夹,以便我们的文件保留在文件夹中,否则我们将分散在整个桌面窗口中。根据需要命名您的文件夹,我建议使用相同的名称来保存程序文件。
我们将陆续有三个对话框来保存文件。
保存第一个后会出现的其他两个对话框也一样。
现在,您的工作区看起来像这样。
我们的大部分工作都是在向导的帮助下完成的。现在,我们需要为GSM模块编写代码。
上一篇:基于ATtiny85轻松制作一款智能手表
下一篇:AVR基础知识:ATMEGA的SPI总线 - 第2部分
推荐阅读最新更新时间:2024-11-12 11:13
设计资源 培训 开发板 精华推荐
- 使用 ROHM Semiconductor 的 BD5332 的参考设计
- AM1S-0315SH30Z 1W DC-DC转换器典型应用
- 【毕设】基于51单片机光栅式光电转速计设计
- DC2195B-B,LT8609EMSE 微功率同步降压稳压器演示板,低 EMI,5.5V = VIN = 42V,Vout = 5V @ 2A,FSW = 2MHz
- AD9144-EBZ,用于 AD9144 四通道、16 位、2.8 GSPS、TxDAC+ 数模转换器的评估板
- esp8266最小系统
- MIC2003-1.2Y 1.2A固定可调限流配电开关典型应用
- REF191 低压差开关输出电压基准的典型应用电路
- LT3467ES6 ±15V 双路输出升压转换器的典型应用,具有输出断开连接
- 2015-AD831混频