繼上次[Day 5]-【STM32系列】一閃一閃亮晶晶,點亮你的LED!這篇只會一閃一閃功能又陽春到不行又網路上一堆人都做過有些還做的更蝦趴哩不知道該從哪裡吐槽起卻又是初學者教學篇所以處於一個很尷尬的分界點總之就是一整個不予置評 之 LED之後,我們的LED更新!更新!upgrade!upgrade!哩齁,今天要玩RGB LED勒啦!!!開始啦!!!!!
感謝RGB LED模組的面市,我們現在可以弄出更酷炫的咚咚啦,咚咚?
RGB LED 又稱三色LED,因為是由三原色,紅色、綠色、藍色三種顏色的LED包裝在一起,變成一顆LED
所以 RGB LED 會有四隻針腳,分別是RGB和一個共同腳接地
透過不同比例將RGB混和,就能產生不同的顏色
本次使用的是共陰極 RGB LED,所以接1就會亮,共陽極則是接0才亮
針腳如下:
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)
我們使用TIMER2 Channel1 ~ Channel3 設定PWM Generation CH0、1、2
預設PIN腳為PA0、PA1、PA2
頻率直接給他最大下去了啦
如上圖,TIM2使用APB2外設32MHz
設定TIM2,為了讓占空比100%等於255,我將把clock 32MHz/255 = 125490,那我們希望讓占空比100%等於255且RGB強度會在0~255變化,因此將clock再除一次255(125490 / 255 = 492),這是預分頻器的值,在再將ARR值設為255,讓占空比100%等於255。
記得將中斷開啟
- STM32 Nucleo-64 boards (MB1136)資料手冊
https://www.st.com/resource/en/user_manual/dm00105823-stm32-nucleo-64-boards-mb1136-stmicroelectronics.pdf- STM32L053R8 datasheet
https://www.st.com/resource/en/datasheet/stm32l053r8.pdf- RM0367 Reference manual Ultra-low-power STM32L0x3 advanced Arm®-based 32-bit MCUs
https://www.st.com/resource/en/reference_manual/dm00095744-ultra-low-power-stm32l0x3-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf- ARM Mbed官網介紹 - NUCLEO-L053R8
https://os.mbed.com/platforms/ST-Nucleo-L053R8/- STM32 官網介紹 - STM32L053R8
https://www.st.com/en/microcontrollers-microprocessors/stm32l053r8.html#overview
- 此開發板售價在臺幣1000元以下,讀者可於以下網站購得:
https://www.mouser.tw/
https://www.digikey.tw/
覺得今天有點HIGH