XFCE_AND_HYPERLAND
This commit is contained in:
+87
@@ -0,0 +1,87 @@
|
||||
/*
|
||||
Conditionals - while statement
|
||||
|
||||
This example demonstrates the use of while() statements.
|
||||
|
||||
While the pushbutton is pressed, the sketch runs the calibration routine.
|
||||
The sensor readings during the while loop define the minimum and maximum of
|
||||
expected values from the photoresistor.
|
||||
|
||||
This is a variation on the calibrate example.
|
||||
|
||||
The circuit:
|
||||
- photoresistor connected from +5V to analog in pin 0
|
||||
- 10 kilohm resistor connected from ground to analog in pin 0
|
||||
- LED connected from digital pin 9 to ground through 220 ohm resistor
|
||||
- pushbutton attached from pin 2 to +5V
|
||||
- 10 kilohm resistor attached from pin 2 to ground
|
||||
|
||||
created 17 Jan 2009
|
||||
modified 30 Aug 2011
|
||||
by Tom Igoe
|
||||
modified 20 Jan 2017
|
||||
by Arturo Guadalupi
|
||||
|
||||
This example code is in the public domain.
|
||||
|
||||
https://www.arduino.cc/en/Tutorial/BuiltInExamples/WhileStatementConditional
|
||||
*/
|
||||
|
||||
|
||||
// These constants won't change:
|
||||
const int sensorPin = A0; // pin that the sensor is attached to
|
||||
const int ledPin = 9; // pin that the LED is attached to
|
||||
const int indicatorLedPin = 13; // pin that the built-in LED is attached to
|
||||
const int buttonPin = 2; // pin that the button is attached to
|
||||
|
||||
|
||||
// These variables will change:
|
||||
int sensorMin = 1023; // minimum sensor value
|
||||
int sensorMax = 0; // maximum sensor value
|
||||
int sensorValue = 0; // the sensor value
|
||||
|
||||
|
||||
void setup() {
|
||||
// set the LED pins as outputs and the switch pin as input:
|
||||
pinMode(indicatorLedPin, OUTPUT);
|
||||
pinMode(ledPin, OUTPUT);
|
||||
pinMode(buttonPin, INPUT);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// while the button is pressed, take calibration readings:
|
||||
while (digitalRead(buttonPin) == HIGH) {
|
||||
calibrate();
|
||||
}
|
||||
// signal the end of the calibration period
|
||||
digitalWrite(indicatorLedPin, LOW);
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
void calibrate() {
|
||||
// turn on the indicator LED to indicate that calibration is happening:
|
||||
digitalWrite(indicatorLedPin, HIGH);
|
||||
// read the sensor:
|
||||
sensorValue = analogRead(sensorPin);
|
||||
|
||||
// record the maximum sensor value
|
||||
if (sensorValue > sensorMax) {
|
||||
sensorMax = sensorValue;
|
||||
}
|
||||
|
||||
// record the minimum sensor value
|
||||
if (sensorValue < sensorMin) {
|
||||
sensorMin = sensorValue;
|
||||
}
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
How to use a while loop to calibrate a sensor while a button is being read.
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 59 KiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
Reference in New Issue
Block a user