Code
This project is designed to make a water lamp. First turn on the first LED, then turn off it. Then turn on the
second LED, and then turn off it....... Until the last LED is turned on, then is turned off. And repeats the process
to achieve the effect of flowing water light.
C Code 3.1.1 LightWater
First observe the project result, and then analyze the code.
1. Use cd command to enter 03.1.1_LightWater directory of C code.
cd ~/Freenove_Ultimate_Starter_Kit_for_Raspberry_Pi/Code/C_Code/03.1.1_LightWater
2. Use following command to compile “LightWater.c” and generate executable file “LightWater”.
gcc LightWater.c -o LightWater -lwiringPi
3. Then run the generated file “LightWater”.
sudo ./LightWater
After the program is executed, you will see that LEDBar Graph starts with the flowing water way to be turned
on from left to right, and then from right to left.
The following is the program code:
#include <wiringPi.h>
#include <stdio.h>
#define leds 10
int pins[leds] = {0,1,2,3,4,5,6,8,9,10};
void led_on(int n)//make led_n on
{
digitalWrite(n, LOW);
}
void led_off(int n)//make led_n off
{
digitalWrite(n, HIGH);
}
int main(void)
{
int i;
printf("Program is starting ... \n");
if(wiringPiSetup() == -1){ //when initialize wiring failed,print message to screen
printf("setup wiringPi failed !");
return 1;
}
for(i=0;i<leds;i++){ //make leds pins' mode is output
pinMode(pins[i], OUTPUT);
}
while(1){
for(i=0;i<leds;i++){ //make led on from left to right