// števec odskakovanja kontaktov
/*
#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);
}
}*/
/*
// preprečetitev 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);
}
}
}
*/
// Primer uporabe zunanje prekinitve
/*
#define ledPin 8
#define tipka 2
volatile bool stanje = LOW; // volatile = program pogleda v RAM stanje spremenljivke ne pa v predpmnilnik
void setup() {
Serial.begin(115200);
pinMode(tipka, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(tipka), ISR_tipka, CHANGE);
}
void loop() {
digitalWrite(ledPin, stanje);
}
void ISR_tipka() {
stanje = !stanje;
}
*/
/*
// Primer uporabe zunanje prekinitve z upoarbo millis()
#define ledPin 8
#define tipka 2
unsigned long zadnjiOdboj = 0;
int zakasnitevOdboja = 200;
int stevec, counter;
volatile bool stanje = LOW; // volatile = program pogleda v RAM stanje spremenljivke ne pa v predpmnilnik
void setup() {
Serial.begin(115200);
pinMode(tipka, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(tipka), ISR_tipka, CHANGE);
}
void loop() {
digitalWrite(ledPin, stanje);
}
void ISR_tipka() {
if ((millis() - zadnjiOdboj) > zakasnitevOdboja) {
stanje = !stanje;
zadnjiOdboj = millis();
stevec++;
Serial.print("Števec: ");Serial.println(stevec);
}
counter++;
Serial.print("Counter: ");Serial.println(counter);
}
*/
/*
// Uporaba knjižnice Bounce2.h
#include <Bounce2.h>
#define BUTTON_GREEN_PIN 4
#define BUTTON_RED_PIN 3
int stevec;
Bounce2::Button tipka1, tipka2 = Bounce2::Button();
void setup() {
tipka1.attach( BUTTON_GREEN_PIN, INPUT_PULLUP);
tipka2.attach( BUTTON_RED_PIN, 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);
}
}
*/
/*
tipka1 = stevec ++
tipka2 = stevec --
tipka3 = stevec 0
tipka4 = zunanji interupt + millis()
LCD display = prikazuje stevec
*/
/*
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,10,9,8,7);
#include <Bounce2.h>
#define ledPin 13
#define BUTTON_BLUE_PIN 3
#define BUTTON_GREEN_PIN 5
#define BUTTON_RED_PIN 4
#define BUTTON_BLACK_PIN 6
unsigned long zadnjiOdboj = 0;
int zakasnitevOdboja = 200;
int stevec, counter;
volatile bool stanje = LOW; // volatile = program pogleda v RAM stanje spremenljivke ne pa v predpmnilnik
Bounce2::Button tipka1, tipka2, tipka3 = Bounce2::Button();
void setup() {
Serial.begin(115200);
pinMode(BUTTON_BLUE_PIN, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
attachInterrupt(digitalPinToInterrupt(BUTTON_BLUE_PIN), ISR_tipka, CHANGE);
tipka1.attach( BUTTON_GREEN_PIN, INPUT_PULLUP);
tipka2.attach( BUTTON_RED_PIN, INPUT_PULLUP);
tipka3.attach( BUTTON_BLACK_PIN, INPUT_PULLUP);
tipka1.interval(10);
tipka2.interval(10);
tipka3.interval(10);
tipka1.setPressedState(LOW);
tipka2.setPressedState(LOW);
tipka3.setPressedState(LOW);
}
void loop() {
tipka1.update();
tipka2.update();
tipka3.update();
if(tipka1.pressed()) {
stevec++;
Serial.println(stevec);
}
if(tipka2.pressed()) {
stevec--;
Serial.println(stevec);
}
if(tipka3.pressed()) {
stevec = 0;
Serial.println(stevec);
}
digitalWrite(ledPin, stanje);
}
void ISR_tipka() {
stanje = !stanje;
}*/
// prejšnja + LCD + millis()
#include <Bounce2.h>
#include <LiquidCrystal.h>
#include <Bounce2.h>
#define ledPin 13
#define BUTTON_BLUE_PIN 3
#define BUTTON_GREEN_PIN 5
#define BUTTON_RED_PIN 4
#define BUTTON_BLACK_PIN 6
LiquidCrystal lcd(13, 12, 11, 10, 8, 7);
unsigned long zadnjiOdboj = 0;
int zakasnitevOdboja = 200;
int stevec;
volatile bool stanje = LOW;
Bounce2::Button tipka1, tipka2, tipka3 = Bounce2::Button();
void setup() {
Serial.begin(115200);
pinMode(BUTTON_BLUE_PIN, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
attachInterrupt(digitalPinToInterrupt(BUTTON_BLUE_PIN), ISR_tipka, CHANGE);
tipka1.attach( BUTTON_GREEN_PIN, INPUT_PULLUP);
tipka2.attach( BUTTON_RED_PIN, INPUT_PULLUP);
tipka3.attach( BUTTON_BLACK_PIN, INPUT_PULLUP);
tipka1.interval(10);
tipka2.interval(10);
tipka3.interval(10);
tipka1.setPressedState(LOW);
tipka2.setPressedState(LOW);
tipka3.setPressedState(LOW);
lcd.begin(16, 2);
}
void loop() {
tipka1.update();
tipka2.update();
tipka3.update();
if(tipka1.pressed()) {
stevec++;
Serial.println(stevec);
}
if(tipka2.pressed()) {
stevec--;
Serial.println(stevec);
}
if(tipka3.pressed()) {
stevec = 0;
Serial.println(stevec);
}
digitalWrite(ledPin, stanje);
lcd.setCursor(0, 0);
lcd.print("Stevec: ");
lcd.print(stevec);
lcd.setCursor(0,1);
if(stanje == HIGH){
lcd.print("Led ON");
}
else{
lcd.print("Led OF");
}
}
void ISR_tipka(){
if((millis() - zadnjiOdboj) > zakasnitevOdboja){
stanje = !stanje;
zadnjiOdboj = millis();
}
}
/*
#include <Bounce2.h>
#include <LiquidCrystal.h>
#define btnGreen 2
#define btnRed 4
#define btnBlue 5
#define btnBlack 3
#define ledPin 9
LiquidCrystal lcd(13, 12, 11, 10, 8, 7);
unsigned long zadnjiOdboj = 0;
int zakasnitevOdboja = 200;
int stevec;
volatile bool stanje = LOW;
Bounce2::Button tipka1, tipka2, tipka3 = Bounce2::Button();
void setup() {
Serial.begin(115200);
tipka1.attach(btnGreen, INPUT_PULLUP);
tipka2.attach(btnRed, INPUT_PULLUP);
tipka3.attach(btnBlue, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
pinMode(btnBlack, INPUT_PULLUP);
tipka1.interval(10);
tipka2.interval(10);
tipka3.interval(10);
tipka1.setPressedState(LOW);
tipka2.setPressedState(LOW);
tipka3.setPressedState(LOW);
attachInterrupt(digitalPinToInterrupt(btnBlack), ISR_tipka, FALLING);
lcd.begin(16, 2);
}
void loop() {
tipka1.update();
tipka2.update();
tipka3.update();
if (tipka1.pressed()) {
lcd.clear();
stevec++;
Serial.println(stevec);
}
if (tipka2.pressed()) {
stevec--;
Serial.println(stevec);
}
if (tipka3.pressed()) {
lcd.clear();
stevec = 0;
Serial.println(stevec);
}
digitalWrite(ledPin, stanje);
lcd.setCursor(0, 0);
lcd.print("Stevec: ");
lcd.print(stevec);
lcd.setCursor(0,1);
if(stanje == HIGH){
lcd.print("Led ON");
}
else{
lcd.print("Led OF");
}
}
void ISR_tipka(){
if((millis() - zadnjiOdboj) > zakasnitevOdboja){
stanje = !stanje;
zadnjiOdboj = millis();
}
}*/
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
led1:A
led1:C
r1:1
r1:2
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r
btn4:1.l
btn4:2.l
btn4:1.r
btn4:2.r
lcd1:VSS
lcd1:VDD
lcd1:V0
lcd1:RS
lcd1:RW
lcd1:E
lcd1:D0
lcd1:D1
lcd1:D2
lcd1:D3
lcd1:D4
lcd1:D5
lcd1:D6
lcd1:D7
lcd1:A
lcd1:K
r2:1
r2:2