iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 22
1
IoT

熟悉Arduino的Maker必看!30天帶你快速入門基於STM32嵌入式開發~系列 第 22

[Day 22]-【STM32系列】RGB LED 之⭐七彩霓虹燈?閃起來啊!!✨✨

  • 分享至 

  • xImage
  •  

繼上次[Day 5]-【STM32系列】一閃一閃亮晶晶,點亮你的LED!這篇只會一閃一閃功能又陽春到不行又網路上一堆人都做過有些還做的更蝦趴哩不知道該從哪裡吐槽起卻又是初學者教學篇所以處於一個很尷尬的分界點總之就是一整個不予置評 之 LED之後,我們的LED更新!更新!upgrade!upgrade!哩齁,今天要玩RGB LED勒啦!!!開始啦!!!!!

感謝RGB LED模組的面市,我們現在可以弄出更酷炫的咚咚啦,咚咚?

RGB LED

RGB LED 又稱三色LED,因為是由三原色,紅色、綠色、藍色三種顏色的LED包裝在一起,變成一顆LED
所以 RGB LED 會有四隻針腳,分別是RGB和一個共同腳接地
透過不同比例將RGB混和,就能產生不同的顏色
本次使用的是共陰極 RGB LED,所以接1就會亮,共陽極則是接0才亮
https://ithelp.ithome.com.tw/upload/images/20201007/20120093kvnper2L9m.jpg
針腳如下:
1 –>紅色
2 –>接地
3 –>綠色
4 –>藍色

要使RGB LED工作,RGB代表紅色,綠色和藍色,這些LED可以同時發出這三種顏色。基本上每種顏色的強度範圍在0到255之間,取決於RGB LED對應的電壓,將這三種顏色的強度結合在一起,我們可以組合出255x255x255不同的顏色

為了改變RGB LED的電壓,我們需要使用PWM,在這裡我使用的是通用定時器TIMER 2。TIMER2以32 MHz運行,我們需要使用預分頻器和ARR來改變佔空比。佔空比表示在一個周期內,信號處於HIGH狀態佔總時間的比值之百分比,強度值的範圍是0到255,因此我將以100%佔空比等於255的方式設定計時器。

將RGB LED連接到STM32L03R8的:
1 –> PA0(TIM2_CH1)
2 –> 接地
3 –> PA1(TIM2_CH2)
4 –> PA2(TIM2_CH3)

Setup

我們使用TIMER2 Channel1 ~ Channel3 設定PWM Generation CH0、1、2
預設PIN腳為PA0、PA1、PA2
https://ithelp.ithome.com.tw/upload/images/20201007/20120093MnRXeQWxof.png

頻率直接給他最大下去了啦
https://ithelp.ithome.com.tw/upload/images/20201007/201200931qubcgMsTJ.png

如上圖,TIM2使用APB2外設32MHz

https://ithelp.ithome.com.tw/upload/images/20201007/20120093KkyehmEfKI.png
設定TIM2,為了讓占空比100%等於255,我將把clock 32MHz/255 = 125490,那我們希望讓占空比100%等於255且RGB強度會在0~255變化,因此將clock再除一次255(125490 / 255 = 492),這是預分頻器的值,在再將ARR值設為255,讓占空比100%等於255。

記得將中斷開啟
https://ithelp.ithome.com.tw/upload/images/20201007/20120093lNvVUqdaX0.png


相關連結


結語

覺得今天有點HIGH


上一篇
[Day 21]-【STM32系列】HC-SR04 超音波測距感測模組
下一篇
[Day 23]-【STM32系列】BI BI BUZZER!BI BI !
系列文
熟悉Arduino的Maker必看!30天帶你快速入門基於STM32嵌入式開發~30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言