|
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: 866 Aktiv.: 3.90 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: 611 Aktiv.: 4.46 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: 186 Aktiv.: 1.69
|
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.: 6.24 Kraj: Črnomelj
|
|
Nazaj na vrh |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.90 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: 48 dni
Powered by phpBB © 2001, 2005 phpBB Group
|