Gordons Projects

--> Projects Top-Level GIT

Minor update to make sure it's all OK with wiringPi v2
[halloweenPi] / ledControl.c
1
2 /*
3  * Halloween Pi:
4  *      A little seasonal project for the MagPi magazine - however
5  *      it demonstrates the use of software PWM to control a pair
6  *      of RGB LEDs and reading from a PIR sensor
7  *
8  *      Copyright (c) Gordon Henderson, 2012.
9  *********************************************************************************
10  */
11
12 #include <stdio.h>
13 #include <string.h>
14 #include <errno.h>
15
16 #include <wiringPi.h>
17 #include <softPwm.h>
18
19 #include "ledControl.h"
20
21
22 // A structure to hold information about the pins used in the LEDs
23
24 struct rgbLedStruct
25 {
26   int redPin, greenPin, bluePin ;
27 } ;
28
29 // An array of the above structure to store data about our RGB LEDs
30
31 static struct rgbLedStruct rgbLeds [2] ;
32
33
34 /*
35  * createRgbLed:
36  *      Define an RGB LED - pin numbers, etc. and fire up the softPWM
37  *      handlers for it.
38  *********************************************************************************
39  */
40
41 void createRgbLed (int led, int red, int green, int blue)
42 {
43   softPwmCreate (red,   0, 100) ;
44   softPwmCreate (green, 0, 100) ;
45   softPwmCreate (blue,  0, 100) ;
46
47   rgbLeds [led].redPin   = red ;
48   rgbLeds [led].greenPin = green ;
49   rgbLeds [led].bluePin  = blue ;
50 }
51
52
53 /*
54  * setRgbLed:
55  *      Send the given values to our LED
56  *********************************************************************************
57  */
58
59 void setRgbLed (int led, int red, int green, int blue)
60 {
61   softPwmWrite (rgbLeds [led].redPin,   red) ;
62   softPwmWrite (rgbLeds [led].greenPin, green) ;
63   softPwmWrite (rgbLeds [led].bluePin,  blue) ;
64 }