 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
marko11 Član



Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 893 Aktiv.: 3.77 Kraj: Dobrepolje
|
Objavljeno: Čet Dec 24, 2020 9:38 pm Naslov sporočila: Tipka in Arduino |
|
|
Hi
Prvič, Vsem skupaj vesele Božične praznike.
Kako naj napišem program, da vsakič ko pritisnem Tipko prišteje samo eno število, tudi če držim dlje časa?
Sedaj mi prišteva dokler držim tipko.
Koda: |
void loop(){
tipkaStanje = digitalRead(tipkaPin);
if (tipkaStanje == HIGH){
xy = ++xy;
Serial.print("Stanje :");
Serial.println(xy);
}
}
|
|
|
Nazaj na vrh |
|
 |
mato1111 Član

Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 617 Aktiv.: 4.07 Kraj: Vrhnika
|
Objavljeno: Čet Dec 24, 2020 11:41 pm Naslov sporočila: |
|
|
Vsakic ko preberes stanje tipke si ga zapomni. V naslednjem branju novega primerjaj z prejsnjim.
V bistvu te zanima samo kdaj se zgodi prehod iz 0->1 oz. obratno.
Pa ne vsak cikel zanke brat tipke zaradi moznosti odskakovanja. Bo ok ce beres tipke vsakih 40-60ms. Ce pa imas na vhodu RC filter potem lahko to tudi izpustis. |
|
Nazaj na vrh |
|
 |
tlogar Član


Pridružen-a: Pon 23 Mar 2015 16:57 Prispevkov: 255 Aktiv.: 2.05
|
Objavljeno: Pet Dec 25, 2020 10:52 am Naslov sporočila: |
|
|
Tako kot je napisal mato11. V tem primeru, ko držiš tipko, ti v vsakem ciklu programa prišteje. Naredi samo ob prehodu. Na spletu boš sigurno kaj pametnega našel. |
|
Nazaj na vrh |
|
 |
tilz0R Član


Pridružen-a: Čet 31 Maj 2012 15:39 Prispevkov: 898 Aktiv.: 5.66 Kraj: Črnomelj
|
|
Nazaj na vrh |
|
 |
marko11 Član



Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 893 Aktiv.: 3.77 Kraj: Dobrepolje
|
Objavljeno: Pet Dec 25, 2020 9:36 pm Naslov sporočila: |
|
|
Hi
Našel sem kodo na internetu, ki deluje, hvala vsem.
Lp,
Koda: |
const int BUTTON_PIN = 14;
int lastState = LOW;
int currentState;
void setup(){
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop(){
currentState = digitalRead(BUTTON_PIN);
if(lastState == HIGH && currentState == LOW){
xy= ++xy;
Serial.print(" Tipka Pritisnjena : ");
Serial.println(xy);
}
else if(lastState == LOW && currentState == HIGH){
Serial.println("Tipka NI PRITISNJENA");
}
lastState = currentState;
}
|
|
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 491 dni
Powered by phpBB © 2001, 2005 phpBB Group
|