Egyszerű megoldások, egyszerű problémákra.
-
Digitalfish
- DrótVégénSzéndarab
- Hozzászólások: 26
- Csatlakozott: 2013. január 15. kedd, 23:22
Egyszerű megoldások, egyszerű problémákra.
Köszöntök mindenkit a fórumon és köszönet a felületért ahol jelen lehetek és tanulhatok !
Ezt a topicot azért nyitottam, mert a 60 napos tananyagból nekem sok minden nem derült ki és kérdéseim lennének amiket itt nyilvánosan tennék fel vagy tehetnénk fel. Alapvetően a tananyag üteméhez , szerkezetéhez kapcsolódóak a kérdések.
Azért is vágtam bele az "AVR-ezésbe" mert diszkrét elektronikai környezettel sok feladat csak bonyolultan oldható meg.
Remélem nem hiába nyitottam ezt a topicot, sokaknak fog segíteni rajtam kívül is.
Full kezdőként legnagyobb problémám, az utasításkészlet ismeretének a hiánya. Tényleg ez hol lelhető fel?
Az első gyakorlati leckénél a villogónál felmerült, hogyan lehetne megoldani azt, hogy a villogó lefult 1, 2, 3, -x, meghatározott ciklust és utánna megáll logikai magas, vagy logikai alacsony szinten?
Hogy néz ez ki programilag?
Ezt a topicot azért nyitottam, mert a 60 napos tananyagból nekem sok minden nem derült ki és kérdéseim lennének amiket itt nyilvánosan tennék fel vagy tehetnénk fel. Alapvetően a tananyag üteméhez , szerkezetéhez kapcsolódóak a kérdések.
Azért is vágtam bele az "AVR-ezésbe" mert diszkrét elektronikai környezettel sok feladat csak bonyolultan oldható meg.
Remélem nem hiába nyitottam ezt a topicot, sokaknak fog segíteni rajtam kívül is.
Full kezdőként legnagyobb problémám, az utasításkészlet ismeretének a hiánya. Tényleg ez hol lelhető fel?
Az első gyakorlati leckénél a villogónál felmerült, hogyan lehetne megoldani azt, hogy a villogó lefult 1, 2, 3, -x, meghatározott ciklust és utánna megáll logikai magas, vagy logikai alacsony szinten?
Hogy néz ez ki programilag?
Re: Egyszerű megoldások, egyszerű problémákra.
Hányadik leckénél jársz a 60 naposon?
A ciklus valahol 6-8 körül benne van....
Zanzakód:
setup()
{for 1...5
{villog}
digitalwrite H
}
loop()
{ures}
A ciklus valahol 6-8 körül benne van....
Zanzakód:
setup()
{for 1...5
{villog}
digitalwrite H
}
loop()
{ures}
Re: Egyszerű megoldások, egyszerű problémákra.
Utasítások:
Arduino -> Felső menü -> Súgó -> Referencia
Arduino -> Felső menü -> Súgó -> Referencia
-
Digitalfish
- DrótVégénSzéndarab
- Hozzászólások: 26
- Csatlakozott: 2013. január 15. kedd, 23:22
Re: Egyszerű megoldások, egyszerű problémákra.
Effektíve az első gyakorlati leckénél tartok
Még csak most lett meg a hardwerem. Nah jó töltögettem fel LCD hez progikat meg átírtam a programban lévő szöveget, meg elértem, hogy adott szót betűnként írjon ki egymás után. De pl a második sort nem bírtam működésre.
Szóval ennyi a hatalmas gyakorlatom
void setup() {
pinMode(5, OUTPUT);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
delay(500);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
delay(500);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
delay(500);
digitalWrite(5, LOW);
}
void loop() { }
Valami effélét sikerült összehoznom
Szóval ennyi a hatalmas gyakorlatom
void setup() {
pinMode(5, OUTPUT);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
delay(500);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
delay(500);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
delay(500);
digitalWrite(5, LOW);
}
void loop() { }
Valami effélét sikerült összehoznom
-
Digitalfish
- DrótVégénSzéndarab
- Hozzászólások: 26
- Csatlakozott: 2013. január 15. kedd, 23:22
Re: Egyszerű megoldások, egyszerű problémákra.
Továbblépve ez három kimenetet állít egymás után magas szintre ( mondjuk egy HW-t lépcsőzetesen éleszt fel ) Ehhez kapcsolódna majd a következő kérdésem
void setup() {
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
digitalWrite(5, HIGH);
delay(1000);
digitalWrite(6, HIGH);
delay(1000);
digitalWrite(7, HIGH);
}
void loop() { }
Hogyan néz ki a program szerkezet ha egy nyomógombot vagy inkább kontaktot is bele akarunk vonni a folyamatba? Például az első(5, ) pin magas szintre kerül, de a második és harmadik kimenet (6, 7, ) pin csak akkor kerül magas állapotba ha ez a kontakt zárt és célszerüen alacsony szinten van egy bemenetnek megjelölt pin (a bemenet PULLUP ellenállása be van kapcsolva, ezt húzza alacsony szintre egy kontaktus )
Másik ehhez kapcsolódó kérdésem, a leckékben a nyomógombos példánál a "digitalRead" utasítás hatására egy kimenet másolja (követi) egy megadott bemenet állapotát. Kérdésem, hogyan lehet azt elérni, hogy kövesse a bemenet állapotát egy kijelölt kimenet de invertálva? Azaz fordított logikai állapotot vegyen fel?
void setup() {
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
digitalWrite(5, HIGH);
delay(1000);
digitalWrite(6, HIGH);
delay(1000);
digitalWrite(7, HIGH);
}
void loop() { }
Hogyan néz ki a program szerkezet ha egy nyomógombot vagy inkább kontaktot is bele akarunk vonni a folyamatba? Például az első(5, ) pin magas szintre kerül, de a második és harmadik kimenet (6, 7, ) pin csak akkor kerül magas állapotba ha ez a kontakt zárt és célszerüen alacsony szinten van egy bemenetnek megjelölt pin (a bemenet PULLUP ellenállása be van kapcsolva, ezt húzza alacsony szintre egy kontaktus )
Másik ehhez kapcsolódó kérdésem, a leckékben a nyomógombos példánál a "digitalRead" utasítás hatására egy kimenet másolja (követi) egy megadott bemenet állapotát. Kérdésem, hogyan lehet azt elérni, hogy kövesse a bemenet állapotát egy kijelölt kimenet de invertálva? Azaz fordított logikai állapotot vegyen fel?
Re: Egyszerű megoldások, egyszerű problémákra.
Már megbocsáss!
De te vagy a tanuló!
Ne azt kérd, hogy mi oldjuk meg a feladatodat!
Hanem próbáld magad megoldani!
Van itt rengeteg oldal, olvasnivaló.
Rengeteg téma előkerült és megoldódót.
Tessék tanulni, olvasni.

De te vagy a tanuló!
Ne azt kérd, hogy mi oldjuk meg a feladatodat!
Hanem próbáld magad megoldani!
Van itt rengeteg oldal, olvasnivaló.
Rengeteg téma előkerült és megoldódót.
Tessék tanulni, olvasni.
-
Digitalfish
- DrótVégénSzéndarab
- Hozzászólások: 26
- Csatlakozott: 2013. január 15. kedd, 23:22
Re: Egyszerű megoldások, egyszerű problémákra.
Okés!
Igyekszem én. Azért valami zanzásított utalás (mint Robert is tette) sokat tud segíteni ám vagy egy konkrét sor.
Itt van ni, erre jutottam a korábbi kérdésem megoldását illetően:
void setup() {
pinMode(8, INPUT);
digitalWrite(8, HIGH);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
digitalWrite(5, HIGH); // beáll magas szintre
delay(1000); // várakozik valami miatt, mondjuk a HW megköveteli
digitalRead(8); // megnézi a 8, bemenet állapotát
delay(1000); // várakozik , prell stb miatt
digitalWrite(6, digitalRead(8)); // 6, kimenet megnézi és felveszi a 8, pin logikai állapotát
delay(1000); // várakozik szintén mindegy mi miatt
digitalRead(6); // megnézi 6, kimenet állapotát
delay(1000); // várakozik prell és más miatt
digitalWrite(7, digitalRead(6)); // 7, kimenet beáll a 6, kimenet logikai állapotába
} // végetér a ciklus és maradnak a kimenetek a felvett állapotban
void loop() { }
Nade egyszerűen nem jövök rá hogyan tudnám invertálni a digitalRead parancsnál a gomb állapotához rendelt kimenet állapotát , hogy pl fordítva is működtethessem
Itt van ni, erre jutottam a korábbi kérdésem megoldását illetően:
void setup() {
pinMode(8, INPUT);
digitalWrite(8, HIGH);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
digitalWrite(5, HIGH); // beáll magas szintre
delay(1000); // várakozik valami miatt, mondjuk a HW megköveteli
digitalRead(8); // megnézi a 8, bemenet állapotát
delay(1000); // várakozik , prell stb miatt
digitalWrite(6, digitalRead(8)); // 6, kimenet megnézi és felveszi a 8, pin logikai állapotát
delay(1000); // várakozik szintén mindegy mi miatt
digitalRead(6); // megnézi 6, kimenet állapotát
delay(1000); // várakozik prell és más miatt
digitalWrite(7, digitalRead(6)); // 7, kimenet beáll a 6, kimenet logikai állapotába
} // végetér a ciklus és maradnak a kimenetek a felvett állapotban
void loop() { }
Nade egyszerűen nem jövök rá hogyan tudnám invertálni a digitalRead parancsnál a gomb állapotához rendelt kimenet állapotát , hogy pl fordítva is működtethessem
Re: Egyszerű megoldások, egyszerű problémákra.
C-ben ami nincsen készen azt meg kel írni.
vannak utasítások:
if / else
bitRead()
bitWrite()
bitSet()
bitClear()
vannak utasítások:
if / else
bitRead()
bitWrite()
bitSet()
bitClear()
-
Digitalfish
- DrótVégénSzéndarab
- Hozzászólások: 26
- Csatlakozott: 2013. január 15. kedd, 23:22
Re: Egyszerű megoldások, egyszerű problémákra.
Re: Egyszerű megoldások, egyszerű problémákra.
A szorzótáblát hány nap alatt tanultad meg? 
A későbbi leckékben ott van a ciklus, az if-then-eslse és a select-case szerkezet is. De ha megnézed a referenciákat, abban is sok minta van.
Javaslat:
- mit szeretnél csinálni,
- írj folyamatábrát!
- írd meg az alapján a programoz
- ha nem megy, akkor mit kéne hogy csináljon és mit nem megy.
Fontos!
Ha elakadsz, a programban nincs hiba. TE mondod meg neki rosszul
A későbbi leckékben ott van a ciklus, az if-then-eslse és a select-case szerkezet is. De ha megnézed a referenciákat, abban is sok minta van.
Javaslat:
- mit szeretnél csinálni,
- írj folyamatábrát!
- írd meg az alapján a programoz
- ha nem megy, akkor mit kéne hogy csináljon és mit nem megy.
Fontos!
Ha elakadsz, a programban nincs hiba. TE mondod meg neki rosszul
-
Digitalfish
- DrótVégénSzéndarab
- Hozzászólások: 26
- Csatlakozott: 2013. január 15. kedd, 23:22
Re: Egyszerű megoldások, egyszerű problémákra.
"- írd meg az alapján a programoz"
Nah ezzel van a baj!
Nem jövök rá , hogyan fordítsam át egy bemenethez rendelt kimenet logikai állapotát.
Nahszóval van a digitalWrite(5, digitalRead(8)); ami utasítás alapján az 5 ös kimenet felveszi a 8 as bemenet logikai állapotát. Én azt szeretném elérni , hogy az ellentétes állapotot vegye fel.
Nah ezzel van a baj!
Nem jövök rá , hogyan fordítsam át egy bemenethez rendelt kimenet logikai állapotát.
Nahszóval van a digitalWrite(5, digitalRead(8)); ami utasítás alapján az 5 ös kimenet felveszi a 8 as bemenet logikai állapotát. Én azt szeretném elérni , hogy az ellentétes állapotot vegye fel.
Re: Egyszerű megoldások, egyszerű problémákra.
Bontsd fel részekre a feladatot.
Ha digitalRead(8)==0 ; digitalWrite(5,1);
Else digitalWrite(5,0);
Ennyi az egész folyamat!
Ha digitalRead(8)==0 ; digitalWrite(5,1);
Else digitalWrite(5,0);
Ennyi az egész folyamat!
Re: Egyszerű megoldások, egyszerű problémákra.
Nono. nem vonunk össze utasításokat. ezt a bemutató/bevezetőben kénytelen voltam, mert nem ismersz olyat még:
- változó
- feltétel.
A korrekt megoldas:
Próbáld ki:
digitalWrite(5, not(digitalRead(8)));
digitalWrite(5, !digitalRead(8));
A not vagy a ! azt hiszem ellenkező előjelűvé teszi.
Hülye tipp:digitalread _külső hardware-t_ invertálod? (azaz a kapcsoló nem GND hanem táp fele megy?)
digitális kimenette invertálod, azaz a LED nem a GND hanem a +5V fele van?
- változó
- feltétel.
A korrekt megoldas:
Kód: Egész kijelölése
a: bit;
a= digitalread(láb)
a= not a 'invertálod
vagy
if a=1 then a=0 else a=1
digitalwrite (láb, a)digitalWrite(5, not(digitalRead(8)));
digitalWrite(5, !digitalRead(8));
A not vagy a ! azt hiszem ellenkező előjelűvé teszi.
Hülye tipp:digitalread _külső hardware-t_ invertálod? (azaz a kapcsoló nem GND hanem táp fele megy?)
digitális kimenette invertálod, azaz a LED nem a GND hanem a +5V fele van?
Re: Egyszerű megoldások, egyszerű problémákra.
Vigyázz!
Első leckében még nem tudhatja mi az a IF, mi az a változó!
Így persze, hogy a _még_ korlátozott tudás/mozgástérben nem tud rá megoldást!
Így hardware alapú megoldásod van még csak:
- nyomógombot invertálod
- kimenteet invertálod
Első leckében még nem tudhatja mi az a IF, mi az a változó!
Így persze, hogy a _még_ korlátozott tudás/mozgástérben nem tud rá megoldást!
Így hardware alapú megoldásod van még csak:
- nyomógombot invertálod
- kimenteet invertálod