60 nap alatt Arduino #9 - Bemenet

A "60 nap alatt Arduino" tanfolyam házi feladatai és közvetlen témái
Válasz küldése
Avatar
Makula Norbert
Újonc
Újonc
Hozzászólások: 6
Csatlakozott: 2015. február 24. kedd, 8:17

60 nap alatt Arduino #9 - Bemenet

Hozzászólás Szerző: Makula Norbert »

Szerintetek mit ronthattam el? Megcsináltam a kapcsolást és hiába nyomom meg a gombot nem történik semmi. :( 123D Circuits alatt csináltam. Az Elektromanoid leírása alapján működött, de lassan aludt el.
http://www.elektromanoid.hu/ardu_3.html
Kép
A képet a Képfeltöltés.hu tárolja. http://www.kepfeltoltes.hu
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: 60 nap alatt Arduino #9 - Bemenet

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

Programkód?
Avatar
Makula Norbert
Újonc
Újonc
Hozzászólások: 6
Csatlakozott: 2015. február 24. kedd, 8:17

Re: 60 nap alatt Arduino #9 - Bemenet

Hozzászólás Szerző: Makula Norbert »

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

/*
  Nyomogomb
  Demonstracios program a nyomogomb - LED kapcsolathoz
  60 nap alatt Arduino tanfolyam
  (c) TavIR http://www.tavir.hu
 */
  
void setup(){
  pinMode(6, INPUT);
  // D6 labon kapcsolo, lab bemenet
  pinMode(7, OUTPUT);
  // D7 lab: LED
  digitalWrite(6, HIGH);
  // D6-on felhuzo bekapcsol
}
 
void loop() {
   digitalWrite(7, digitalRead(6));
   // a D6 jelszintje a D7-re kiirodik
}
Avatar
Makula Norbert
Újonc
Újonc
Hozzászólások: 6
Csatlakozott: 2015. február 24. kedd, 8:17

Re: 60 nap alatt Arduino #9 - Bemenet

Hozzászólás Szerző: Makula Norbert »

Ma megint kipróbáltam most működött amikor lenyomtam elaludt a led. :D :D
Köszönöm a segítséget!
Vincze01
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2015. június 17. szerda, 15:10

Re: 60 nap alatt Arduino #9 - Bemenet

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

Azt szeretném megkérdezni hogy ha a kapott áramkört kötöm be, tehát saját külső felhúzó ellenállást kötök be, akkor miért van szükség erre a sorra:
digitalWrite(6, HIGH);
Elvileg ugye ez kapcsolja be a belső felhúzó ellenállást. Viszont ha van külső akkor minek a belső?
Illetve miért nem ajánlatos a belsőt használni? Ha az ember összerak egy bonyolultabb áramkört akkor azért nem rossz ha nem foglalja a helyet jó pár fölös ellenállás.

Ez a teljes kód, de gondolom mindenki találkozott már vele :) :

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

void setup(){
  pinMode(6, INPUT);
  // D6 labon kapcsolo, lab bemenet
  pinMode(7, OUTPUT);
  // D7 lab: LED
  digitalWrite(6, HIGH);
  // D6-on felhuzo bekapcsol
}
 
void loop() {
   digitalWrite(7, digitalRead(6));
   // a D6 jelszintje a D7-re kiirodik
}
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: 60 nap alatt Arduino #9 - Bemenet

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

A tanfolyamban is ott van, de itt is:
http://tavir.hu/konyv-tipushiba-3-pullup-ellenallas
"De miért nem jó ez a megoldás?
Mert a belső felhúzó ellenállás értéke kb. 20 kohm. És ha hosszú vezetékkel csatlakozik a kapcsoló, mindenféle parazita jeleket képes a vezeték (mint antenna) összeszedni. Az AVR chipek új generációja, melyre az "A" végződés utal (pl. ATMega-8A), illetve a picopower technológia chipjei (pl. ATMega-328P) belső felhúzóellenállása 80...120 kohmos! Azaz még érzékenyebb lesz a bemenet."

A külső kell, a belső felhúzása ekkor elhagyható....
Korben Dallas
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2015. augusztus 17. hétfő, 20:51

Re: 60 nap alatt Arduino #9 - Bemenet

Hozzászólás Szerző: Korben Dallas »

nekem folyamatosan világít a LED és gombnyomásra alszik ki.
így kell működnie?
a programot a leckéből másoltam ki.
_jani_
DrótVégénSzéndarab
Hozzászólások: 28
Csatlakozott: 2019. február 26. kedd, 16:17

Re: 60 nap alatt Arduino #9 - Bemenet

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

Röviden, igen! Mert a PIN6 bemenet beolvasott állapotát írja ki a PIN7-es kimenetre.

A belső felhúzóellenállás bekapcsolására találtam egy makrót: INPUT_PULLUP -névvel.
Egyszerűbb vele dolgozni, de a program és hardver megértését a tanagyag jól szemlélteti.
Biztos fogok még új makrókkal találkozni amik jól használhatók lesznek.
De nem szaladnék ennyire előre, mert van még mit tanulni.
by _jani_ :wink:
csigetibor
Újonc
Újonc
Hozzászólások: 2
Csatlakozott: 2019. június 10. hétfő, 13:18

Re: 60 nap alatt Arduino #9 - Bemenet

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

Sziasztok!
Most kezdtem tanulgatni az ardunio programozást! 5 ledes futófény, oda vissza mindenfelé villog stb! Bekötöttem egy nyomógombot ahogy a lecke leírta! Működik ahogy kell! Viszont nem tudok rájönni, hogy alap állapotban ne világítson a led! A lecke szerint alap állapotban világít a led és a gomb lenyomásával elalszik! Én ezt meg szeretném fordítani, de nem bírok rájönni, hogy alap állapotba miért küld jelet a kivezetésen! Először a külső és belső ellenállásokat iktattam ki, kapcsoltam ki, be össze vissza minden kombinációba, majd rájöttem ,hogy ez eleve hülyeség, mert a kivezetés van feszültség alatt!
A "void setup" résznél van egy "digitalWrite(2, HIGH);" sor! Ezt gondoltam, hogy itt lesz a megoldás! Átírtam LOW-ra, aztán ki is töröltem az egész sort, de semmi nem változott!
Hol van a kutya elásva?
Avatar
Verjoz
SzínkódFestő
Hozzászólások: 99
Csatlakozott: 2018. március 13. kedd, 7:18

Re: 60 nap alatt Arduino #9 - Bemenet

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

A nyomógombokat kétféle képpen lehet bekötni! HIGH VAGY LOW !!
De ezt az arduino referenc taglalja részletesen. Látogass el oda!
De attól függetlenül hogy hogy kötötd be még a prog.ban tudod ugy kezelni hogy fordítva működjön.
Avatar
Verjoz
SzínkódFestő
Hozzászólások: 99
Csatlakozott: 2018. március 13. kedd, 7:18

Re: 60 nap alatt Arduino #9 - Bemenet

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

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


//PELDAKOD NYOMOGOMBOS LEDKAPCSOLO

int led=5;
int gomb=9;
void setup(){
pinMode(led,OUTPUT);
pinMode(gomb,INPUT);
digitalWrite(gomb,HIGH);
}
void setup(){
if(digitalRead(9)==HIGH){
delay(5);
digitalWrite(5,LOW);
}
else{digitalWrite(5,HIGH);}
}
csigetibor
Újonc
Újonc
Hozzászólások: 2
Csatlakozott: 2019. június 10. hétfő, 13:18

Re: 60 nap alatt Arduino #9 - Bemenet

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

Köszönöm Verjoz! Próbálom értelmezni is a leírtakat! De ha jól vettem észre a "void loop" helyett is "void setup"-ot írtál! :)
Köszi a weblap tippet! használni fogom!
Igen így most úgy működik ahogy elképzeltem! De a megértés miatt:

void setup(){
pinMode(6, INPUT);
// D6 labon kapcsolo, lab bemenet
pinMode(7, OUTPUT);
// D7 lab: LED
digitalWrite(6, HIGH);
// D6-on felhuzo bekapcsol
}

void loop() {
digitalWrite(7, digitalRead(6));
// a D6 jelszintje a D7-re kiirodik
}

Ez a program ami a tananyagban van! A tájékoztató jellegű sallangokat már felismerem! Természetesen a ki és bemeneteket módosítottam a saját bekötésemre! Itt mit kellene változtatni, hogy úgyan úgy működjön, mint amit küldtél? Jelenleg világít a led folyamatosan, a gomb nyomvatartásával pedig elalszik! a "digitalWrite(6, HIGH);" sort gondoltam hogy kell módosítani LOW-ra! De semmit nem változtat!
Ebben tudsz segíteni? Megérteni szeretném! Előre is köszi!
Avatar
Verjoz
SzínkódFestő
Hozzászólások: 99
Csatlakozott: 2018. március 13. kedd, 7:18

Re: 60 nap alatt Arduino #9 - Bemenet

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

Köszi a helyesbítést! Ilyen a figyelmetlenség részemről.

Az én kódom feltételt vizsgál! Egy elágazás a program lefutásában.
A tananyag meg egy fő ciklus ami mindíg teljesül és végrehajtva lefut.
Egyedüli megoldás hogy ugyanúgy működjön, a hardweres konfiguráció (bekötés) megváltoztatása.
X pin-100ohm-10kohm-gnd.
Az x pin a bemenet!
5v-nyomógomb-a 100ohmos és 10 k ellenállás közé bekötve.
A led szokásos modon!
Ez így magas állapoti kapcsolás.
A bemenetet lehúzod a gndre vagyis alapesetben low az állapota, majd mikor az 5v megérkezik high lesz.
Van magyar oldal is ami tud segíteni:ob121 re googléz rá.
Avatar
Verjoz
SzínkódFestő
Hozzászólások: 99
Csatlakozott: 2018. március 13. kedd, 7:18

Re: 60 nap alatt Arduino #9 - Bemenet

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

Jah és belső felhúzot kapcsold le.
Avatar
etwg
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2011. február 7. hétfő, 7:00

Re: 60 nap alatt Arduino #9 - Bemenet

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

Lusta voltam szétszedni a futofényt igy bele illesztettem a nyomogombot, amd a belsö LED-et kapcsolja (pin13). A kapcsolásra csak akkor kerülhet sor, ha lefut a futofény ciklusa.

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

//  CHASING LIGHT and a SWITCH
//  8 LEDs on Ports 2-9  and LED#13 - on board

 int unit=100;    //Speed

void setup() {

pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(13, OUTPUT);    // Internal LED
pinMode(12, INPUT);     // pushbutton
digitalWrite(12,HIGH);    //pull up resistors

}


void loop() {
for(int i=2; i<5; i++){   //run from 2-5
digitalWrite(i,HIGH); //turn on LED #i
digitalWrite(11-i,HIGH);  //turn on LED 11-#i
delay(unit);           //time for ON
digitalWrite(i,LOW);  //turn off LED #i 
digitalWrite(11-i,LOW);   //turn off LED 11-#i
delay(unit);
}

  for(int i=5; i>2; i--){   //run from 5-2  (reverse)
digitalWrite(i,HIGH); //turn on LED #i
digitalWrite(11-i,HIGH);  //turn on LED 11-#i
delay(unit);           //time for ON
digitalWrite(i,LOW);  //turn of LED #i
digitalWrite(11-i,LOW);  //turn of LED 11-#i
delay(unit);

digitalWrite(13,digitalRead(12));   //Read pin12, forward it to Pin13 to control the LED #13
}
}
Éljenek a vonatok!

http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Válasz küldése