ESP32_DAY4 用VS Code开范例程序

经过前两天的环境准备,我们就来试着让ESP32开发板上内建的LED灯闪烁,熟悉一下如何在VS Code中开启范例程序、上传烧录到开发板。对Arduino和ESP32还不了解也没关系,因为今天只会用到Arduino提供的范例程序,顺便让大家先观察一下Arduino的程序架构是如何组成的,明天再来解释程序架构,并教大家如何自己新建专案。後天开始就会介绍Arduino和ESP32的科普小知识及相关函式~

开范例程序

先来练习开起范例程序吧!我们今天要开的范例程序是Arduino内建好的Blink(闪烁),如果你是要用Arduino IDE开起的话,他会放在档案->范例->01.Basics底下
https://ithelp.ithome.com.tw/upload/images/20210918/20140433SnHTdxlPsY.png
如果你是用VS Code的话,请使用「F1」、「CTRL+SHIFT+P」来开启命令面板,并使用 Arduino: Examples 命令来开启范例资料夹,如果找不到命令的话,可以先输入「Arduino」来快速找到指令,你常用的指令会放在越上方~
https://ithelp.ithome.com.tw/upload/images/20210918/20140433OiJgeeQS1j.png
Arduino: Examples 点下去之後就会跳出一个范例资料夹分页,Built-in Examples 里放的是Arduino内建范例程序,其实就跟从Arduino IDE打开是一样的意思噢!
https://ithelp.ithome.com.tw/upload/images/20210918/20140433ASs16ewqUL.png
Blink一样放在 Built-in Examples ->01.Basics底下
https://ithelp.ithome.com.tw/upload/images/20210918/20140433l5ylMO782E.png
Blink点开後就会向下面程序码一样

/*
  Blink

  Turns an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:
  https://www.arduino.cc/en/Main/Products

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman

  This example code is in the public domain.

  https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
*/

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

接下来,确认你已经选择了正确的开发板型号和序列埠,如果还没选择可以直接点选照片中的位置就可以设定!我这里是用NodeMCU-32S搭配COM3,後续直接点右上角「上传Upload」图示进行验证与上传的动作。
https://ithelp.ithome.com.tw/upload/images/20210918/20140433wgMRXfZB6V.png
另外,DOIT ESP32 DEVKIT V1 这块开发板在上传时有个小坑,我当初不知道就踩了进去,但我们後天再来仔细说QQ总之,如果你手上是这个型号的开发板的话,记得在输出视窗跑出 Connecting...--... 时要一直按住板子上的 BOOT 按钮,才能成功上传!验证时会花一点时间检查语法,完成後就会开始上完罗!

以下是上传成功画面

程序架构

不知道大家有没有觉得范例程序的字看起来很多呢?但其实大部分都是注解而已XD对C++熟悉的人应该对注解不陌生,下面三种都是C++中可行的注解噢!

//1.我是一行注解

/*2.我也是一行注解*/

/*3.我是一行被分段
                    的注解*/

所以其实真正的程序码只有以下的部分而已

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

以C++控制的硬体程序架构,是由setup()loop() 两大函式组成,缺一不可。里头的其他函示会依照之後的主题慢慢带,敬请期待。
那两者的差异,我卖个关子留到明天再说,大家可以先从字面上的意思去了解两者的不同 (绝对不是要拖天数)
所以明天就是会把程序架构的说明补充完,并教大家如何在VS Code新建自己的Blink专案!


<<:  Day06:爸爸这麽做都是为你好

>>:  内部稽核与外部稽核功能面分析

Day21 - 铁人付外挂设定介面(三)- 自订栏位

先来回顾一下目前铁人付金流外挂的资料夹结构: iron-pay ├── composer.json ...

Day 11 - Custom HTML5 Video Player

前言 JS 30 是由加拿大的全端工程师 Wes Bos 免费提供的 JavaScript 简单应用...

Day 25. VR菜单3

连假就让我轻松点吧XDD,虽然平常内容也没有多到哪去哈哈。       If you are on ...

[重构倒数第19天] - i18n什麽的交给前端来处理吧(二) Vue3 载入Vue-i18n

前言 该系列是为了让看过Vue官方文件或学过Vue但是却不知道怎麽下手去重构现在有的网站而去规画的系...

【Day 26】情境模拟:再好看也没用 !? 设计稿被工程师说太难做不出来 QQ

接下来,会就六角学院 UI 设计入门 课程中,针对团队合作时会碰到的情境稍作讨论。 设计稿再好看也没...