Add code for LED button with serial logging and "toggle" function.

This commit is contained in:
Alex Thomassen 2018-09-27 14:17:23 +02:00
parent 30e9f7d702
commit 5a1fec4c74
4 changed files with 72 additions and 1 deletions

View File

@ -1,4 +1,5 @@
{
"port": "COM7",
"board": "arduino:avr:uno"
"board": "arduino:avr:uno",
"output": "C:\\Temp"
}

View File

@ -0,0 +1,6 @@
{
"board": "arduino:avr:uno",
"port": "COM7",
"output": "C:\\Temp",
"sketch": "sketch_sep27a-LEDButton.ino"
}

View File

@ -0,0 +1,16 @@
{
"configurations": [
{
"name": "Win32",
"includePath": [
"C:\\Users\\Alex\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\**",
"C:\\Users\\Alex\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.6.21\\**"
],
"forcedInclude": [
"C:\\Users\\Alex\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.6.21\\cores\\arduino\\Arduino.h"
],
"intelliSenseMode": "msvc-x64"
}
],
"version": 4
}

View File

@ -0,0 +1,48 @@
int buttonPin = 2;
int ledPin = 13;
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
Serial.begin(9600);
}
int buttonState = 0;
int lastButtonState = 0;
int ledState = 0;
void loop()
{
buttonState = digitalRead(buttonPin);
/**
* "Toggle"-funksjon med LED.
*
* Gjør i praksis følgende:
* - Sjekker om knappen er trykt ned og i tillegg har blitt sluppet tidligere (for å unngå blinking av LED).
* - Dette gjøres ved å sjekke "lastButtonState"-variabelet som oppdateres senere i koden.
* - Setter "ledState" til det omvendte (HIGH/LOW) av det det var tidligere.
* - Serial.print av "LED state" (status).
* - Setter LED til HIGH/LOW for å slå av/.
*/
if (buttonState == HIGH && buttonState != lastButtonState) {
ledState = ledState == HIGH ? LOW : HIGH;
Serial.print("LED state: ");
Serial.println(ledState == HIGH ? "HIGH" : "LOW");
digitalWrite(ledPin, ledState);
}
/**
* Serial.print() "button state" oppdateringer
*
* - Sjekker om buttonState er forskjellig fra lastButtonState.
* - Oppdaterer lastButtonState og logger til Serial-konsoll.
*/
if (buttonState != lastButtonState) {
Serial.print("Button state changed: ");
Serial.println(buttonState == HIGH ? "HIGH" : "LOW");
lastButtonState = buttonState;
}
}