第3讲:点亮一个LED灯

点亮一个LED灯

打开IDE工具,编辑如下示例程序,并保存。

程序示例:

#define PIN 13	 
void setup() {
    // put your setup code here, to run once:
    pinMode(PIN,OUTPUT);
} 	 
void loop() {
    // put your main code here, to run repeatedly:
    digitalWrite(PIN,HIGH);
    delay(1000);
    digitalWrite(PIN,LOW);
    delay(1000);
}

程序分析:

Arduino程序结构由两部分构成。

setup():在Arduino程序运行时首先要调用setup()函数,用于初始化变量、设置针脚的输出/输入类型、配置串口、引入类库文件等等。每次 Arduino 上电或重启后,setup()函数只运行一次。

loop():在setup()函数中初始化和定义变量,然后执行loop()函数。顾名思义,该函数在程序运行过程中不断地循环,根据反馈,相应地改变执行情况。通过该函数动态控制Arduino主控板。

这两个函数在Arduino编程中是必须的,缺一不可。对于习惯使用C/C++的程序员来讲,这个程序结构比较奇葩。其实是Arduino编译器将一些初始化代码集成在了内部,为从来没有接触过编程的初学者提供了方便。实际内部完整代码可能是下面的格式:

int main(void)
{
    init();
    setup();
    for(;;)
        loop();
    return 0;
}

系统上电后,首先执行init函数,对硬件进行初始化操作。然后再去执行setup函数,最后重复去执行loop函数。

UNO PLUS中,D13号引脚通过11k电阻与LED相连,LED另一端接入地回路,所以要点亮LED,只需让D13输出高电平即可;反之就输出低电平;

pinMode(PIN,OUTPUT);设置为输出模式。

digitalWrite(PIN,HIGH);digitalWrite(PIN,LOW);设置管脚输出高电平或低电平。

delay(1000) 延时函数,延时1000ms,1s

编译并下载程序后,可以看到UNO PLUS开发板的USER LED会以2s为周期闪烁

 


评论:
相关文章
ESP32 FreeROS 双核使用

ESP32系列(包括ESP32-S3)搭载Xtensa双核处理器,默认情况下Arduino框架仅使用单核运行用户代码,通过多核编程,可以充分利用硬件资源来提升系统响应和性能。


理解 MSBFIRST(最高有效位)和 LSBFIRST(最低有效位)

在本文中,先解释 MSB(最高有效位)和 LSB(最低有效位)的概念,以及 MSBFIRST 和 LSBFIRST。然后展示了 MSBFIRST 和 LSBFIRST 的使用如何影响移位寄存器的输出。


Arduino 和 TB6612FNG 驱动直流电机

TB6612是一款双路H桥型的直流电机驱动芯片,可以驱动两个直流电机并且控制其转速与方向,输入电压在3V~12V,因此在集成化、小型化的电机控制系统中,它可以作为理想的电机驱动器件。


Arduino-ESP32 Preferences库使用详解

Arduino-ESP32项目提供的Preferences库是一个专为ESP32设计的非易失性存储解决方案,它替代了传统的Arduino EEPROM库,提供了更强大、更可靠的数据存储功能。


Arduino Serial 接收数字

在Arduino中,通过串行端口接收数字通常涉及使用Serial.read()、Serial.readString()、Serial.parseInt()等方法。