This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//create variables for pins | |
const int buttonPin = 2; | |
const int ledPin = 12; | |
const int fadeLed = 11; | |
const int potPin = 0; | |
const int lightPin = 1; | |
//timecode | |
unsigned long previousMillis = 0; | |
const long interval = 10; | |
// LED fading variables | |
boolean fadeUp = true; | |
int fadeLevel = 0; | |
//LED blinking variables | |
int ledState = LOW; | |
//button variables | |
int buttonState = 0; | |
boolean pressed = false; | |
//analog sensor variables | |
int lightVar = 0; | |
int potVar = 0; | |
void setup() { | |
// set up pins | |
pinMode(ledPin, OUTPUT); | |
pinMode(buttonPin, INPUT); | |
pinMode(fadeLed, OUTPUT); | |
Serial.begin(9600); | |
} | |
void loop() { | |
// read the state of the pushbutton value: | |
buttonState = digitalRead(buttonPin); | |
if (buttonState == HIGH && pressed == false ) { //if it is pressed now but was not pressed last loop | |
delay(5); | |
// Serial.println("BANG!"); | |
// toggle lED: | |
if (ledState == LOW) { | |
ledState = HIGH; | |
} | |
else { | |
ledState = LOW; | |
} | |
pressed = true; //change this so we know the button was pressed | |
} | |
if (buttonState == LOW && pressed == true ) { //if the button is no longer pressed but was pressed last loop | |
delay(5); | |
pressed = false; //change this so we know it is no longer pressed | |
} | |
unsigned long currentMillis = millis(); | |
//check sensors | |
potVar = analogRead(potPin); | |
lightVar = analogRead(lightPin); | |
//logic | |
if (lightVar <= potVar ){ | |
fadeUp = true; | |
} | |
else { | |
fadeUp = false;} | |
//write to the LED pins | |
if (currentMillis – previousMillis >= interval) { | |
previousMillis = currentMillis; | |
if (fadeUp == true ) { | |
if (fadeLevel != 255) fadeLevel++; | |
} else { | |
if (fadeLevel != 0) fadeLevel –; | |
} | |
} | |
//Serial.println(fadeLevel/4); | |
digitalWrite(ledPin, ledState); | |
analogWrite(fadeLed,fadeLevel); | |
Serial.println(lightVar); | |
int sensorReading = analogRead(A0); | |
// print the sensor reading so you know its range | |
Serial.println(sensorReading); | |
// map the analog input range (in this case, 400 – 1000 from the photoresistor) | |
// to the output pitch range (120 – 1500Hz) | |
// change the minimum and maximum input numbers below | |
// depending on the range your sensor's giving: | |
int thisPitch = map(sensorReading, 400, 700, 620, 800); | |
// play the pitch: | |
tone(9, thisPitch, 1000); | |
delay(1); // delay in between reads for stability | |
} |
https://portfolio.newschool.edu/remia021/files/2015/09/IMG_1946-swg08k.mov