招商蛇口全资子公司拟投资1亿元私募股权基金
06-18
1。
上传程序到板子时,Arduino IDE提示“avrdude: stk_getsync(): not insync: resp=0x00” 网上很多人都遇到过这个问题。
有的说是驱动问题,有的说是IDE设置问题。
具体针对我遇到的情况,原因是RF24无线传输模块插在板子上(可能是线没有插好)。
拔掉电源后,上传程序正常。
2。
使用nRF24L01+无线透传的问题 Arduino官网好像推荐Mirf库。
我遇到了一个问题。
接收端运行几分钟后停止响应。
我尝试了另一个RF24库,遇到传输不稳定的情况。
问题一时没有解决,但是我回到Mirf,之前停止响应的问题并没有再次出现。
这个论坛关于无线透传的讨论很多,虽然用arduino的不多。
Mirf的地址问题:Mirf的地址有长度要求。
例如,您可以使用“serv1”或“clie1”作为地址。
如果长度太短,则不会传输。
例如,使用“cl2”作为地址。
我尝试了很多次才发现这个问题。
nRF24L01模块自动响应问题(使用Mirf库时):项目中使用一台nRF24L01(服务器)接收多个nRF24L01(客户端)的消息,发现客户端互相接收消息应该发送到服务器。
消息,经过多次测试,发现应该与nRF24L01的自动响应机制有关。
在Mirf.cpp的setTADDR方法中可以看到,目标地址同时写入到了RX_ADDR_P0和TX_ADDR这两个寄存器中。
前者用于接收自动回复(一台nRF24L01可以有6个接收地址同时工作),导致对端向服务器发送消息也被视为自动回复。
为了避免这种干扰,我试验的方法是:每个客户端在发送数据之前将TADDR设置为一个无效且唯一的地址,然后使用setTADDR将该地址设置为发送前时刻的服务器地址。
发送完成后,立即将TADDR 设置为无效地址。
3。
Arduino 通过 USB 与 Android 进行通信 使用 usb-serial-for-android 开源项目。
注意双方波特率必须设置一致; Android端读取到的数据可能是不完整的数据,需要多次读取才能完成。
“像这样的硬件设备接口的本质是,通常不能保证您的数据将在一次 read() 中到达。
如果您期望 16 字节的数据,则需要连续 read(),直到您完成收到全部 16 个。
如果您想读取直到出现换行符,则需要扫描所有字符,直到找到换行符 - 然后保存其后收到的所有字符以供以后使用。
” 源链接 4. 关于 arduino 设备唯一的ID 我最终决定使用的解决方案是:编写一个专门的小程序(量产程序),为每个arduino运行一次,并在正式程序运行时将唯一的ID号写入E??EPROM中,代码参考 注意:EEPROM的擦写次数是有限的,一般额定为10万次,但有人声称实验结果只有10万次左右。
幸运的是,这个相对可靠的实验测试结果是一万次以上。
总之,写入EEPROM时要小心。
5。
温湿度传感器DHT11 3.3v/5v通用,连接到数字信号端口,使用DHT11库获取数据。
DHT11 不太准确。
如果要求高的话,可以使用DHT22(也叫AM)。
6。
同一段代码在两块板子上运行效果不同 两块板子都是uno+sensorshield+nrf24l01。
其中一个运行完全正常,但另一个无法接收消息(可以发送消息)。
更换传感器屏蔽(与上面的nrf一起)没有影响,更换USB线没有影响,连接外部12v电源没有影响。
最后我发现如果我在代码的loop()中加入delay()的话,基本可以收到消息了,但是还是会有一些丢包。
这两个板子是从不同的卖家那里购买的,所以看起来是有区别的。
?在扩展板上,工作正常。
我仔细检查过连接没有问题,也更换过nano和nrf模块USB线等,但没有效果。
最后发现nano板上的3.3v引脚电压不对。
几乎为零。
我联系卖家查看,说nano上少了一根线。
我需要将 USB 端口后面靠近芯片引脚的两个电容器(C1 和 C7)短路。
,这样解决问题。
扩展板上的3.3v引脚使用asm3.3从5v降压,所以不存在这个问题。
nano官方文档说3.3v引脚只有USB供电时才有电压,但经过实验,我的版本(电容短路后),3.3v引脚无论是否供电都没有电压它由 USB 或通过 vin 供电。
有3.3v电压。
? ,DTR线也已连接。
经过反复实验,我们发现有两个问题导致了这种现象:1)arduino上的RX应该连接到ftrl的TX,而TX连接到了RX。
我一开始是反接的; 2)我一开始使用的FTDI驱动是最新的2.0.8.30,按照这个帖子的提示,降级到2.0.8.24后问题解决。
附言。
最好搜索并下载CDM4_Setup.exe文件来强制降级。
我再次测试了DTR线的功能。
如果连接了DTR线,则可以直接上传程序。
如果没有连接DTR线,当显示Uploading提示时立即按下arduino的reset按钮。
也可以上传成功。
如果不按按钮则无法上传。
更新/2/19:由于某种未知原因,ftrl无法再次将程序上传到arduino pro mini。
这篇文章中有人提到,在DTR线上添加一个nF电容是关键一步,但我手头没有这个电容,即使我不连接DTR线并使用手动复位,它仍然不会'不工作。
后来使用PL模块的下载线(只有四个引脚,比ftrl少了DTR引脚)和手动复位的方法,程序可以正常上传到arduino。
9。
Arduino数据类型 Arduino的长整数是32位,而Java是64位。
互相传输数据时不要出错。
关于arduino 10中的数据类型。
电池供电方案 我花了很多时间研究各种供电方案。
为了平衡电池容量和体积的增加,我还需要考虑电池成本因素: 方案一:采用AA/AAA干电池供电。
为了达到至少3.3v的电压来驱动arduino pro mini+nrf24l01,至少需要三块电池。
尺寸过大,废弃; 方案2:采用CR纽扣电池供电,同样电压不足(标称3V),实测为3.2V但稍后电压会下降。
3V左右,arduino可以启动,但无线模块不正常; 方案3:3.7V锂电池供电,这是目前的解决方案,目标A mAh锂聚合物电池可以让设备运行2个月以上。
为了节省成本和体积,锂电池充电模块将外置。
此代码可以检测VCC引脚当前电压(仅支持and),有助于提示电池电量不足。
我在pro mini 5v上测试过,可以用。
11。
降低工作电流 目前使用的是arduino pro mini 5v/16MHz版本。
该版本在tb上的价格约为13元,而3.3v/8MHz版本的价格约为17元。
实测5v使用3.3v供电(输入VCC)的版本依然可用,但此时核心频率可能会低于16MHz,影响不大。
为了降低工作电流以获得尽可能长的工作时间,设备大部分时间进入休眠模式(使用LowPower库),使用看门狗周期性唤醒发送数据,然后立即返回休眠模式。
参考链接 nrf24l01模块也需要同时休眠和唤醒,使用Mirf库中的powerDown()命令。
实际电流:pro mini 5v版本,由3.7v锂电池、HT稳压器、LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF)和Mirf.powerDown()同时供电,电流1.48mA。
传感器供电:如果传感器直接连接5v或3v3,传感器会一直消耗电流。
为了节省电量,可以将不需要大电流的传感器连接到数字输出,然后在需要使用传感器时给Arduino上电。
参考链接1,参考链接2 12。
TP充电板充电电流问题 对于tb上购买的带TP芯片的锂电池充电板,要改的Rprog在电路板的中下(电路板上文字的方向)是一个小贴片电阻(正极),出厂阻值为1.2k。
我需要90mA的充电电流。
按照说明更换一个15k左右的电阻即可。
测试充电电流时遇到一个问题:发现充电电流低于预期,大约77mA,而且几乎从一开始就慢慢下降,而且不是恒流。
查了一些资料,发现我把万用表串联到BAT+口,万用表对电流有影响,因为使用不同档位测得的电流值不同,高端档位显示电流较高。
事实上,应该串联到In+端口,或者测量Rprog电阻的电压,然后得到(V/Rprog)*即可得到充电电流。
参考链接 13。
AnalogRead(0) 和 AnalogRead(A0) 有什么区别? 如果这篇文章所说的是真的,那么在Arduino IDE中上述两个命令没有区别。
A0的值为14,analogRead(0)等价于analogRead(14)。
补充:我找到了另外一个帖子,解释的比较详细。
14。
构建最小系统的问题 a)我在tb买的usbasp,vcc引脚与gnd引脚短路(!),vcc引脚旁边那个看不懂的引脚有5v电压;后来仔细一看,发现文字距离对应的引脚太远,导致出现序列化。
b) 我使用Atmegapa作为核心构建了一个最小的arduino系统。
在 arduino ide 1.5.5 中,选择 board -> arduino ng 或更早版本。

用usbasp烧录bootloader时,会提示如下错误: avrdude: Expected signature for ATMEGAis 1E 94 06 原因是atmelpa和atmel这两个芯片的签名不一样,自带的avrdude arduino无法识别它们。
按照这篇文章的方法可以解决,但可能是由于Arduino IDE版本不同的原因。
原帖内容需要稍作修改。
按照IDE的错误信息进行操作即可。
另一篇文章,虽然我没有实际测试过,但值得一看。
c) 对了,如果使用“面包板专用电源”,要注意电源引脚的极性——电源插在面包板两端时,正负极两极完全相反。
d)可能是面包板不太可靠。
在面包板上构建的最小系统非常不稳定,但是将其焊接到穿孔板上后就没有问题了。
e) 如果您使用编程器(例如 usbasp)将草图刷新到最小系统,请注意每次刷新时 EEPROM 都会被清除。
解决方案是将 EESAVE 熔丝位设置为 1(请参阅此链接)。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-18
06-17
06-18
06-18
06-17
06-18
最新文章
使用电子管有哪些注意事项?如何检查电子管之间是否短路?
博通支付1200万美元和解SEC财务欺诈指控
八名运营商高管确认加入虚拟运营商
内蒙古农牧区雷电灾害成因分析及防雷对策
北京联通将5G应用于世园会远程医疗急救
TD-SCDMA最后一轮冲刺测试启动,产业前景更加光明
专访阿里云总裁王健:云计算服务平台梦想成真
USB2.0控制器CY7C68013的接口设计与实现