本人学习笔记,如有错误请指正
一、函数
-
wiringPi库初始化函数:int wiringPiSetup();
返回值:
成功:执行状态;
失败:失败返回-1
注:当使用这个函数初始化树莓派引脚时,程序使用的是wiringPi引脚标号表,引脚编号为0~16需要root权限。
-
GPIO控制函数:void pinMode(int pin,int mode);
pin : 配置的引脚
mode : 指定引脚的I/O模式
mode可取的值:
INPUT:输入
OUTPUT:输出
PWM_OUTPUT : PWM输出
GPIO_CLOCK :时钟
作用:配置引脚的I/O模式
注:
只有wiringPi引脚编号下的1脚(BCM下的18脚)支持PWM输出;
只有wiringPi编号下的7(BCM下的4号)支持GPIO_CLOCK输出。
3、输出 引脚的电平值:
void digitalWrite(int pin,int vslue);
pin : 控制的引脚
value: 引脚输出的电平值
HIGH : 高电平
LOW :低电平
作用:让对一个已经配置为输出模式的引脚输出指定的电平信号
二、硬件接线:
树莓派7脚 ———————————— 继电器IN1
树莓派gnd ———————————— 继电器 gnd
树莓派 3v ———————————— 继电器 vcc
三、程序实现:
/*
* 树莓派控制继电器
*/
#include <wiringPi.h>
#include <stdio.h>
#define relay 7
int main()
{
int cmd;
if(wiringPiSetup() == -1) //初始化wiringPi库
{
printf("wiringPi init error!!!\n");
}
pinMode(relay,OUTPUT); //配置引脚的I/O模式
digitalWrite(relay,HIGH); //初始化继电器
while(1)
{
printf("输入0继电器动作:\n");
getchar(); //吸收回车
scanf("%d",&cmd);
if(cmd == 0)
{
digitalWrite(relay,LOW);
}
else if(cmd == 1)
{
digitalWrite(relay,HIGH);
}
else
{
printf("命令错误!\n");
}
}
return 0;
}