//activity 4 - Interact with the Serial Monitor int btn1 = 6; // button attached to pin 3 int led1 = 11;// LED 1 on pin 11 int led2 = 10;// LED 2 on pin 10 char val; // value of character received from Serial Monitor int bt1Val = 0; // start with button NOT pressed long lastBt1 = millis(); long btThresh = 100; void setup() { pinMode (btn1, INPUT); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); Serial.begin(9600); // open communications between Arduino and Serial // Monitor at 9600 bits-per-second digitalWrite(led1, LOW); // make sure both LEDs are OFF digitalWrite(led2, LOW); } void loop() { if (Serial.available()) { // if there is data from the Serial Monitor //available (ie. a character sent) val = Serial.read(); // read a byte of data switch (val) { // do an action based on the character typed (val) case '1': // if a '1' received digitalWrite(led1, HIGH); // turn LED1 ON Serial.println("LED 1 ON"); break; case '2': // if a '2' received digitalWrite(led2, HIGH); // turn LED2 ON Serial.println("LED 2 ON"); break; case '3': // if a '3' received, cycle LEDs Serial.println("Cycle LEDs"); for (int i = 1; i <= 4; i++) { // cycle each LED ON/OFF 4 times digitalWrite(led1, HIGH); delay(80); digitalWrite(led1, LOW); delay(80); digitalWrite(led2, HIGH); delay(80); digitalWrite(led2, LOW); delay(80); } break; case '4': // if a '4' received, turn BOTH LEDs ON Serial.println("BOTH ON"); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); break; case '0': // if a '0' received, turn BOTH LEDs OFF digitalWrite(led1, LOW); digitalWrite(led2, LOW); Serial.println("LEDs OFF"); break; default: // disregard all other data sent from Serial Monitor break; } } bt1Val = digitalRead(btn1); // get the current state of the button pin if (millis() - lastBt1 > btThresh) { // if it's been at least 100 milliseconds since //last button pin check // filters out multiple button pin reads // (like debouncing) if (bt1Val == HIGH) { // if button is pressed Serial.println("clicked!"); lastBt1 = millis(); // reset lastBt1 to the current time to be ready //for next click } } Serial.print(bt1Val); Serial.print("\t"); // ‘\t’ is a TAB feed. Spaces out values across the line Serial.print("Last button clicked time:"); Serial.print("\t"); Serial.println(lastBt1); delay(150); // slow down sketch for easier viewing on screen }