树莓派:外设开发编程,控制继电器

树莓派外设开发接口文档参考

wiringPi(特定平台,特定功能接口) 库(Linux 动态库 .so   静态库.a)

API      printf   是c 的标准库

1、树莓派的接口

(所谓的外设开发编程就是我们说的接口)

io口:  input          output          对主控芯片来说

input相关的模块: 人体(传感器),火焰,振动等

Output相关的模块:继电器   ,蜂鸣器

 (实现某些控制)

PWM:电机调速,灯光调明亮度

语音识别模块,液晶屏

(比如项目中定死了,就用树莓派,你买了一个屏幕是SPI的,那你就要用SPI的协议,去写树莓派的代码,让他跟液晶屏调试起来

如果你买的语音模块是串口的,同样的,要用树莓派的串口编程,与这个语音模块配合起来)

串口 uart

IIC

SPI

IIS

其他特定硬件的接口:flash..

Nanopi:Linux

S3c2410,2440 6410

Tiny210 tiny 4412

海思方案,瑞星微方案,移远方案

c51,STM32,Arduino,WemosD1(纯逻辑的开发):没有OS(Linux)

2、树莓派的接口函数

如何检查树莓派有没有wiringPI?

这就是装了wiringPi库,你没装的话,他会提示指令不认识

你要用别人编好的piringPI库,要加个-l

 注意看这里

相关的代码

 我们里面先什么也不写

 我们克隆一下这个窗口

出现这样的情况是因为我们在窗口一打开了这个文件 

O是以只读的方式打开 ,E是可以编辑它  ,R重新加载 ,Q退出 ,A 放弃

 原因是ls -a 

 解决方案一:把前面的窗口关上

解决方案二:删掉隐藏文件

然后我们继续编辑

 运行

1、树莓派控制继电器

 接线正确的话红灯会亮起

(ucc连接3.3v,GND连接0v)

他是一个可编程的电子开关,io口控制才会吸铁派片

Gpio既能输入,也能输出,是通用的

现在我想做一件事情,键盘输入1 导通,键盘输入0断开

记得里面判断一下

连接的是7口,如何把7口设置成输出口呢?

先调用硬件初始化函数

还有GPIO的控制

这个PinMode是引脚的模式,有输入模式INPUT,和输出模式OUTPUT

 导通开关继电器赋值一个低电平就会导通,如何才能赋值低电平呢?

digitalWrite

高电平就断开了

 

代码如下 

 这里写cc也可以

(因为gcc 的软连接就是面向cc的)

运行一下

 默认情况下它就亮了,就绿了

 

 我们现在输入个0 ,看能不能关掉

结果 

我们想让他能一直玩

用while(1)的时候,cmd需要重新归位

修改一下,让继电器上来不通

执行有时候蹦了

 原因是回车的问题

用getchar();吸收回车

 运行结果

 然后我们再来一下代码优化

代码中的7是不是很难看,可读性差

我们可以用define SWITCHER 7

 思路,main函数一进来做wiringPi库的初始化

然后引脚要做初始化,因为引脚既有输出功能,也有输入功能,我们把他配置成输出的功能

为了让继电器一上电不要导通电器,来了一个高电平

循环的时候,你不给它10 它容易一直都是1,记得getchar()吸收一下回车符

2、继电器组硬件控制开发

连接成功后会有微弱的光

scanf 取地址符号去掉,是因为数组名就是个地址

scanf里面用%s,因为字符串

scanf之前都要memset初始化一下

这里注意是sizeof,而不是strlen

我们先控制一个

 运行结果

 说明scanf还是有一些bug的

用gets会提示你危险慎用(没办法不过也能用)

 运行一下

 继电器组的灯

同样的逻辑,我们可以做其他的灯

 

 

 运行结果

 继电器的灯光

可以再来个一键关闭,开启

 

运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值