반응형
센서 이미지
연결도
소스코드 1 - red, green, blue 순차적으로 켜고 끄기
#include <signal.h> //Signal 사용 헤더파일
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h> //exit() 사용 헤더파일
#include <wiringPi.h>
#define RGBLEDPOWER 24 //BCM_GPIO 19
#define RED 7 //27
#define GREEN 3 //28
#define BLUE 4 //29
void sig_handler(int signo); // SIGINT 사용 마지막 종료 함수
int main (void)
{
signal(SIGINT, (void *)sig_handler); //시그널 핸들러 함수
if (wiringPiSetup () == -1)
{
fprintf(stdout, "Unable to start wiringPi: %s\n", strerror(errno));
return 1 ;
}
pinMode(RGBLEDPOWER, OUTPUT);
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
int i;
for (i =0; i<10 ;i++)
{
digitalWrite(RGBLEDPOWER, 1);
printf("R E D \n");
digitalWrite(RED, 0);
digitalWrite(GREEN, 1);
digitalWrite(BLUE, 1);
delay(1000);
printf("G R E E N \n");
digitalWrite(RED, 1);
digitalWrite(GREEN, 0);
digitalWrite(BLUE, 1);
delay(1000);
printf("B L U E \n");
digitalWrite(RED, 1);
digitalWrite(GREEN, 1);
digitalWrite(BLUE, 0);
delay(1000);
}
return 0 ;
}
void sig_handler(int signo)
{
printf("process stop\n");
digitalWrite(RED, 1);
digitalWrite(GREEN, 1);
digitalWrite(BLUE, 1);
digitalWrite(RGBLEDPOWER, 0); //Off
exit(0);
}
소스코드 2 - cyan - yellow - magenta 순차 점등
#include <signal.h> //Signal 사용 헤더파일
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h> //exit() 사용 헤더파일
#include <wiringPi.h>
#define RED 7 //27
#define GREEN 3 //28
#define BLUE 4 //29
void sig_handler(int signo); // SIGINT 사용 마지막 종료 함수
int main (void)
{
signal(SIGINT, (void *)sig_handler); //시그널 핸들러 함수
if (wiringPiSetup () == -1)
{
fprintf(stdout, "Unable to start wiringPi: %s\n", strerror(errno));
return 1 ;
}
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
int i;
for (i =0; i<10 ;i++)
{
printf("cyan \n");
digitalWrite(RED, 1);
digitalWrite(GREEN, 0);
digitalWrite(BLUE, 0);
delay(1000);
printf("yellow \n");
digitalWrite(RED, 0);
digitalWrite(GREEN, 0);
digitalWrite(BLUE, 1);
delay(1000);
printf("magenta \n");
digitalWrite(RED, 0);
digitalWrite(GREEN, 1);
digitalWrite(BLUE, 0);
delay(1000);
}
digitalWrite(GREEN, 0);
return 0 ;
}
void sig_handler(int signo)
{
printf("process stop\n");
digitalWrite(RED, 1);
digitalWrite(GREEN, 1);
digitalWrite(BLUE, 1);
exit(0);
}
반응형
'라즈베리파이' 카테고리의 다른 글
라즈베리파이와 MCP3208 ADC 컨버터 사용하기 - 회로와 소스코드 (0) | 2019.10.16 |
---|---|
라즈베리파이3 B+ 스텝모터 컨트롤 with Python (0) | 2019.10.12 |
라즈베리파이3 B+ 부저, 스피커 음악 with python (0) | 2019.10.12 |
라즈베리파이3 B+ MCP3208 조이스틱 구현 with C (0) | 2019.10.12 |
라즈베리파이3 B+ 초음파 센서 HC-SR04 테스트 C코드 (0) | 2019.10.11 |