Questions tagged «arduino-mega»

基于ATmega2560或1280芯片的微控制器板。使用此标签可以解决有关Mega的问题,而不仅仅是Arduino的一般用法。

11
如何分割传入的字符串?
我通过串行连接以以下格式通过arduino发送伺服位置列表 1:90&2:80&3:180 可以解析为: servoId : Position & servoId : Position & servoId : Position 我将如何拆分这些值,并将其转换为整数?


7
如何获得我所有Arduino板的唯一ID?
将草图上传到您的Arduino板之一后,就很难确切知道导致该草图的源代码。 实际上,您可以在PC上更改草图的源代码,而无需将其(以二进制格式)更新到您的电路板上。 我有一个想法,就是要建立一种“ 草图存储库 ”,一旦我将一个草图上载到我的木板上,就会立即填充它。然后,我可以稍后检索在我的任何板上运行的草图的源代码。 对于这样的存储库,我首先需要有一个“ 索引 ”,使我能够知道草图源代码链接到哪个板。 通常,这样的索引对于每个arduino板都应该是唯一的。 因此,我的问题是:如何获得Arduino板的唯一ID? 编辑: 这是我当前的板列表(单个唯一ID方法支持的最小列表): UNO R3 兆丰2560 运 Arduino机器人(必须是2个Leonardo等效板) 将来,我可能还会构建自己的板(Uno等效,但没有FTDI的准系统),因此,如果一种方法也支持这些板,那会更好。

8
Arduino中的全局变量是否有害?
我在编程方面相对较新,并且我正在有效阅读的许多编码最佳实践都指出,使用全局变量的理由很少(或者最好的代码根本没有全局变量)。 在编写用于使用SD卡制作Arduino接口的软件,与计算机对话并运行电动机控制器时,我已尽全力记住这一点。 我目前有46个全局变量,大约有1100行“入门级”代码(没有一行可以执行多个操作)。这是一个很好的比率,还是我应该考虑进一步降低它?另外,我可以采用哪些实践来进一步减少全局变量的数量? 我在这里问这个问题是因为我特别关注在Arduino产品上编码的最佳实践,而不是一般的计算机编程。

2
Arduino上的3.3V,5V和9V引脚
在我的Arduino Uno R3和Arduino Mega R3上,有5V和3.3V引脚。 但是在此页面上,Arduino开发板简介上有一个5V和9V引脚,但没有3.3V引脚。Arduino页面:什么适配器?还提到了9V引脚。 为什么会有差异?

3
初学者使用不同蓝牙模块的基本区别是什么?
我是微控制器和电子产品的初学者,尽管不是计算机和编程领域的初学者。 从Arduino开始,我达到了一个真正的兴趣,使我真正有兴趣让我的原型与移动设备或计算机进行通信以发送和接收数据(例如,发送传感器数据或接收命令)。 往外看,我发现有不同的蓝牙模块具有不同的定价点。作为一名初学者,对差异的进一步研究并没有给我太多的启发,我正在努力理解要寻找的东西或如何选择。 我的问题是: 对于初学者来说,不同的蓝牙模块在根本上有什么区别,例如: HC-05 HC-06 HC-07 购买用于Arduino的简单蓝牙模块时应该寻找什么?

3
Arduino Mega超时通讯与程序员错误
我有一个Arduino Mega 2560,它工作正常,直到午饭时间才开始出现此错误: avrdude: stk500v2_ReceiveMessage(): timeout avrdude: stk500v2_getsync(): timeout communicating with programmer 我知道这不是我正在运行的代码,因为我试图将其加载到Uno上,并且似乎加载没有问题。我需要使用Mega,因为它具有更多端口。 根据我的阅读,这可能是引导加载程序的问题,并且可能与Arduino的当前版本有关。我对引导程序几乎一无所知。我所知道的是,它用于将代码上传到Arduino(我认为...),因此我担心会在不知不觉中弄乱相关文件。 这些页面是我一直在查看的页面,但是就像我说的那样,我真的不了解让自己乱七八糟地摆弄文件。 Mega2560:超时与编程器通信。 Mega 2560上载超时错误-不确定更改 我尝试完全卸载Mega,然后重新安装。我还下载了旧版本的Arduino(0022),但两个选项似乎都不起作用。 我不知道该怎么办,或者在必要时如何更改“ AVR”文件。

1
将Timer3设置为CTC模式-与伺服库冲突
我想设置一个计时器,以便每秒调用一个函数800次。我正在使用预分频器为1024的Arduino Mega和Timer3。为选择预分频器,我考虑了以下步骤: CPU频率:16MHz 计时器分辨率:65536(16位) 16x10 ^ 6 /:由所选择的预分频CPU频率1024 = 15625 将其余部分除以所需的频率62500/800 = 19。 将结果+1放入OCR3寄存器。 我已使用下表设置TCCR3B的寄存器: 错误 不可能编译代码。这是编译器返回的错误: Servo \ Servo.cpp.o:在功能'__vector_32'中:C:\ Program Files(x86)\ Arduino \ libraries \ Servo / Servo.cpp:110:'__vector_32'AccelPart1_35.cpp.o:C:\的多个定义程序文件(x86)\ Arduino / AccelPart1_35.ino:457:首先在这里定义c:/程序文件(x86)/ arduino / hardware / tools / avr / bin /../ lib / gcc / avr / 4.3.2 /。 …



4
将wifi添加到Arduino的最便宜方法是什么?
我正在尝试找到用于Arduino的某种wifi适配器,它需要尽可能小(不是屏蔽层)并且尽可能便宜。 到目前为止,我似乎只能找到售价约10英镑以上的盾牌,但我认为,如果您能以几乎没有的价格获得笔记本电脑的替代wifi适配器,那么我应该能够获得比这便宜得多的Arduino wifi适配器。 我可能不知道要搜索什么。

4
2.4“ TFT LCD Shield在Arduino Mega上不起作用
即使在ebay的网站上,也提到我不能在Arduino Mega上使用2.4“ TFT LCD Shield显示器。问题是我错误地购买了此屏蔽。我想将此屏蔽放在Arduino Mega 2560上。 Mega和2.4“ Display Shield相结合的方法? 注意:我尝试了我朋友的Arduino Uno。Shield运行非常好。 注意:下面的照片确定了我的问题。显示器未运行我的Arduino代码。它仅运行其LED。 // UTFT_Demo_320x240 (C)2012 Henning Karlsen // web: http://www.henningkarlsen.com/electronics // // This program is a demo of how to use most of the functions // of the library with a supported display modules. // // This demo was …

5
我可以使delayMicroseconds更准确吗?
我正在尝试爆炸DMX数据,这需要4us脉冲。我正在检查结果是否运气不佳,以查看Arduino在延迟方面的表现如何……似乎非常糟糕。 我做了一个快速的小测试: unsigned long ptime; void setup() { Serial.begin(9600); } void loop() { ptime = micros(); delayMicroseconds(4); Serial.println(micros() - ptime); delay(1000); //just to keep the serial monitor from going nuts } 结果: 8 4 8 4 4 4 4 4 8 8 8 8 4 8 8 4 4 8 …

2
Arduino的OOP与内联
我已经编程了一段时间了,但是我是Arduino和AVR编程的新手。我对这些微控制器进行编程的主要问题是,在面向对象的类中设计代码与在许多示例中看​​到的更传统的嵌入式编程之间是否存在重大差异? 换句话说,在Arduino / AVR控制器世界中,使用类或反之亦然可以节省内存和性能吗? 假设我们有一个Class: class SomeClass(){ private: int x; int y; public: void foo(); void bar(); } SomeClass thisClass; thisClass.foo(); thisClass.bar(); 以更内联的方式设计程序是否会提高性能或内存,例如: int x; int y; void foo(){ /*** Do something ***/}; void bar(){ /*** Do more stuff ***/}; 我尝试在Stack Exchange和Google上进行一些搜索,但找不到完全可以找到的答案,我正在寻找的最能找到的就是此Stack Exchange问​​题。 我之所以这样问,是因为我有一个项目,它需要尽可能的轻巧,而且我不清楚在这种环境下应该如何设计程序。 编辑 谢谢您的回答,这为您提供了启示。我还不太清楚一件事。 假设您正在设计一个使用u8glib的类,如下所示: class UserInterface{ private: …

2
如何使用计时器更新ISR中的变量
我正在尝试使用计数器检查Timer3的频率。声明为易失性的计数器的值在ISR中递增,并且每秒在主循环中显示总和,并将该值重置为零。 计时器已正确设置。(如果选择3Hz计时器,我会看到LED闪烁) 问题 计数器不增加。这是输出: Setup Completed tick: 1 tick: 0 tick: 0 tick: 0 码 volatile int cont = 0; void setup() { Serial.begin(9600); pinMode(13, OUTPUT); // Initialize Timer cli(); // disable global interrupts TCCR3A = 0; // set entire TCCR3A register to 0 TCCR3B = 0; // same for …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.