Last active
November 11, 2020 20:10
-
-
Save shfitz/c12e2e895574790c3fda152fc2587f9c to your computer and use it in GitHub Desktop.
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
// These constants won't change: | |
const int sensorPin = A7; // pin that the sensor is attached to | |
const int ledPin = 2; // pin that the LED is attached to | |
// variables: | |
int sensorValue = 0; // the sensor value | |
int sensorMin = 1023; // minimum sensor value | |
int sensorMax = 0; // maximum sensor value | |
void setup() { | |
// open the serial port for communication | |
Serial.begin(9600); | |
while(!Serial){ | |
;; // do nothing until the serial port opens | |
} | |
Serial.println("calibrating ......"); | |
// turn on LED to signal the start of the calibration period: | |
pinMode(13, OUTPUT); | |
digitalWrite(13, HIGH); | |
// calibrate during the first ten seconds | |
while (millis() < 10000) { | |
sensorValue = analogRead(sensorPin); | |
// record the maximum sensor value | |
if (sensorValue > sensorMax) { | |
sensorMax = sensorValue; | |
} | |
// record the minimum sensor value | |
if (sensorValue < sensorMin) { | |
sensorMin = sensorValue; | |
} | |
} | |
// signal the end of the calibration period | |
digitalWrite(13, LOW); | |
// print out some diagnostics to the serial monitor | |
Serial.print("sensorMin: "); | |
Serial.print(sensorMin); | |
Serial.print(", sensorMax: "); | |
Serial.println(sensorMax); | |
} | |
void loop() { | |
// read the sensor: | |
sensorValue = analogRead(sensorPin); | |
// apply the calibration to the sensor reading | |
sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255); | |
// in case the sensor value is outside the range seen during calibration | |
sensorValue = constrain(sensorValue, 0, 255); | |
// fade the LED using the calibrated value: | |
analogWrite(ledPin, sensorValue); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment