文章目录

  • 前言
  • 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);                         //延时500msmakerobo_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调光

如果你想了解这方面的知识,可以看看这个视频

【树莓派C语言开发】实验01:双色LED相关推荐

  1. 树莓派基础实验1:双色LED灯实验

    一.介绍    双色发光二极管(LED)能够发出红色和绿色,两种不同颜色的光.正电压指向LED端子之一,使LED发出相应的颜色的光,一次只能有一个引脚接受电压,常用着各种设备的指示灯. 二.组件 ★R ...

  2. 一、树莓派双色LED实验

    前言: 首次在树莓派上实验双色LED,本文缺乏细节,只是做基本参考. 原套装中接线我认为并不合理,此处做了修改.  截图均为真实场景. LED灯介绍: 双色LED灯(双基色 LED灯),是指模块只能显 ...

  3. 树莓派与双色Led模块的那些事儿

    文章目录 一.简介 二.硬件准备 1.树莓派4B * 1 2.KY-011双色LED模块 * 2 接线引脚 三.软件准备 四.准备知识 1.常见的双色Led模块 2.使用 RPi.GPIO 模块的输出 ...

  4. Arduino学习(四) 双色LED实验

    双色LED是一种可以显示二色颜色的LED灯,  可以有三种状态:  灭,  颜色1亮, 颜色2亮 .  根据颜色组合的不同,  分为红蓝双色,  黄蓝双色, 红绿双色等等. 双色LED是一种常用的LE ...

  5. 【树莓派C语言开发】实验15:电位计传感器(关联PCF8951)

    今天的这个实验需要用上两位常驻嘉宾! 它们就是PCF8591和双色LED! 文章目录 1.实验器材 2.实验原理 2.1基本原理 2.2接线图 3.实验效果 3.1代码示例 3.2实验效果 结语 1. ...

  6. 【树莓派C语言开发】实验14:PS2游戏手柄模块(关联PCF8591)

    本次实验还是需要用到PCF8591模数转换器,莫非它要取代双色LED成为新的常驻嘉宾吗? 本次实验是摇杆实验.这个玩意可以用于操控机器人或者是树莓派的遥控小车.当然,生活中最常见的用途还是在游戏手柄上 ...

  7. 树莓派:双色LED灯实验

    树莓派:双色LED灯实验 简介 一.实验效果 二.组件 三.实验原理 四.实验步骤 五.代码实现 简介 双色LED灯(双基色 LED灯),是指模块只能显示2种颜色,一般是红色和绿色,可以有三种状态:灭 ...

  8. 树莓派学习002_双色LED灯实验

    一.实验流程 首先,通过运行一个简单的例程来感受一下树莓派编程烧录的过程. S1.开机,新建名为CLBDEMO的文件夹. 使用VNC工具远程操作(注意:电脑和树莓派需连接同一个热点). S2.传输文件 ...

  9. arduino串口监视器显示nan_Arduino小白的学习记录:双色LED灯实验

    一.介绍 双色发光二极管(LED)能够发出两种不同颜色的光,通常是红的和绿色的,而不是仅有一种颜色.它采用3mm或5mm环氧树脂封装.它有3个引脚,共阴极或者共阳极可用.双色LED具有两个LED端子或 ...

最新文章

  1. eclipse调用JNI之环境的搭建
  2. printf 中转义字符大全
  3. 链表线性表及其操作c语言代码大全,用链表实现线性表的各种操作(C语言)
  4. 一个视觉交互设计失败的案例
  5. 性能分布式NewLife.XCode对无限数据的支持
  6. nyoj123士兵杀敌4-树状数组-改区间查点
  7. C# WebBrowser 设置代理
  8. 大剑无锋之了解什么是CAP吗?【面试推荐】
  9. 可逆素数编程c语言,巧用C语言求四位的可逆素数
  10. 查看深信服上网管理版本号和登陆流程
  11. 建站用什么cms_我想做独立站,我应该用什么建站工具?
  12. vscode中如何创新建php文件,php – 如何在Visual Studio Code,UNIX中的所有文件中创建所有行结尾(EOL)?...
  13. 20145335郝昊《网络对抗》逆向及Bof基础实践
  14. google 浏览器使用的一些小技巧
  15. caffe上手:mnist学习
  16. 使用Adobe Fireworks CS6压图
  17. 数学建模多元分析实例
  18. 英语测试用什么软件有哪些,学习英语的软件哪个好 什么比较好用
  19. 工程师思维的核心 |《转向:用工程师思维解决商业难题》
  20. 适合iPhone13的蓝牙耳机音质比较好有哪些?音质好的蓝牙耳机推荐

热门文章

  1. 谈谈对数据库索引的了解—这些就很重要!!附相关高频面试题。
  2. 3500双休和4000单休,你选哪个?
  3. Elasticsearch 基于地理位置的搜索查询
  4. (转)阈值?阀值??
  5. MATLAB粒子群算法求解带充电站(桩)的电动车辆路径规划EVRP问题代码实例
  6. perror()函数
  7. 递推与递归 (区别)
  8. 微信网页授权的2种方式
  9. 周爱民先生力作《Delphi源代码分析》持续好评热卖中!!
  10. Centos7.6升级到Centos8.0