Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@7:a03687963ad4, 2021-09-18 (annotated)
- Committer:
- CSTritt
- Date:
- Sat Sep 18 01:45:02 2021 +0000
- Revision:
- 7:a03687963ad4
- Parent:
- 6:dcc4031025a6
Minor comment changes.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
CSTritt | 1:fdb8ecdf954f | 1 | /* |
CSTritt | 7:a03687963ad4 | 2 | Serial2RGB main by C. S. Tritt, Last revised 9/15/21 (v. 1.3) |
CSTritt | 5:c849e3c4a5f0 | 3 | |
CSTritt | 5:c849e3c4a5f0 | 4 | Toggles RGB LED junctions in response to serial input. Note input is case |
CSTritt | 5:c849e3c4a5f0 | 5 | sensive and known "commands" are r (toggle red), g (toggle green) and b |
CSTritt | 5:c849e3c4a5f0 | 6 | toggle blue). Input (including CR/LF is echoed. |
CSTritt | 2:f91fc3b8d8f7 | 7 | |
CSTritt | 6:dcc4031025a6 | 8 | Mbed 5 or earlier (due to Serial, BufferedSerial changes). |
CSTritt | 6:dcc4031025a6 | 9 | |
CSTritt | 2:f91fc3b8d8f7 | 10 | Suggested wiring... |
CSTritt | 5:c849e3c4a5f0 | 11 | |
CSTritt | 2:f91fc3b8d8f7 | 12 | Common Anode LED (active low) |
CSTritt | 5:c849e3c4a5f0 | 13 | |
CSTritt | 5:c849e3c4a5f0 | 14 | /-- 680 kΩ -- D13 (red) |
CSTritt | 5:c849e3c4a5f0 | 15 | + 3.3 to 5.0 V ----LED<--- 680 Ω -- D14 (green) |
CSTritt | 5:c849e3c4a5f0 | 16 | \-- 1 kΩ -- D15 (blue) |
CSTritt | 5:c849e3c4a5f0 | 17 | |
CSTritt | 2:f91fc3b8d8f7 | 18 | Common Cathode LED (active high) |
CSTritt | 5:c849e3c4a5f0 | 19 | |
CSTritt | 5:c849e3c4a5f0 | 20 | /-- 680 Ω -- D13 (red) |
CSTritt | 5:c849e3c4a5f0 | 21 | GND ----LED<--- 680 Ω -- D14 (green) |
CSTritt | 5:c849e3c4a5f0 | 22 | \-- 1 kΩ -- D15 (blue) |
CSTritt | 5:c849e3c4a5f0 | 23 | |
CSTritt | 1:fdb8ecdf954f | 24 | */ |
CSTritt | 5:c849e3c4a5f0 | 25 | |
CSTritt | 7:a03687963ad4 | 26 | // Include mbed API/Library declarations. |
CSTritt | 7:a03687963ad4 | 27 | #include "mbed.h" |
CSTritt | 7:a03687963ad4 | 28 | |
CSTritt | 7:a03687963ad4 | 29 | // Construct resources (these are global). |
CSTritt | 5:c849e3c4a5f0 | 30 | |
CSTritt | 4:43ce9b92ae68 | 31 | DigitalOut RedLED(D13); // Arduino Digital pin 13 on Nucleos. |
CSTritt | 4:43ce9b92ae68 | 32 | DigitalOut GrnLED(D14); // Arduino Digital pin 14. |
CSTritt | 4:43ce9b92ae68 | 33 | DigitalOut BluLED(D15); // Arduino Digital pin 15. |
CSTritt | 1:fdb8ecdf954f | 34 | |
CSTritt | 1:fdb8ecdf954f | 35 | Serial pc(USBTX, USBRX); // Default settings are 9600 Baud, 8-N-1. |
mab5449 | 0:8d318218bac1 | 36 | |
CSTritt | 5:c849e3c4a5f0 | 37 | int main() |
CSTritt | 5:c849e3c4a5f0 | 38 | { |
CSTritt | 5:c849e3c4a5f0 | 39 | |
CSTritt | 7:a03687963ad4 | 40 | RedLED = 0; // Set pins to known state. This may be the default. |
CSTritt | 1:fdb8ecdf954f | 41 | GrnLED = 0; |
CSTritt | 1:fdb8ecdf954f | 42 | BluLED = 0; |
CSTritt | 7:a03687963ad4 | 43 | char letter; // Declare a local variable to hold recieved characters. |
CSTritt | 5:c849e3c4a5f0 | 44 | |
CSTritt | 5:c849e3c4a5f0 | 45 | while(true) { // Main (infinite) loop. |
CSTritt | 5:c849e3c4a5f0 | 46 | if (pc.readable()) { // Is there a character waiting? If so, |
CSTritt | 5:c849e3c4a5f0 | 47 | letter = pc.getc(); // Get it. |
CSTritt | 7:a03687963ad4 | 48 | pc.putc(letter); // Echo it to the terminal. |
CSTritt | 5:c849e3c4a5f0 | 49 | if (letter == 'r') { // Respond to known letters, ignore others. |
CSTritt | 5:c849e3c4a5f0 | 50 | RedLED = !RedLED; // Toggle red. |
CSTritt | 5:c849e3c4a5f0 | 51 | } else if (letter == 'g') { |
CSTritt | 5:c849e3c4a5f0 | 52 | GrnLED = !GrnLED; // Toggle green. |
CSTritt | 5:c849e3c4a5f0 | 53 | } else if (letter == 'b') { |
CSTritt | 5:c849e3c4a5f0 | 54 | BluLED = !BluLED; // Toggle blue. |
CSTritt | 1:fdb8ecdf954f | 55 | } |
mab5449 | 0:8d318218bac1 | 56 | } |
mab5449 | 0:8d318218bac1 | 57 | } |
CSTritt | 3:cbacf69dbed5 | 58 | } |