Gordons Projects

--> Projects Top-Level GIT

Minor update to make sure it's all OK with wiringPi v2
[halloweenPi] / ledPatterns.c
1
2 /*
3  * Halloween Pi
4  **************
5  * ledPatterns.c:
6  *      A little seasonal project for the MagPi magazine - however
7  *      it demonstrates the use of software PWM to control a pair
8  *      of RGB LEDs and reading from a PIR sensor
9  *
10  *      Copyright (c) Gordon Henderson, 2012.
11  *********************************************************************************
12  */
13
14 #include <stdlib.h>
15
16 #include <wiringPi.h>
17
18 #include "ledControl.h"
19 #include "ledPatterns.h"
20
21
22 /*
23  * allOff:
24  *      Set all LEDs off
25  *********************************************************************************
26  */
27
28 void allOff (void)
29 {
30   setRgbLed (0,   0,   0,   0) ;
31   setRgbLed (1,   0,   0,   0) ;
32 }
33
34
35 /*
36  * randomLeds:
37  *      Flicker them at random for the given time
38  *********************************************************************************
39  */
40
41 void randomLeds (int howLong)
42 {
43   int endTime = millis () + howLong ;
44
45   while (millis () < endTime)
46   {
47     setRgbLed (0, rand () % 101, rand () % 101, rand () % 101) ;
48     setRgbLed (1, rand () % 101, rand () % 101, rand () % 101) ;
49     delay (50) ;
50   }
51
52   allOff () ;  
53 }
54
55
56 /*
57  * flickerRY:
58  *********************************************************************************
59  */
60
61 void flickerRY (int howLong)
62 {
63   int endTime = millis () + howLong ;
64
65   while (millis () < endTime)
66   {
67     setRgbLed (0, 100,  50,   0) ;
68     setRgbLed (1, 100,  50,   0) ;
69     delay (200) ;
70
71     setRgbLed (0, 100,  50,   0) ;
72     setRgbLed (1, 100,  50,   0) ;
73     delay (50) ;
74   }
75   
76   allOff () ;  
77 }
78
79 /*
80  * purplePulse:
81  *********************************************************************************
82  */
83
84 void purplePulse (int howLong)
85 {
86   int endTime = millis () + howLong ;
87   int i ;
88
89   while (millis () < endTime)
90   {
91     for (i = 0 ; i <= 100 ; ++i)
92     {
93       setRgbLed (0, i, 0, i) ;
94       setRgbLed (1, i, 0, i) ;
95       delay (20) ;
96     }
97     for (i = 100 ; i > 0 ; --i)
98     {
99       setRgbLed (0, i, 0, i) ;
100       setRgbLed (1, i, 0, i) ;
101       delay (20) ;
102     }
103   }
104     
105   allOff () ;  
106 }