电子

电子 · 圈子

1429 位酷友已加入

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

关注推荐最新

热门标签

资源

如何将连接GPS模块(NEO-6m)与Arduino

在这个示例中,我将展示如何将GPS模块与Arduino UNO接口,并在LCD上显示经度和纬度数据。 需要的元件 Arduino mega 2560 u-blox NEO-6M GPS模块 Adafruit RGB背光LCD1602 Arduino IDE 原理及流程 1.有关GPS的信息 什么是GPS 全球定位系统(GPS)是由至少24颗卫星组成的基于卫星的导航系统。GPS在全球任何地方的任何天气条件下,一天24小时均可工作,无需支付订阅费或安装费。 GPS如何运作 GPS卫星每天在精确的轨道上绕地球一周两次。每颗卫星都传输唯一的信号和轨道参数,从而使GPS设备能够解码和计算卫星的精确位置。GPS接收器使用此信息和三边测量来计算用户的确切位置。本质上,GPS接收器通过接收发射信号所花费的时间来测量到每个卫星的距离。通过再测量几颗卫星的距离,接收器可以确定用户的位置并显示它。 要计算您的二维位置(经度和纬度)和轨迹运动,必须将GPS接收器锁定到至少3颗卫星的信号上。看到4个或更多卫星时,接收器可以确定您的3-D位置(纬度,经度和高度)。通常,GPS接收机将跟踪8颗或更多的卫星,但这取决于一天中的时间以及您在地球上的位置。 确定您的位置后,GPS单元可以计算其他信息,例如: 速度 轴承座 跟踪 旅行距离 到目的地的距离 GPS信号是什么信号? GPS卫星至少发送2个低功率无线电信号。信号按视线传播,这意味着它们将穿过云,玻璃和塑料,但不会穿过大多数固体物体,例如建筑物和山脉。但是,现代接收器更加敏感,通常可以在房屋中进行跟踪。 GPS信号包含3种不同类型的信息: 伪随机码是标识哪个卫星正在发送信息的ID码。您可以在设备的卫星页面上查看正在接收信号的卫星。 利用星历数据来确定卫星的位置,并提供有关卫星健康状况,当前日期和时间的重要信息。 年历数据会告诉GPS接收器一天中任何时候每个GPS卫星应该在哪里,并显示该卫星和系统中其他所有卫星的轨道信息。 2.下载并安装必需的库,以使GPS在Arduino IDE中正常工作 (i)SoftwareSerial库 (ii)TinyGPS库 你可以在下载区找到它。 3. NEO-6M GPS模块 NEO-6M GPS模块如下图所示。它带有一个外部天线,不带有插头。因此,您将需要焊接它。 NEO-6M GPS模块概述 NEO-6M GPS芯片 该模块的核心是u-blox的NEO-6M GPS芯片。它可以在50个频道上跟踪多达22颗卫星,并达到业界最高水平的灵敏度,即-161 dB跟踪,同时仅消耗45mA的电源电流。u-blox 6定位引擎还拥有不到1秒的首次定位时间(TTFF)。芯片提供的最佳功能之一是省电模式(PSM)。通过有选择地打开和关闭接收机的各个部分,可以降低系统功耗。这极大地降低了模块的功耗至11mA,使其适合于GPS手表等对功耗敏感的应用。NEO-6M GPS芯片的必要数据引脚被分拆为“ 0.1”间距接头,其中包括通过UART与微控制器通信所需的引脚。 注意:该模块支持从4800bps到230400bps的波特率,默认波特率为9600。 位置固定的LED指示灯 NEO-6M GPS模块上有一个LED,指示位置固定的状态。它会以不同的速率闪烁,具体取决于它所处的状态 无闪烁==>表示正在搜索卫星 每1秒闪烁一次-表示找到定位 3.3V LDO稳压器 NEO-6M芯片的工作电压为2.7至3.6V。但是,该模块带有MICREL的MIC5205超低压降3V3稳压器。逻辑引脚也可以承受5伏电压,因此我们可以轻松地将其连接到Arduino或任何5V逻辑微控制器,而无需使用任何逻辑电平转换器。 电池和EEPROM 该模块配有HK24C32两线串行EEPROM。它的大小为4KB,并通过I2C连接到NEO-6M芯片。该模块还包含一个可充电纽扣电池,可以用作超级电容器。 EEPROM和电池一起有助于保留电池支持的RAM(BBR)。BBR包含时钟数据,最新位置数据(GNSS或位数据)和模块配置。但这并不意味着永久数据存储。 由于电池保持时钟和最后位置,因此首次修复时间(TTFF)大大减少了1s。这允许更快的位置锁定。 没有电池,GPS总是冷启动,因此初始GPS锁定需要更多时间。接通电源后,电池会自动充电,并且在没有电源的情况下最多可以保留两周的数据。 引脚排列 GND是接地引脚,需要连接到Arduino的GND引脚。 TxD(发送器)引脚用于串行通信。 RxD(接收器)引脚用于串行通信。 VCC为模块供电。您可以将其直接连接到Arduino的5V引脚。 Arduino Uno Arduino是一个基于易于使用的硬件和软件的开源电子平台。Arduino开发板能够读取输入-传感器上的灯,按钮上的手指或Twitter消息-并将其转换为输出-激活电动机,打开LED并在线发布内容。您可以通过向板上的微控制器发送一组指令来告诉您该怎么做。为此,您可以使用Arduino编程语言(基于Wiring)和Arduino软件(IDE)(基于Processing)。 引脚排列 引脚说明 Arduino Uno是基于8位ATmega328P微控制器的微控制器板。与ATmega328P一起,它还包含其他组件,例如晶体振荡器,串行通信,稳压器等,以支持微控制器。Arduino Uno有14个数字输入/输出引脚(其中6个可用作PWM输出),6个模拟输入引脚,USB连接,电源桶插孔,ICSP插头和复位按钮。 通过使用Arduino编程中的pinMode(),digitalRead()和digitalWrite()函数,可以将14个数字输入/输出引脚用作输入或输出引脚。每个引脚均以5V工作,可提供或接收最大40mA电流,并具有一个20-50 KOhms的内部上拉电阻,默认情况下已断开连接。在这14个引脚中,有些引脚具有以下特定功能 串行引脚0(Rx)和1(Tx)==> Rx和Tx引脚用于接收和发送TTL串行数据。它们与相应的ATmega328P USB至TTL串行芯片连接。 外部中断引脚2和3 ==>这些引脚可以配置为在低值,上升沿或下降沿或值变化时触发中断。 PWM引脚3、5、6、9和11 ==>这些引脚通过使用AnalogWrite()函数提供8位PWM输出。 SPI引脚10(SS),11(MOSI),12(MISO)和13(SCK)==>这些引脚用于SPI通信。 内置LED引脚13 ==>此引脚与内置LED连接,当引脚13为高电平时– LED点亮,而当引脚13为低电平时,其熄灭。 有6个模拟输入引脚,每个引脚提供10位分辨率,即1024个不同的值。它们的电压范围为0至5伏,但可以通过将AREF引脚与模拟Reference()函数配合使用来提高此极限。 模拟引脚4(SDA )和引脚5(SCA )也用于通过Wire库进行TWI通信。 AREF ==>用于为具有AnalogReference()函数的模拟输入提供参考电压。 复位引脚==>使该引脚为低电平,可复位微控制器。 4. Arduino UNO和GPS模块的连接 如下所示将UBLOX的四个引脚连接到Arduino: GPS模块==> Arduino 接地==> GND TX ==>数字引脚(D3) RX ==>数字引脚(D4) Vcc ==> 3.3 V 在这里,我建议您使用外部电源为GPS模块供电,因为GPS模块正常工作的最低电源要求为3.3 V,而Arduino无法提供这么大的电压。 要提供电压,请使用USB TTL。 USB驱动(下载区可下载) 我在使用GPS天线随附的模块时发现的另一件事是,它无法在室内接收信号,因此我使用了该天线。 https://linxtechnologies.com/wp/product/sh-series-gps-antenna/ 要连接此天线,必须使用连接器: 5. JHD162a液晶屏 接地==> LCD模块的接地引脚。 Pin2(Vcc)==> LCD模块的电源(此引脚提供了+ 5V电源) **Pin3(VEE)==>**对比度调整引脚。这是通过将10K电位计的两端连接到+ 5V并接地,然后将滑块引脚连接到VEE引脚来完成的。VEE引脚上的电压定义了对比度。正常设置在0.4至0.9V之间。 **Pin4(RS)==>**寄存器选择引脚。JHD162A有两个寄存器,分别是命令寄存器和数据寄存器。RS引脚的逻辑高电平选择数据寄存器,RS引脚的逻辑低电平选择命令寄存器。如果我们将RS引脚设置为高电平并将输入输入到数据线(DB0至DB7),则该输入将被视为要在LCD屏幕上显示的数据。如果我们将RS引脚设为低电平并将输入信号馈送到数据线,则该命令将被视为命令(要写入LCD控制器的命令-如定位光标或清除屏幕或滚动)。 **Pin5(R / W)==>**读/写模式。该引脚用于在读写模式之间进行选择。该引脚上的逻辑高电平激活读取模式,而该引脚上的逻辑低电平激活写入模式。 **Pin6(E)==>**此引脚用于使能LCD模块。此引脚上的高电平到低电平信号将使能模块。 **Pin7(DB0)至Pin14(DB7)==>**这些是数据引脚。通过这些引脚将命令和数据馈送到LCD模块。 **Pin15(LED +)==>**背光LED的阳极。在5V电压下工作时,应将此引脚串联560欧姆电阻。在基于arduino的项目中,可以通过arduino板上的3.3V电源为背光LED供电。 **Pin16(LED-)==>**背光LED的阴极。 6. Arduino UNO和JHD162a LCD的连接 最好给GSM连接12V电源。 LCD Arduino VSS 地 VCC 5伏 VEE 10K电阻器 RS A0(模拟引脚) I/0 GND E A1 D4 A2 D5 A3 D6 A4 D7 A5 LED + VCC LED- 接地 7.代码 8.结果 最后 所有需要的文件在下载区均可找到。 via:https://create.arduino.cc/projecthub/ruchir1674/how-to-interface-gps-module-neo-6m-with-arduino-8f90ad?ref=platform&ref_id=424_popular___&offset=8

电子

电子·圈子   首发

karry 发布了
资源

利用MQ-2气体传感器配合Arduino进行烟雾探测

在本教程中,我们将学习如何使用MQ-2传感器检测烟雾和可燃气体。 需要的元件 Arduino UNO MQ-2烟雾探测传感器 杜邦线 面包板 蜂鸣器 电阻221Ω 5mm红色LED 5mm绿色LED Arduino IDE 原理及流程 在此示例中,你将读取传感器的模拟输出电压,并且当烟雾达到一定水平时,它会发出蜂鸣声,并且红色LED会亮起。当输出电压低于该水平时,绿色的LED将亮起。 什么是MQ-2烟雾传感器? MQ-2烟雾传感器对烟雾和以下易燃气体敏感: 液化石油气 丁烷 丙烷 甲烷 醇 氢 传感器的电阻取决于气体的类型而不同。烟雾传感器具有内置的电位计,可让你根据想要检测气体的精度来调整传感器的灵敏度。 MQ-2传感器 传感器引脚详细信息 工作原理 传感器输出的电压会根据大气中存在的烟雾/气体水平而相应变化。传感器输出与烟气浓度成正比的电压。 换句话说,电压和气体浓度之间的关系如下: 越大的气体浓度,越大的输出电压 越低的气体浓度,越低的输出电压 工作机制 输出可以是可以用Arduino的模拟输入读取的模拟信号(A0),也可以是可以用Arduino的数字输入读取的数字输出(D0)。 引脚连接 MQ-2传感器具有4个引脚。 连接图 Pin Arduino Uno A0 模拟引脚 D0 数字引脚 GND GND VCC 5V 因此,在进入编码部分之前,让我们检查是否已经组装了所有必需的硬件组件。 硬件部件 代码测试 代码在下载区下载。 最后 所有需要的文件在下载区均可找到。 via:https://create.arduino.cc/projecthub/Aritro/smoke-detection-using-mq-2-gas-sensor-79c54a?ref=platform&ref_id=424_popular___&offset=5

资源

在Arduino上添加wifi

本教程将会向您展示如何通过添加ESP8266 WiFi模块将您的微控制器连接到互联网。 需要的元件 Arduino UNO 杜邦线 电阻(10k、1k) Arduino IDE 原理及流程 有很多方法可以使用ESP866进行通信。有些人可能会用它来在线发送/接收数据或定期上传数据。**在本教程中,**我将仅向您展示如何使用您的手机(Android或iPhone)与Arduino无线通信。这将脱机完成,因此不需要互联网连接。 我们的ESP8266将用作接入点(AP模式),这意味着它将为其他设备(站)提供对Wi-Fi网络的访问并将它们进一步连接到有线网络 这个过程很简单。使用手机将命令发送到Arduino。借助ESP8266,一切将以无线方式进行。 电路示意图 按着这些次序连接电路: 将ESP的VCC / 3.3V /电源引脚和使能引脚(红线)连接到10K电阻,然后连接到Uno的+ 3.3V电源引脚。 将ESP的地线/ GND引脚(黑线)连接到Uno的地线/ GND引脚。 将ESP的TX(绿线)连接到Uno的Pin 3 将ESP的RX(蓝线)连接到1K电阻,然后连接到Uno的引脚2。 将ESP的RX(蓝线)连接到1K电阻,然后连接到Uno的GND引脚。 建立连接 一切设置完成后,您会注意到ESP8266 Wifi在手机范围内可用。 1 .下载适用于Android的TCP客户端 您可以下载Play商店中可用的任何TCP客户端,我使用的是Sollae Systems的TCP Client 2 .从手机连接到ESP8266 Wifi 如果未从可用的wifi网络中显示ESP8266 wifi,请确保您的Arduino正在运行并且一切都正确连接。如果不是,请按照其文档对ESP进行故障排除。 通常wifi / ssid的名称会以ESP的版本名称开头,而我的名称是ESP11。 3 .连接后,获取静态IP地址。 你可以通过转到手机的Wifi设置来检查ESP的IP,然后单击网络信息。AP模式下的默认IP地址为192.168.4.1 。你可以通过遵循此Wifi.config()参考来更改静态IP 。 4 .打开您先前下载的TCP客户端。 通过单击connect创建连接,添加ESP的IP和端口80,如下所示: 80是我用我们的ESP服务器的端口,你可以将其改成任何你想要的端口 **5.**等待TCP控制台说“已连接”。 通过智能手机与Arduino Uno交流 连接后,通过向TCP客户端键入以下代码来发送请求: 通过Attention命令或AT命令与ESP8266进行通信。 检查所附的“ AT命令”表以查看代码。 或使用命令打开内置LED 或使用命令关闭内置LED 或者只是说 您可以根据发送到代码中的逻辑来更改发送的响应。 **重要说明:**esp8266,LEDON,LEDOFF和HELLO是我的自定义命令标识符。如果您未放置任何其他内容,它将返回ErrRead。 ErrRead表示没有与您发送的消息匹配的命令标识符。 ErrRead消息在代码第64行。 关于电路 ESP11上的ESP电源引脚标有VIN,但对于某些版本,它可能是3.3V或Power或VCC。 你还需要为ESP的CH_EN引脚或Enable引脚供电,以使其起作用。 重要事项ESP使用的电压不要****超过3.3VC ESP8266严格使用3.3 V电压,否则会损坏模块。 由于Arduino的电压为5V,因此我不得不安装一个分压器。这里用了电阻器。 ESP的TX连接到Uno的RX,这意味着我们要在ESP中发送(TX)的任何内容都将由Uno接收(RX),反之亦然。 构建此电路后,我们现在就可以使用Arduino UNO启动WIFI了。 注意:如果通过USB电缆连接串行调试器或打开COM端口,则ESP和Arduino之间的通信将受到干扰,无法正常工作。 因此,在刷新Uno之前,请先删除ESP的Rx / Tx。 关于代码 重要说明:ESP8266有不同类型。请根据您的ESP8266的使用情况,更改第16行所附代码的波特率。 我们所有的请求都将在loop()函数中读取并解析。 从上面可以看到,我使用了我的函数**find(,)**来解释消息并告诉Arduino调用哪个代码。 如果你想与Arduino UNO交流或要求做一些事情,只需添加你的条件即可。例如 : 我增加了一些功能来与ESP8266通讯。 通过这个项目你已经了解了如何通过Wifi与Arduino Uno进行通信,现在可以探索更多的物联网项目。 最后 所有需要的文件在下载区均可找到。 via:https://create.arduino.cc/projecthub/imjeffparedes/add-wifi-to-arduino-uno-663b9e?ref=platform&ref_id=424_popular___&offset=4

  • 1
  • 113
  • 114
  • 115
  • 120
前往