iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0
自我挑戰組

一個營建系學生的韌體之路-ESP32篇系列 第 10

ESP32_DAY10 硬體屆的Hello World!

昨天的小練習答案

https://ithelp.ithome.com.tw/upload/images/20210924/20140433H8LgSsmUdM.png

前言

今天要來讓大家試試看硬體屆的Hello World,其實前幾天大家已經有做出來了,那就是點亮LED燈!!只是之前是讓開發版上內建的LED燈閃爍,而今天是要利用前兩天講的麵包板和電阻來自己接成一個電路!如果你能不用麵包板就把LED燈和電阻接好也是可以的~如圖
https://ithelp.ithome.com.tw/upload/images/20210926/20140433VjQW3kdlzh.png

圖片來源: Random Nerd Tutorials

我相信大家都知道LED燈是什麼,但你知道他的發光原理嗎?

LED

https://p.ledinside.com.tw/led/2012-03/1332213770_72431.jpg

圖片來源: LEDinside

我們生活周遭充滿了五顏六色、形形色色的各式燈具,其發光核心大致可分為白熾燈、螢光燈、氣體放電燈、LED...,在2011年LED燈只佔了國內照明年度用電量的0.08%,但隨著LED燈技術的成熟,它已漸漸取代掉傳統燈具,LED相較於其他燈種的優勢是發光效率高、使用壽命長、較環保。

LED又叫做發光二極體(light-emitting diode),是能發光的半導體電子元件,透過三價與五價元素所組成複合光源。此種電子元件早在1962年出現,早期只能夠發出低光度的紅光,被惠普買下專利後當作指示燈利用。及後發展出其他單色光的版本,時至今日,能夠發出的光已經遍及可見光、紅外線及紫外線,光度亦提高到相當高的程度。隨著白光發光二極體的出現,用途已由初期的指示燈及顯示板等指示用途,逐漸發展至近年的照明用途。

資料來源: 維基百科

LED 主要是由p型半導體(電洞型)和n型半導體(電子型)組成的晶片,在p型半導體和n型半導體之間有一個pn接面,然而,發光二極體只能夠往一個方向導通(通電),叫作順向偏壓,當電流流過時,電子與電洞在其內結合的過程中產生大量的能量,這些能量就是以光的形式釋放出來,從而把電能轉換為光能,這叫電致發光效應,這就是LED發光的秘密,透過不同材料的晶片可以發出紅、橙、黃、綠、藍、紫色等不同顏色的光,「發光二極體」也因此而得名。另外,也因為LED只需要小小的電壓就能直接將電能轉成光能,所以相較於其他的照明工具來說,LED是相對節省能源的。
https://www.narlabs.org.tw/files/file_pool/1/0K078393507462770558/%E5%84%80%E7%A7%91%E4%B8%AD%E5%BF%83%E5%85%A7%E6%96%87%E5%9C%96.png

資料、圖片來源: NARLabs

以上是LED燈的發展歷史和發光原理,記不起來沒關係,但有一個東西千千萬萬要記住,重點中的重點!
LED長腳的那端是正極、LED短腳的那端是負極!!
LED長腳的那端是正極、LED短腳的那端是負極!!
LED長腳的那端是正極、LED短腳的那端是負極!!

很重要要講三次!

https://ithelp.ithome.com.tw/upload/images/20210924/20140433TIeOio8yJM.png

硬體界的Hello World!

昨天介紹了麵包板、電阻,今天又補充了上下拉電阻、LED燈,那大家就可以把前幾天的Blink,改成讓你另外接LED燈閃爍啦~但因為還沒解釋過程式碼的意義,所以可以先看看控制開發板上LED燈的針腳是GPIO多少,直接接那根PIN腳,例如:DOIT DEVKIT V1 是GPIO 2(Pin 2)

https://ithelp.ithome.com.tw/upload/images/20210924/20140433lx38FgCoWv.png
上圖腳位僅供參考,黃線接你使用的GPIO (Pin),黑線是接地(GND),如果不想使用預設LED_BUILTIN變數,那你可以將所有的LED_BUILTIN改為你需要pin腳的數字,例如:想把黃色的電電接在GPIO 21,那我就需要把程式碼有LED_BUILTIN的部分通通替換成21~

void setup() {
  pinMode(21, OUTPUT);  // pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(21, HIGH);   // digitalWrite(LED_BUILTIN, HIGH); 
  delay(1000); 
  digitalWrite(21, LOW);    // digitalWrite(LED_BUILTIN, LOW);
  delay(1000); 
}

猜猜看下面哪張圖的電路有問題?

一樣明天公布答案~~
https://ithelp.ithome.com.tw/upload/images/20210924/201404333TizWcsXoP.png
(我當初做這張圖的時候忘記用ESP32了>"<請見諒~~)


上一篇
ESP32_DAY9 開發好夥伴-電阻
下一篇
ESP32_DAY11 短路
系列文
一個營建系學生的韌體之路-ESP32篇12

尚未有邦友留言

立即登入留言