树莓派外设开发接口文档参考:树莓派wiringPi库详解 - lulipro - 博客园
WiringPi库(Linux动态库:so 静态库:.a)
1.树莓派的接口: 驱动
IO口:input output 对主控来说
Input:人体,烟雾,火焰,震动等
Output:继电器,蜂鸣器
PWM:电机调速,灯光调明亮度
串口uart
IIC
SPI
IIS
其他特定硬件的接口:flash
C51,stm32,arduino,wemosD1:没有操作系统(Linux)
2.树莓派控制继电器
( 注意:查看时,将树莓派的USB接口面对自己,这样看才是正确的。)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<wiringPi.h>
#define SWI 26
int main()
{
if(wiringPiSetup() == -1)
{
printf("硬件接口初始化失败\n");
perror("");
}
char str[32]={0};
pinMode(SWI,OUTPUT);
digitalWrite(SWI,HIGH);
while(1)
{
printf("请输入on或off\n");
scanf("%s",str);
if(strcmp(str,"on") == 0)
{
digitalWrite(SWI,LOW);
}
else if(strcmp(str,"off") == 0)
{
digitalWrite(SWI,HIGH);
}
else
{
printf("输入出错...\n");
}
}
return 0;
}
通过gcc demo1.c -lwiringPi来进行编译,进而运行
通过on/off控制继电器的开关:on为闭合,off为断开。下图是通过继电器的闭合断开控制锁的一个应用:
3.继电器组硬件控制开发
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<wiringPi.h>
#define SWI1 26
#define SWI2 27
#define SWI3 28
#define SWI4 29
int main()
{
if(wiringPiSetup() == -1)
{
printf("硬件接口初始化失败\n");
perror("");
}
char str[32]={0};
pinMode(SWI1,OUTPUT);
pinMode(SWI2,OUTPUT);
pinMode(SWI3,OUTPUT);
pinMode(SWI4,OUTPUT);
digitalWrite(SWI1,HIGH);
digitalWrite(SWI2,HIGH);
digitalWrite(SWI3,HIGH);
digitalWrite(SWI4,HIGH);
while(1)
{
printf("请输入on或off\n");
scanf("%s",str);
if(strcmp(str,"1on") == 0)
{
digitalWrite(SWI1,LOW);
}
else if(strcmp(str,"1off") == 0)
{
digitalWrite(SWI1,HIGH);
}
else if(strcmp(str,"2on") == 0)
{
digitalWrite(SWI2,LOW);
}
else if(strcmp(str,"2off") == 0)
{
digitalWrite(SWI2,HIGH);
}
else if(strcmp(str,"3on") == 0)
{
digitalWrite(SWI3,LOW);
}
else if(strcmp(str,"3off") == 0)
{
digitalWrite(SWI3,HIGH);
}
else if(strcmp(str,"4on") == 0)
{
digitalWrite(SWI4,LOW);
}
else if(strcmp(str,"4off") == 0)
{
digitalWrite(SWI4,HIGH);
}
else if(strcmp(str,"allon") == 0)
{
digitalWrite(SWI1,LOW);
digitalWrite(SWI2,LOW);
digitalWrite(SWI3,LOW);
digitalWrite(SWI4,LOW);
}
else if(strcmp(str,"alloff") == 0)
{
digitalWrite(SWI1,HIGH);
digitalWrite(SWI2,HIGH);
digitalWrite(SWI3,HIGH);
digitalWrite(SWI4,HIGH);
}
else
{
printf("输入出错...\n");
}
}
return 0;
}