Nyomógomb az EXT1 panelen melyik pin?

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Válasz küldése
Avatar
tomkocsi
Újonc
Újonc
Hozzászólások: 2
Csatlakozott: 2012. június 21. csütörtök, 6:00

Nyomógomb az EXT1 panelen melyik pin?

Hozzászólás Szerző: tomkocsi »

Meg tudja valaki mondani, hogy a tanfolyamhoz (is) készült Ext1 shield panelen a nyomógomb pin száma mi?

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);
}  
Tamás
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Hozzászólás Szerző: SzLacus »

Szia!
A D3-ra az adatlap utolsó oldalán talált rajz alapján. Ha hazaérek, megnézem a valóságban is.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Hülye kérdés:
Bonyolultabb programmal nem lehetne?

Kód: Egész kijelölése

/*
  Nyomogomb
  Demonstracios program a nyomogomb - LED kapcsolathoz
  "60 nap alatt arduino" tanfolyam része
  (c) TavIR http://avr.tavir.hu
 */
  
void setup(){
  pinMode(3, INPUT);       // Input switch
  pinMode(13, OUTPUT);      // Output LED
  digitalWrite(3, HIGH);   //Pull-up
}

void loop() {
   digitalWrite(13, digitalRead(3));
}
Avatar
tomkocsi
Újonc
Újonc
Hozzászólások: 2
Csatlakozott: 2012. június 21. csütörtök, 6:00

Hozzászólás Szerző: tomkocsi »

Köszönöm szépen, hogy megnézted!

A kód átalakított kód, az eredeti program lepróbálta mind a 14 lábat bemenetként a 13-as kivételével úgy, hogy ha a az adott lábon bemeneti jelet észlelt, akkor annyit villantott a 13-as pin led, ahányadik lábon a bemenetet észlelte - miközben végig nyomva tartottam a gombot. Ez a módszer nem vezetett eredményre, mert függetlenül attól, be volt-e nyomva a gomb vagy nem, minden láb esetében volt villanás a ciklus során, de ez egy másik téma már.

A kód arra is jó volt, hogy lássam, működnek a függvényhívások, tehát ebből a szempontból szándékosan is volt bonyolult.
Tamás
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Ok. Csak az nem jött át (nekem), hogy HW tesztnek vagy SW tesztnek indult :) .
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Hozzászólás Szerző: SzLacus »

Na de mi lett a teszt eredménye? Hagy tanuljunk belőle. Megtaláltad miért nem működött a kereső programod?
Válasz küldése