Common anode LED version of my Smart Nightlight program. For use at the Adrift faculty development activity.
Fork of Nightlight2 by
This is my smart nightlight demo code. This version is for common anode LEDs (uses negative logic).
main.cpp@1:4647b43d61ef, 2017-03-27 (annotated)
- Committer:
- CSTritt
- Date:
- Mon Mar 27 14:29:20 2017 +0000
- Revision:
- 1:4647b43d61ef
- Parent:
- 0:8ed2f4a2a2fe
- Child:
- 2:5682a72277ed
- Child:
- 3:7448a1637704
Added reading and sending of digital state.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
CSTritt | 0:8ed2f4a2a2fe | 1 | /* |
CSTritt | 0:8ed2f4a2a2fe | 2 | Project: analogRead_Overlaods |
CSTritt | 0:8ed2f4a2a2fe | 3 | File: main.cpp |
CSTritt | 0:8ed2f4a2a2fe | 4 | |
CSTritt | 0:8ed2f4a2a2fe | 5 | Reads from analog input, streams ASCII text to std serial using printf, and |
CSTritt | 0:8ed2f4a2a2fe | 6 | lights onboard LED. Also demonstrates use of floating point literal sufix to |
CSTritt | 0:8ed2f4a2a2fe | 7 | eliminate warning and int constants for HIGH and LOW. This version uses |
CSTritt | 1:4647b43d61ef | 8 | overloaded operators and sends LED state read from DigitalOut object. |
CSTritt | 0:8ed2f4a2a2fe | 9 | |
CSTritt | 0:8ed2f4a2a2fe | 10 | Written by: Dr. C. S. Tritt |
CSTritt | 0:8ed2f4a2a2fe | 11 | Created: 3/26/17 (v. 1.0) |
CSTritt | 0:8ed2f4a2a2fe | 12 | |
CSTritt | 0:8ed2f4a2a2fe | 13 | */ |
CSTritt | 0:8ed2f4a2a2fe | 14 | #include "mbed.h" |
CSTritt | 0:8ed2f4a2a2fe | 15 | |
CSTritt | 0:8ed2f4a2a2fe | 16 | const int HIGH = 1; // Optional, but makes code more readable. |
CSTritt | 0:8ed2f4a2a2fe | 17 | const int LOW = 0; // Optional, but makes code more readable. |
CSTritt | 0:8ed2f4a2a2fe | 18 | |
CSTritt | 0:8ed2f4a2a2fe | 19 | AnalogIn analog_value(A0); |
CSTritt | 0:8ed2f4a2a2fe | 20 | |
CSTritt | 0:8ed2f4a2a2fe | 21 | DigitalOut led(LED1); |
CSTritt | 0:8ed2f4a2a2fe | 22 | |
CSTritt | 0:8ed2f4a2a2fe | 23 | int main() { |
CSTritt | 0:8ed2f4a2a2fe | 24 | float value; // Value to be read and sent to serial port. |
CSTritt | 0:8ed2f4a2a2fe | 25 | |
CSTritt | 0:8ed2f4a2a2fe | 26 | printf("\nAnalogIn example\n"); |
CSTritt | 0:8ed2f4a2a2fe | 27 | |
CSTritt | 0:8ed2f4a2a2fe | 28 | while(true) { |
CSTritt | 0:8ed2f4a2a2fe | 29 | value = analog_value; // Read the analog input value (0 to 1) |
CSTritt | 0:8ed2f4a2a2fe | 30 | printf("Value = %f\n", value); // Send value as text via serial port. |
CSTritt | 0:8ed2f4a2a2fe | 31 | if (value > 0.5f) { // Activate built-in LED. The f is optional. |
CSTritt | 0:8ed2f4a2a2fe | 32 | led = HIGH; |
CSTritt | 0:8ed2f4a2a2fe | 33 | } |
CSTritt | 0:8ed2f4a2a2fe | 34 | else { |
CSTritt | 0:8ed2f4a2a2fe | 35 | led = LOW; |
CSTritt | 0:8ed2f4a2a2fe | 36 | } |
CSTritt | 1:4647b43d61ef | 37 | printf("LED = %d\n", (int) led); // Send LED state as serial text. |
CSTritt | 0:8ed2f4a2a2fe | 38 | wait(0.25); // 250 ms |
CSTritt | 0:8ed2f4a2a2fe | 39 | } |
CSTritt | 0:8ed2f4a2a2fe | 40 | } |