|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
webmouse Član
Pridružen-a: Čet 27 Avg 2009 22:27 Prispevkov: 1059 Aktiv.: 5.96 Kraj: Bloška planota
|
Objavljeno: Tor Jan 01, 2013 7:00 pm Naslov sporočila: Arduino - začetne težave |
|
|
Sedaj sem malo se poigraval in opazil da bo potrebno razjasniti nekaj osnov programiranja (NIKOLI še nisem programiral avr, pic, arm ali kaj podobnega)
Ker nisem edini - in verjetno se bo v bodoče našel še kdo, ki se bo na novo začel ukvarjati s temi ploščicami - naprošam administratorje, da razmislijo, če je možno odpreti novo rubriko v forumu Mikrokontrolerji in programabilna vezja - Arduino.
Ker nimam predhodnega znanja sem začel z grafičnim sistemom - z uradno distribucijo - ArduBlock.
Najprej sem sestavil kar je bilo med primeri Arduino programa ''mežikanje LED-ice''
Težava, ki se je pojavila je iz nerazumevanja strukture programa..
LED_blink_01: Mežikanje ledice deluje kot je potrebno..
LED_blink_02: Mežikanje ledice sem zakomliciral v ''while'' zanko da sem setiral en vhod na začetku ''loop'' zanke - še vedno deluje
LED_blink_03: dodal sem še eno ''while'' zanko - še vedno deluje
LED_blink_04:Med seboj sem zamenjal ''while'' zanki in zadeva ne deluje več
Sam sem mislil da se notranji ''while'' zanki odvijati neodvisno in zunaja ''loop'' zanka samo bere okvirja delovanje in bere indicije teh zank.
iz tega sklepam, da se druga ''while'' zanka ne začne izvajati dokler se ne ustavi izvajanje prve zanke - v mojem primeru nikoli
LED_blink_05: to sem probaval, ker sem želel da dva izhoda utripata z različnima hitrostima - ko pa sta oba izhoda na ''HI'' bi bil tudi tretji izhod aktiven - toliko časa, kolikor bi bila oba izhoda na ''HI''
kako bi to izpeljal?
Opis: |
|
Velikost datoteke: |
282.53 KB |
Pogledana: |
231 krat |
|
Opis: |
|
Velikost datoteke: |
218.84 KB |
Pogledana: |
42 krat |
|
Opis: |
|
Velikost datoteke: |
213.81 KB |
Pogledana: |
24 krat |
|
Opis: |
|
Velikost datoteke: |
191.91 KB |
Pogledana: |
27 krat |
|
Opis: |
|
Velikost datoteke: |
165.36 KB |
Pogledana: |
39 krat |
|
_________________ -
"Želja po znanju je v naravi vsakega dobrega človeka." Leonardo Da Vinci |
|
Nazaj na vrh |
|
|
leonk Član
Pridružen-a: Pon 26 Jan 2009 0:39 Prispevkov: 374 Aktiv.: 2.03 Kraj: Jesenice
|
Objavljeno: Tor Jan 01, 2013 8:59 pm Naslov sporočila: |
|
|
Že v drugem programu uporabljaš pin14 kot input in output hkrati.
To verjetno ni dobro.
Prav tako v loop delu bereš pin14 in v njega vpisuješ.
Poizkusi za to uporabiti spremenljivko.
lp, Leon
|
|
Nazaj na vrh |
|
|
Jaka57 Moderator
Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5766 Aktiv.: 25.97 Kraj: Grosuplje
|
Objavljeno: Tor Jan 01, 2013 10:13 pm Naslov sporočila: |
|
|
@webmouse: lepo te prosim, če greš počasi, preberi navodila, primere in ne preskakuj, če ne gre!
@leonk ti je napisal o deklaraciji pina14, ki si ga najprej deklariral kot OUTPUT, takoj za tem pa kot INPUT, torej v tvoji while zanki ta pin bereš!?
V primeru LED_blink_05 je pa sploh katastrofa, kajti deklaracije za pine se kar menjajo enkrat je to INPUT takoj za tem je to OUTPUT.
Nisi napisal, kaj ti v četrtem primeru ne dela več!?
V helpu ti lepo piše kaj in zakaj sta funkciji void setup() in void loop().
While zanke se berejo ena za drugo, torej, prva while se bo izvrševal toliko časa kolikor časa je izpolnjen pogoj (TRUE), ko je ta FALSE gre naprej na drugi while....
@leonk: s tem, ko si v pin14, ki je deklariran kot input vpisal visok nivo, nisi naredil nič drugega kot vključil pull-up upor na tem pinu.
Pred kratkim je tekla debata ravno o vključevanju pullup uporov pri avrjih, ki ga je postavil @vilko.
_________________ Lp, Jaka |
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1712 Aktiv.: 7.71 Kraj: Ig
|
Objavljeno: Tor Jan 01, 2013 10:39 pm Naslov sporočila: |
|
|
Stvar je teaka.
Ti na začetku programa postaviš DigitalPin 14 na 1 in potem uporabiš 2 while stavka, ki gledata isto stvar. Tukaj še ni težava. Težava (ki sicer ni težava)se pojavi že pri prvi while, saj je ta pogoj vedno enak 1. While zanka se izvaja, dokler je pogoj True ( v tvojem primeru je setirani digitalni izhod 14 vedno na 1 in zato se prva while zanka vrti v nedogled in do druge while zake sploh ne pride. Zato ti led na pinu 15 vedno utripa, led na pinu 13 pa ne.
Tvoje želje, da bi bila ena led vklopljena toliko časa, kolikor sta obe led vklopljeni, se s tako strukturo programa ne da realizirati. Uporabi timer, nekaj spremenljivk in potem jih primerjaj med seboj. Da se tudi brez timerja. Eno globalno spremenljivko rabiš, ki jo povečas vsake 100ms. Ko doseže vrednost 5 ugasne prva led ko doseže vrednost 10, ugasne 2 led. Ko svetita obe ledice, sveti tudi tretja. (nekaj if stavkov).
LP G
_________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
|
Jaka57 Moderator
Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5766 Aktiv.: 25.97 Kraj: Grosuplje
|
Objavljeno: Tor Jan 01, 2013 10:56 pm Naslov sporočila: |
|
|
@RGorazd: z ukazom Digitalwrite(14, HIGH) je vključil pull-up upor na pinu14 in ja, če nima tipke je ta stalno "1".
Stavek while(digitalread(14)) ni problematičen, če ima priključeno tipko proti 0V na arduino pin14, če pa tipke ni potem pa velja, kar si napisal.
@webmouse: void loop() funkcija ne bere nič!
Enostavno, kar že ime pove, program se vrti znotraj te funkcije.
_________________ Lp, Jaka |
|
Nazaj na vrh |
|
|
webmouse Član
Pridružen-a: Čet 27 Avg 2009 22:27 Prispevkov: 1059 Aktiv.: 5.96 Kraj: Bloška planota
|
Objavljeno: Sre Jan 02, 2013 10:33 am Naslov sporočila: |
|
|
Poglejte, napisal sem, da se prvič srečujem s programiranjem - zato programiram grafično - generirana koda mi ne pove veliko. Vsi mi dajete nasvete iz C-ja tega ne znam si pa iz tega predstavljam kako naj bi zgledal grafični del.
Delalo ni zato ker nisem vedel da se prva zanka vrti dokler ni izpolnjen pogoj za prehod. (predvideval sem da se zanke odvijajo iztočasno in LOOP bere indicije le teh)
Ko grafično vstavim pin ne vem kako ga bo deklariralo zato pa postavljam taka vprašanja in ja primere pregledujem - samo ker mi je sistem C-ja tuj mi ni veliko povedal (kakšna so zaporedja - zakaj mora biti nekaj tako, da se izvede drugače kaj se zapisuje, itd) - ker so vsi manuali pisani za C pač programiram grafično da vidim kaj naredi v C in potem primerjam in gledam.
Na podlagi vaših odgovorov vem par stvari več, da se stvari lotim drugače.
Sicer sem nekaj gledal Flowcode - samo zaenkrat bi raje ostal tu kot na blokovnem načinu...
Vem da so vprašanja butasta in nekomu mogoče samo če ne vprašam ne bom vedel... Knjiga je pa kot pri računalništvu - lahko jo 5x prebereš pa boš naredil narobe - če ne sediš za računalnikom in probavaš - kjer narediš 5x narobe in če se iz tega učiš kaj je narobe lahko 6-tič narediš prav..
_________________ -
"Želja po znanju je v naravi vsakega dobrega človeka." Leonardo Da Vinci |
|
Nazaj na vrh |
|
|
ssdzkrez Član
Pridružen-a: Sre 12 Jan 2011 15:13 Prispevkov: 401 Aktiv.: 2.49 Kraj: Hrastnik
|
|
Nazaj na vrh |
|
|
PZUFIC Vseved
Pridružen-a: Sob 17 Nov 2007 19:06 Prispevkov: 6987 Aktiv.: 35.08 Kraj: Rakek
|
Objavljeno: Sre Jan 02, 2013 12:59 pm Naslov sporočila: |
|
|
Moje mnenje...
Jaz bi za začetek poizkusil s Flowcode, namesto tega programa, ki ga uporabljaš sedaj. Namreč pri Flowcode si boš zaradi načina prikaza lažje predstavljal kako se bo program izvajal. Sicer pa ima Flowcode za moje pojme svoje muhe, tako da ga ne uporabljam več. Verjetno pa je to pri novejših verzijah rešeno.
_________________ Ne čakaj, da se bo nekaj premaknilo pojdi in nekaj premakni.
Lp Primož |
|
Nazaj na vrh |
|
|
VolkD Član
Pridružen-a: Pet 24 Sep 2004 21:58 Prispevkov: 14228 Aktiv.: 64.08 Kraj: Divača (Kačiče)
|
Objavljeno: Sre Jan 02, 2013 1:19 pm Naslov sporočila: |
|
|
Kaj vse bi vi naredili, da nebi delali.
Pa dajte no. Pri vsem do sedaj vloženem pisanju in poskušanju je bilo zapravljeno že toliko časa, da bi v tem času sigurno pokapiral tiste nekaj C sintakse. Saj filozofija je pa itak pri vseh načinih enaka.
In to bi potem znal ne glede na tip mikrokontrolerja.
_________________ Dokler bodo ljudje mislili, da živali ne čutijo, bodo živali čutile, da ljudje ne mislijo. |
|
Nazaj na vrh |
|
|
Jaka57 Moderator
Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5766 Aktiv.: 25.97 Kraj: Grosuplje
|
Objavljeno: Sre Jan 02, 2013 5:00 pm Naslov sporočila: |
|
|
@VolkD: se popolnoma strinjam, posebno pri Arduinotu, kjer so pini definirani in označeni, da je zadeva toliko lažja.
Enostavnih in zelo lepo dokumentiranih primerov na strani Arduinota in na Netu je toliko, da ne bi smelo biti problemov s programiranjem v Cju. Moje mnenje je, da je bistveno bolj enostavno, kot osvojiti tisti Ardublock. Že sama inštalacija le tega vzame nekaj česa.
Še pred osvajanjem Cja, pa bi bilo sploh priporočljivo pogledati kakšne osnove mikrokontrolerjev, da se ne bi začetnik loteval multitaskinga z AVRjem.
Brez osnov mikrokontrolerjev ne bo pomagal še tako super grafični program za generiranje kode!
_________________ Lp, Jaka |
|
Nazaj na vrh |
|
|
osmi Član
Pridružen-a: Pon 13 Sep 2010 16:18 Prispevkov: 75 Aktiv.: 0.46 Kraj: Straža pri Nm
|
Objavljeno: Sre Jan 02, 2013 9:42 pm Naslov sporočila: Re: Arduino - začetne težave |
|
|
webmouse je napisal/a: |
Ker nisem edini - in verjetno se bo v bodoče našel še kdo, ki se bo na novo začel ukvarjati s temi ploščicami - naprošam administratorje, da razmislijo, če je možno odpreti novo rubriko v forumu Mikrokontrolerji in programabilna vezja - Arduino |
Nisi edini, čakam robo iz Kitajske
_________________ C2 |
|
Nazaj na vrh |
|
|
webmouse Član
Pridružen-a: Čet 27 Avg 2009 22:27 Prispevkov: 1059 Aktiv.: 5.96 Kraj: Bloška planota
|
Objavljeno: Sre Jan 02, 2013 11:15 pm Naslov sporočila: |
|
|
Pozdravljeni;
@VolkD in @Jaka57 se popolnoma strinjam z vama - vendar nekje je treba začeti in na napakah se učimo...
Povezava, ki jo je dal:
Je boljša kot primeri na uradni strani....
Napisal pa sem tudi da Ardublok kreira kodo in z grafičnim sistemom si predstavljam kako bi moral zgledati C koda... filmčki pa veliko povedo zakaj mora nekaj tako biti - ne samo da vidiš v primeru kako je narejeno, ne veš pa da mora to tako biti in zato poizkušaš drugače...
Ker pa se vsako stvar da naučiti (vsaj za lastno uporabo) bo ta črviček, ki mi ne da miru tudi čez to jabolko se pregrizel...
Grem se učit branja gumbov in realizacijo na izhod z 10 gumbi in IF stavki in še kak časovnik bom probal umešat... (Samo naštudirat moram še kako preko optocouplerja in upora pripeljem signal pinu...)
_________________ -
"Želja po znanju je v naravi vsakega dobrega človeka." Leonardo Da Vinci |
|
Nazaj na vrh |
|
|
VolkD Član
Pridružen-a: Pet 24 Sep 2004 21:58 Prispevkov: 14228 Aktiv.: 64.08 Kraj: Divača (Kačiče)
|
Objavljeno: Čet Jan 03, 2013 12:36 am Naslov sporočila: |
|
|
webmouse je napisal/a: |
@VolkD in @Jaka57 se popolnoma strinjam z vama - vendar nekje je treba začeti in na napakah se učimo... |
Ja res je. Pametni na tujih !
_________________ Dokler bodo ljudje mislili, da živali ne čutijo, bodo živali čutile, da ljudje ne mislijo. |
|
Nazaj na vrh |
|
|
webmouse Član
Pridružen-a: Čet 27 Avg 2009 22:27 Prispevkov: 1059 Aktiv.: 5.96 Kraj: Bloška planota
|
Objavljeno: Čet Jan 03, 2013 7:21 pm Naslov sporočila: |
|
|
Evo malo sem ''poškrabal'' lupino in mi nekaj ni ravno jasno
kje sem se zaštrikal - sem vse parkrat pregledal in se mi zdi da ''tehnične'' napake nisem naredil
Prilagam sliko:
Opis: |
|
Velikost datoteke: |
117.42 KB |
Pogledana: |
112 krat |
|
_________________ -
"Želja po znanju je v naravi vsakega dobrega človeka." Leonardo Da Vinci |
|
Nazaj na vrh |
|
|
Krampus Član
Pridružen-a: Pon 08 Sep 2008 13:07 Prispevkov: 1826 Aktiv.: 9.64
|
Objavljeno: Čet Jan 03, 2013 8:27 pm Naslov sporočila: |
|
|
ali je "==" enako kot "!="
_________________ Nisem ravno najbolj pameten na svetu, tu in tam pa imam kakšno idejo. |
|
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: 47 dni
Powered by phpBB © 2001, 2005 phpBB Group
|