Instructables

Light and Water Reactive Raincoat

Step 3: Code

Picture of Code
I wrote two programs, one to control the light sensor and LEDs and one to control the water sensor and speaker.  I based to code off the tutorials found here for the light sensor and speaker tutorials.

Light Sensor Code:
int LEDPin = 13;

int CDSPin = 0;

void setup(){
  pinMode(LEDPin, OUTPUT);
  Serial.begin(9600);
}

void loop(){
  int lightLevel;
  lightLevel = analogRead(CDSPin);
  Serial.println(lightLevel);
  delay(100);
  if (lightLevel < 300)
  {
    digitalWrite (LEDPin, HIGH);
  }
  else if (lightLevel > 300)
  {digitalWrite (LEDPin, LOW);
  }
}


Water Sensor Code:

int waterSensor = 2;

int ledPin = 13;

int speakerPin = 9;

int length = 15; // the number of notes
char notes[] = "gggefffd"; // a space represents a rest
int beats[] = { 
  1, 1, 1, 3, 1, 1, 1, 3, };
int tempo = 300;

void playTone(int tone, int duration) {
  for (long i = 0; i < duration * 1000L; i += tone * 2) {
    digitalWrite(speakerPin, HIGH);
    delayMicroseconds(tone);
    digitalWrite(speakerPin, LOW);
    delayMicroseconds(tone);
  }
}

void playNote(char note, int duration) {
  char names[] = { 
    'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
  int tones[] = { 
    1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };

  // play the tone corresponding to the note name
  for (int i = 0; i < 8; i++) {
    if (names[i] == note) {
      playTone(tones[i], duration);
    }
  }
}

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
  pinMode(speakerPin, OUTPUT);
}

void loop() {
  int sensorData;
  sensorData = analogRead(waterSensor);
  Serial.println(sensorData);
  if (sensorData < 50){
    playTone('b', 100);
  }
  else if (sensorData > 51){
    ;
  }
}



 


 
Remove these adsRemove these ads by Signing Up
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!