今天的实验需要两位常驻嘉宾!
它们就是PCF8591
和双色LED!
文章目录
- 1.实验器材
- 2.实验原理
-
- 2.1基本原理
- 2.2接线图
- 3.实验效果
-
- 3.1代码示例
- 3.2实验效果
- 结语
1.实验器材
上:电位计传感器;下:双色LED
2.实验原理
2.1基本原理
电位计是一种用于测量电路中电势(电压)的仪器。通过电流计将电阻滑动线的部分已知电压与未知电压进行比较。调整电位计的滑动触点或游标。然后将检流计短时间连接到滑动触点和未知电压之间,观察检流计的挠度,调整滑动接头,直到检流计不再从零偏差。
此时,检流计不再从未知源中吸收电流,电压的振幅值可以从滑动触点的位置计算。
又称电位器POT,是可变电阻器。它们可以通过简单地改变头部顶部的旋钮来提供可变电阻。它可以根据两个主要参数进行分类。一个是电阻(R-ohms)另一个是功率本身(P-Watts)额定值。
在本实验中,PCF读取电位计的模拟值,并将值输出到双色LED。
将电位器引脚(电位器上的OUT管脚)连接PCF8591的引脚AINO。将双色LED引脚R或引脚G连接到PCF8591的引脚AOUT,以观察LED的变化。
2.2接线图
有了前两次接线的经验,这次只需要复制。
树莓派 | T型转接板 | PCF8591 |
---|---|---|
SDA | SDA | SDA |
SCL | SCL | SCL |
5V | 5V | VCC |
GND | GND | GND |
电位计 | T型转接板 | PCF8591 |
---|---|---|
OUT | * | AIN 0 |
VCC | 5v | VCC |
GND | GND | GND |
双色LED | T型转接板 | PCF8591 |
---|---|---|
R(中间) | * | AOUT |
GND(-) | GND | GND |
G(S) | * | * |
实物图一如既往的乱,哈哈哈
3.实验效果
3.1代码示例
使用本实验,改变双色以接收电位计的信号LED亮度
///电位器模块实验 #include <stdio.h> #include <wiringPi.h> #include <pcf8591.h> #define makerobo_PCF 120 // 基础管脚120 // 主函数 int main () {
int pcf_value ; // 定义变量存储AIN的输入值 wiringPiSetup () ; // 调用初始化函数 // 设置基本引脚120pcf8591,地址0x48 pcf8591Setup (makerobo_PCF, 0x48) ; while(1) // 无限循环 {
pcf_value = analogRead (makerobo_PCF + 0) ;
// 获取AIN0上的值,读取电位器模拟量值;
printf("Potentiometer Value: %d\n", pcf_value);
// 打印出该值
analogWrite (makerobo_PCF + 0, pcf_value) ;
// 控制AOUT输出电平控制LED灯
delay (200) ; // 延时200ms
}
return 0 ;
}
这里先用Read函数读取电位计的值,然后再用Write函数写入到PCF8591
,它用AOUT输出到双色LED,来控制它的亮度
3.2实验效果
如果你看过实验12的博客的话,你应该还记得,PCF8591上也有一个电位计,他也能实现本次实验的效果。
但不同的是,本次实验使用的是单独的电位计模块,调节更加方便,不需要使用螺丝刀
运行程序,屏幕上会打印出电位计接收到的值,通过调节旋钮,值在0-255
之间波动
效果如图,还是很明显的
结语
本篇博客到此结束,感谢你的阅读