文章目录
- 前言
- 1.实验器材
- 2.实验原理
- 3.控制代码
- 3.1显示器的PWM调光和DC调光
- 3.2 编译代码
- 3.2.1直接使用Geany编译器内部选项
- 3.2.2 使用linux语言
- 4.如何在使用面包板的同时使用散热小风扇
- 结语
前言
今晚上没啥事(其实作业没写完),就开始折腾树莓派了
我当初买的是树莓派4B(4GB)
版本的套件,东西还是非常全的,店家还送了全套学习资料+指导视频,加上一本还算不错的书。
本篇博客,让我们一起来完成第一个实验:双色LED
1.实验器材
- 装好系统的树莓派开发板+电源适配器
- 面包板+T型转接板
- 40p软排线
- 双色LED
- 若干跳线
2.实验原理
将引脚S(绿色)和中间管脚(红色)链接到面包板的接口上,对树莓派进行编程控制,使LED的颜色由红变绿。并利用PWM混合成其他颜色。
对应接线表格
树莓派 | T型转接板 | 双色LED |
GPI01 | GPI018 | S |
GPI00 | GPI017 | R |
GND | GND | GND |
实际接线图如下(手机画质也太渣了)
3.控制代码
当树莓派需要与外部元件相接时,要用到一些写好的库。如树莓派wiringPi库
树莓派wiringPi库:wiringPi是一个很棒的树莓派IO控制库,使用C语言开发,提供了丰富的接口:GPIO控制,中断,多线程,等等
还有softPwm.h
库:GitHub链接
本次双色LED实验需要用到的就是这两个库,以及C语言自带的库函数stdio.h
代码如下:
#include <wiringPi.h>
#include <softPwm.h>
#include <stdio.h>
#define uchar unsigned char
#define makerobo_Led_PinRed 0 // 红色LED 管脚
#define makerobo_Led_PinGreen 1 // 绿色LED 管脚
// LED 初始化
void makerobo_led_Init(void)
{
softPwmCreate(makerobo_Led_PinRed, 0, 100);
softPwmCreate(makerobo_Led_PinGreen,0, 100);
}
// 设置LED 亮度PWM调节范围是0x00-0xff
void makerobo_led_ColorSet(uchar r_val, uchar g_val)
{
softPwmWrite(makerobo_Led_PinRed, r_val);
softPwmWrite(makerobo_Led_PinGreen, g_val);
}
int main()
{
//初始化连接失败时,将消息打印到屏幕
if(wiringPiSetup() == -1){
printf("setup wiringPi failed !");
return 1;
}
makerobo_led_Init(); // LED 初始化
while(1){
makerobo_led_ColorSet(0xff,0x00); //红色
delay(500); //延时500ms
makerobo_led_ColorSet(0x00,0xff); //绿色
delay(500);
makerobo_led_ColorSet(0xff,0x45);
delay(500);
makerobo_led_ColorSet(0xff,0xff);
delay(500);
makerobo_led_ColorSet(0x7c,0xfc);
delay(500);
}
return 0;
}
在wiringPi库中,可以看到两个函数的使用说明
- Create函数相当于初始化针脚
- Write函数会更改该管脚的pwm值,以达到控制LED亮度的目的
3.1显示器的PWM调光和DC调光
如果你有了解过显示器的选购知识,估计听说过显示器的PWM调光和DC调光。
使用DC调光的显示器,屏幕背光将常亮;使用PWM调光的显示器,屏幕背光将高速开关来点亮屏幕。只要PWM高于一定值,人眼就分辨不出该屏幕的闪烁。当一块显示器使用高频PWM
调光时,我们认为它与DC调光没有太大的区别。
但总的来说,使用DC调光技术的显示器更加“护眼”,而使用低频PWM调光
的显示器就是极度辣眼睛(这也是有些屏幕在摄像头中会屏闪的原因)
目前主流手机都上了OLED屏幕,该屏幕材质普遍使用的是PWM调光。部分手机厂家在屏幕设置中推出了“类DC调光选项”,其原理就是用高频PWM来模拟DC调光。
如果你想了解这方面的知识,可以看看这个视频
标签:makerobo,01,LED,调光,树莓,delay,PWM From: https://blog.51cto.com/musnow/11908555