Arduino将代码分割成多个文件

Arduino单个功能的调试往往会把代码都写在ino文件的setup和loop方法中,现实中一款完整的产品会有很多功能组成,需要遵循一定的结构设计规则做到复用性、模块化、解耦等,将功能按一定规则分割成多个文件,在Arduino ide中我们可以创建多个h文件和c/cpp文件来合理的设计分割功能模块。

创建头文件

#ifndef Motion_h
#define Motion_h

class Motion
{
    public:
        void  setup    (); // 初始化引脚
        void  advance  (int a); // 前进
        //void  right    (int b) //右转单轮
};
#endif

添加cpp文件

和创建头文件一样New Tab添加CPP文件

#include "motion.h"
#include <Arduino.h> 

void Motion::setup()
{

}

void Motion::advance  (int a)
{
  Serial.println("advance");
}

ino主文件调用

#include "motion.h"

Motion motion;

void setup() {
  // put your setup code here, to run once:
  motion.setup();
}

void loop() {
  motion.advance(1);
}

接下来你可以合理规划你的功能模块代码到不同的类文件里了

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
在本课中,您将学习如何编程Arduino以使Arduino的内置LED闪烁。 材料清单 Arduino Uno R3 1块 USB引线 - 类型A到B 1根 Arduino有两排连接器,用于连接电子设备和插入式“屏蔽层”,使Arduino能够做得更多。 然而,Arduino也有一个LED,你可以从你的草图中控制。 该LED内置于Arduino板上,通常称为“L”LED,因为这是它在电路板上的标记。 这个LED的位置在下面的Arduino Uno和Leonardo的图片上以红色圈出。 您可能会发现,将Arduino电路板的“L”LED连接到USB插头时,它已经闪烁。 这是因为Arduino主板通常会随附预装的“Blink”草图。 在本课中,我们将使用我们自己的Blink草图重新编程Arduino,然后更改闪烁的速率。 在第0课中,您将设置Arduino IDE,并确保您可以找到正确的串行端口以连接到您的Arduino板。 现在已经到了将该连接用于测试和编程Arduino板的时候了。 Arduino IDE包含大量您可以加载和使用的示例草图。 这包括使'L'LED闪烁的示例草图。 在文件→示例→01.Basics下载入IDE菜单系统中的'Blink'草图。 当草图窗口打开时,将其放大,以便您可以在窗口中看到整个草图。 保存'闪烁'的副本 Arduino IDE附带的示例草图是“只读”的。 也就是说,您可以将它们上传到Arduino板,但如果您更改它们,则无法将它们保存为相同的文件。 我们将改变这个草图,所以,你需要做的第一件事就是保存你自己的副本,你可以改变你喜欢的副本。 从Arduino IDE的File菜单中选择'Save As ..'选项,然后用名称'MyBlink'保存草图。 您已将您的“闪烁”副本保存在写生簿中。 这意味着如果你想再次找到它,你可以使用File→Sketchbook菜单选项来打开它。 将Blink上传至电路板 使用USB电缆将Arduino板连接到计算机,并检查“Board Type”和“Serial Port”是否设置正确。 您可能需要参考第0课。 Arduino IDE将显示窗口底部板子的当前设置。 点击“上传”按钮。 工具栏左侧的第二个按钮。 如果您观看IDE的状态区域,您将看到一个进度条和一系列消息。 起初它会说'编译草图..'。 这将草图转换为适合上传到电路板的格式。 接下来,状态将变为“正在上传”。 此时,Arduino上的LED会在草图传输时开始闪烁。 最后,状态将变为“完”。 另一条消息告诉我们,草图使用32,256字节中的1,084字节。在“编译草图..”阶段之后,您可能会收到以下错误消息: 线索位于顶部,这可能意味着您的主板根本没有连接,或者驱动程序尚未安装(如有必要)或者选择了错误的串行端口。 如果你得到这个,回到第0课并检查你的安装。 上传完后,电路板应重新启动并开始闪烁。 'Blink'如何工作 Blink草图的代码见附件。 首先要注意的是,很多这种草图就是所谓的“评论”。 评论不是实际的程序指令,它们只是关于程序如何工作的评论。 他们在那里是为了得到好处,所以伴随草图有一些解释。 草图顶部的/ *和* /之间的所有内容都是块注释,它解释了草图的用途。 也有以//开头的单行注释,并且在行末尾的所有内容都被视为注释。 第一个实际的代码行是: int led = 13; 正如上面的评论所解释的那样,这给了LED所连接的引脚的名称。 这在大多数Arduinos中都是13,包括Uno和Leonardo。 接下来,我们有'设置'功能。 同样,如评论所述,按下重置按钮时会运行。 它也会在电路板因任何原因(例如首先应用电源或重新上传草图后)重置时运行。 void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); } 每个Arduino草图都必须具有“设置”功能,其中可能需要添加自己指令的部分位于{和}之间。 在这种情况下,那里只有一个命令,正如注释状态告诉Arduino开发板,我们将使用LED引脚作为输出。具有“循环”功能的草图也是强制性的。 与只能运行一次的“设置”功能不同,复位后,“循环”功能将在完其命令后立即重新启动。 void loop() { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the vol
有了这些资料集合,单片机开发差不多全了 不能错过的Arduino图书.pdf Arduino一试就上手(第2版).pdf Arduino与树莓派哪个是更适合 - 推酷.pdf Arduino从基础到实践.pdf ARDUINO开发实战指南 AVR篇.pdf Arduino开源设计_吴义满.pdf ARDUINo玩转电子制作.pdf Arduino电子设计实战指南.零基础篇.pdf Arduino高级开发权威指南(原书第2版).pdf 深入浅出AVR单片机.pdf Arduino - Graph.pdf e络盟针对工业物联网应用供应一体_省略_angOHGreen开源硬件平台_.pdf Marvell开源KinomaJS应用框架加速物联网行业长_.pdf wifi模块简单使用教程,如何将数据发送到电脑(esp8266 arduino库的使用) wifi.pdf [ARDUINO.ANDROID互动智作].〔美〕Simon.Monk.科学出版社.扫描版(简体).pdf [ARDUINO技术内幕].[美].Dale.Wheat.翁恺.译.扫描版.pdf 用Arduino和Yeelink打造智能家居.pdf 中文语音引擎EKHO在Raspberrypi上的应用实例_薛凯.pdf 以大数据与物联网为基础的仿生设计方法_陈阳.pdf 华为推出基于开源的物联网操作系统_.pdf 在物联网时代_开源该怎么玩_本刊编辑部.pdf 基于Wi_FiSoC的物联网平台设计_纪亚萍.caj 基于开源硬件和物联网云平台的远程控制应用_林巧生.pdf 基于微信和Arduino家用物联网系统开发_薛毛毛.pdf 挑战树莓派:谁才是Geek最爱的开发板.pdf 极客DIY:利用Arduino制作智能家居系统 - FreeBuf.pdf 爱上Arduino.pdf 物联网革命的三个阶段(联接未联接的,生智能的联接,复杂子系统的自治).pdf

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ArslanRobot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值