Nem tudom a nyomógomb állapotát lekérdezni valami miatt (mind a 16 kivezetést lepróbáltam) Arduino 1.0.1 használok, AVRDuino R3 lapkával
Az alabbi program például 8 szor villantja fel 3 mp-ként a 13-as kivezetésen lévő LED-et. Ha a bepin változó értéke 2, akkor persze kétszer, ha a bepin-t 3-ra állítom, akkor 3-szor stb. - függetlenül attól, nyomva van e a panel szélén lévő nyomógomb vagy sem.
Kód: Egész kijelölése
// Nyomogomb kereso
byte p13=13;
byte bepin=8; // <-- itt allitgatom a labakat 1-16-ig termeszetesen a 13 kivetelevel
// villanto fuggveny
void ledVillant(byte villszam) {
int vilagit=150;
int szunet=125;
digitalWrite(p13,LOW); // 13-as LED lekapcsolása mindentol ftlenul
for (byte szaml=0; szaml<villszam; szaml++) {
digitalWrite(p13,HIGH);
delay(vilagit);
digitalWrite(p13,LOW);
delay(szunet);
}
}
//nyomogomb allapot lekerdezo fuggveny
boolean pbNyom(byte pin) {
int szunet=11;
boolean nyomva1=LOW;
boolean nyomva2=LOW;
boolean ertek=false;
nyomva1=digitalRead(pin);
delay(szunet);
nyomva2=digitalRead(pin);
delay(szunet);
// if (nyomva1==HIGH && nyomva2==HIGH && digitalRead(pin)==HIGH) {
if (digitalRead(pin)==HIGH) {
delay(szunet);
if (digitalRead(pin)==HIGH) {
delay(szunet);
if (digitalRead(pin)==HIGH) {
ertek = true;
}
}
}
return ertek;
}
void setup() {
// a 13-as lab a kimenet LED
pinMode(p13,OUTPUT);
// bemenetre állítjuk az x-dik lábat
pinMode(bepin,INPUT); // bemenetre allitasa az adott labnak
digitalWrite(bepin,HIGH); // pull-up
}
void loop(){
if (pbNyom(bepin)==true) {
ledVillant(bepin);
}
delay(2000);
}
