/* Uporaba knjiznice BOUNCE2.h
#include <Bounce2.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 7, 6); // RS E D4..D7
#define btnGreen 3
#define btnRed 4
#define btnYellow 5
#define btnBlue 2
int stevec = 0;
Bounce2::Button tipka1;
Bounce2::Button tipka2;
Bounce2::Button tipka3;
Bounce2::Button tipka4;
void setup() {
tipka1.attach(btnGreen, INPUT_PULLUP);
tipka2.attach(btnRed, INPUT_PULLUP);
tipka3.attach(btnYellow, INPUT_PULLUP);
tipka4.attach(btnBlue, INPUT_PULLUP);
tipka1.interval(10);
tipka2.interval(10);
tipka3.interval(10);
tipka4.interval(10);
tipka1.setPressedState(LOW);
tipka2.setPressedState(LOW);
tipka3.setPressedState(LOW);
tipka4.setPressedState(LOW);
Serial.begin(115200);
lcd.begin(16, 2);
}
void loop() {
tipka1.update();
tipka2.update();
tipka3.update();
tipka4.update();
if (tipka1.pressed()) {
stevec++;
Serial.println(stevec);
}
if (tipka2.pressed()) {
stevec--;
Serial.println(stevec);
}
if (tipka3.pressed()) {
stevec = 0;
Serial.println(stevec);
}
if (tipka3.pressed() || tipka2.pressed() || tipka1.pressed()) {
lcd.clear();
}
lcd.setCursor(0, 0);
lcd.print(stevec);
if (tipka4.pressed()) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Stevec: ");
lcd.setCursor(0, 1);
lcd.print(stevec);
}
}
*/
/*
#include <Bounce2.h>
#define btnGreen 3
#define btnRed 4
int stevec;
Bounce2::Button tipka1, tipka2 = Bounce2::Button();
void setup(){
tipka1.attach(btnGreen, INPUT_PULLUP);
tipka2.attach(btnRed, INPUT_PULLUP);
tipka1.interval(10);
tipka2.interval(10);
tipka1.setPressedState(LOW);
tipka2.setPressedState(LOW);
Serial.begin(115200);
}
void loop(){
tipka1.update();
tipka2.update();
if(tipka1.pressed()){
stevec++;
Serial.println(stevec);
}
if(tipka2.pressed()){
stevec--;
Serial.println(stevec);
}
}
*/
/*
#define ledPin 8
#define tipka 2
unsigned long zadnjiOdboj = 0;
int zakasnitevOdboja = 200;
int stevec, counter;
volatile bool stanje = LOW;
void setup(){
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
pinMode(tipka, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(tipka), ISR_tipka, FALLING);
}
void loop(){
digitalWrite(ledPin, stanje);
}
void ISR_tipka(){
if ((millis() - zadnjiOdboj) > zakasnitevOdboja){
stanje = !stanje;
zadnjiOdboj = millis();
stevec ++;
Serial.println("Števec: ");Serial.println(stevec);
}
counter++;
Serial.print("counter: ");Serial.println(counter);
}
*/
/*#define ledPin 8
#define tipka 2
volatile bool stanje = LOW;
void setup(){
pinMode(ledPin, OUTPUT);
pinMode(tipka, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(tipka), ISR_tipka, CHANGE);
}
void loop(){
digitalWrite(ledPin, stanje);
}
void ISR_tipka(){
stanje = !stanje;
}
*/
/*Primer uporabe zunanje prekinitve
#define ledPin 8
#define tipka 2
volatile bool stanje = LOW;
void setup(){
pinMode(ledPin, OUTPUT);
pinMode(tipka, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(tipka), ISR_tipka, CHANGE);
}
void loop(){
digitalWrite(ledPin, stanje);
}
void ISR_tipka(){
stanje = !stanje;
}
*/
/* Preprečitev odskakovanja kontaktov s funkcijo millis
#define tipka 4
bool zadnjeStanje = HIGH;
int stevec;
unsigned long zadnjiOdboj = 0;
int zakasnitevOdboja = 200;
void setup(){
Serial.begin(115200);
pinMode(tipka, INPUT_PULLUP);
}
void loop(){
bool stanje = digitalRead(tipka);
if(stanje != zadnjeStanje && (millis() -zadnjiOdboj) > zakasnitevOdboja){
zadnjiOdboj = millis();
zadnjeStanje = stanje;
if(zadnjeStanje = HIGH){
stevec++;
Serial.println(stevec);
}
}
}
*/
/* Stevec odskakovanje kontakta
#define tipka 4
int stevec;
bool zadnjeStanje = HIGH;
void setup() {
Serial.begin(115200);
pinMode(tipka, INPUT_PULLUP);
}
void loop() {
bool stanje = digitalRead(tipka);
if(zadnjeStanje != stanje){
stevec++;
zadnjeStanje = stanje;
Serial.println(stevec);
}
}
*/