既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
+ [3.2linux运行代码](#32linux_167)
前言
今天折腾vim编辑器折腾了老久,我只是想实现在vim编辑器中可以复制代码到windows电脑下,方便我写博客,但是咋弄都搞不定,放弃了,还是用树莓派的系统来复制吧
关注本专栏,和我一起学习树莓派开发板30+经典实验!
C语言代码,0基础剖析!
- 还等什么😍心动不如行动!👉点我关注
- 本专栏代码仓库📝:Raspberry-practice
1.实验器材
- 树莓派开发板
- 40p软排线+T型转接板+面包板
- 振动传感器模块
- 双色LED模块
- 跳线一堆
上:双色LED模块;下:震动传感器模块
振动传感器模块和倾斜传感器模块很像,都是通过物理结构来判断当前的状态。而且它也有PWR-LED
和DO-LED
两个指示灯
2.实验原理
振动开关传感器用的是常闭型振动传感器,可用于跟踪振动触发作用,如防盗报警,地震报警和智能小车。与常开型振动传感器相比,常闭型振动传感器触发时间长,可以用于驱动继电器模块
该模块采用常开高灵敏度震动开关。开关在静止時为开路OFF状态,当受到外力碰触而达到相应震动力时,或移动速度达到适当离(偏)心力时,导电接脚会产生瞬间导通呈瞬间ON状态;当外力消失時,开关恢复为开路OFF状态。可用于各种震动触发作用,报盗报警,智能小车,电子积木等。传感器特设M3固定安装孔,调节方向与固定方便易用,使用宽电压LM393比较器,信号干净,波形好,驱动能力强,超过15mA,配可调精密电位器调节灵敏度。
在此实验中,将双色LED模块连接到Raspberry Pi作为指示作用。敲击或敲击振动传感器时,它将打开双色LED将闪烁红色。再次点击它,LED将变为绿色-每次敲击或敲击两种颜色之间交替闪烁。
2.1电路图
2.2接线图
树莓派 | T型转接板 | 振动开关 |
---|---|---|
GPIO 0 | GPIO 17 | Do |
5V | 5V | VCC |
GND | GND | GND |
树莓派 | T型转接板 | 双色LED |
---|---|---|
GPIO 1 | GPIO 18 | R(中间) |
GND | GND | GND(-) |
GPIO 2 | GPIO 27 | G(S) |
因为接口和倾斜开关一模一样,所以接线方式也是一样的
实物接线图这里就不放了,和倾斜开关不同的是,振动开关在接上后,两个指示灯都会亮起,振动该传感器,DO-LED
会闪动
3.代码示例
老样子,给出C语言的代码示例
这里的wiringPi库函数在上两次的实验中都有使用过,详情请查看实验6里的解释
#include <wiringPi.h>
#include <stdio.h>
#define makerobo\_VibratePin 0 // 震动传感器
#define makerobo\_Rpin 1 // 红色LED PIN
#define makerobo\_Gpin 2 // 绿色LED PIN
int clb_tmp = 0;//全局变量用于比较
//双色LED控制函数
void double\_colorLED(int color)
{
pinMode(makerobo_Rpin, OUTPUT); //设置为输出模式
pinMode(makerobo_Gpin, OUTPUT); //设置为输出模式
if (0 == color) //点亮红色LED灯
{
digitalWrite(makerobo_Rpin, HIGH);
digitalWrite(makerobo_Gpin, LOW);
}
else if (1 == color) //点亮绿色LED灯
{
digitalWrite(makerobo_Rpin, LOW);
digitalWrite(makerobo_Gpin, HIGH);
}
else
printf("Makerobo Double color LED Error\n"); // 双色LED错误
}
// 打印信息,打印出振动传感器的状态
void makerobo\_Print(int x)
{
if (x != clb_tmp)
{
if (x == 0)
printf("...Makerobo ON\n");
if (x == 1)
printf("Makerobo OFF..\n");
clb_tmp = x;//复位x
}
}
int main()
{
int clb_status = 0; //状态值
int clb_tmp = 0; //比较值
int clb_value = 1; //当前值
//wiringPi初始化连接失败时,将消息打印到屏幕
if(wiringPiSetup() == -1){
printf("setup wiringPi failed !");
return 1;
}
//振动传感器Pin设置为输入模式
![img](https://img-blog.csdnimg.cn/img_convert/c9b5b30d1eb5639d3439177537eaf6e3.png)
![img](https://img-blog.csdnimg.cn/img_convert/2d06497d6a4189943a1d705b9520bd5e.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**
适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**