|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
jure95 Neznanec
Pridružen-a: Sre 02 Dec 2015 19:15 Prispevkov: 7 Aktiv.: 0.07 Kraj: Koper
|
Objavljeno: Sre Dec 02, 2015 7:24 pm Naslov sporočila: Arduino in akvarij |
|
|
Pozdravljeni, sem Jure in sem nov na forumu. Po izobrazbi sem strojnik, z elektroniko in programiranjem se ukvarjam ljubiteljsko.
Potreboval bi pa eno manjšo pomoč. Izdelujem si krmilnik za akvarij, vse sem naredil kot je treba, med drugim tudi prižiganje led diod preko tranzistorja. Led diode se prižigajo ob uri (s pomočjo RTC).
Problem nastane, ker Arduino ima izhodne vrednosti za PWM od 0-255. Kodo imam napisano tako, da se mi vsake tri sekunde vrednost PWM poveča za +1 od prejšnje. Ko priklopimo led diode na Arduino vidimo, da prižiganje diod poteka v intervalih vsake 3 sekude. Jaz bi pa rad, da se mi diode prižigajo "mehko", torej bnekako glajeno. Je kakšna možnost to narediti? Imel sem v mislih, da bi uporabil kakšen kondenzator, ampak nevem kako bi to vezal, in niti kakšno vrednost bi uporabil.
LP, Jure
|
|
Nazaj na vrh |
|
|
Peter123 Član
Pridružen-a: Tor 13 Jan 2009 15:34 Prispevkov: 1366 Aktiv.: 7.35 Kraj: Lj.
|
Objavljeno: Sre Dec 02, 2015 7:45 pm Naslov sporočila: |
|
|
Lahko poizkusiš z kondenzatorjem a se bojim da bo moral biti zelo velik.
Nekateri Arduino moduli omogočajo PWM v 1000+ korakih, tak skoka nebi opazil.
Lahko pa zmanjšaš čas med 2 korakoma, bo za oko delovalo bolj zvezno in bolj prijetno.
Kondenzator vežeš na napajanje LED. Uporabi elektrolitskega, nazivne napetosti vsaj 2x napajalna za LED. Kapacitete 3000uF in več. Uporabi tiste ki so za 105stC. Pri priključitvi podi pozoren na polarizacijo!
|
|
Nazaj na vrh |
|
|
ElGrigon Član
Pridružen-a: Pon 24 Jul 2006 22:38 Prispevkov: 3880 Aktiv.: 17.96 Kraj: okolica Lenarta
|
Objavljeno: Sre Dec 02, 2015 8:22 pm Naslov sporočila: |
|
|
Na bazo tranzistorja daj večji RC člen, ki bo časovno usklajen s 3s.
Ali pa uporabiš MFET in PWM mapiraš z izhodno napetostjo napram Vtreshold.
_________________ lp, ElGrigon |
|
Nazaj na vrh |
|
|
jure95 Neznanec
Pridružen-a: Sre 02 Dec 2015 19:15 Prispevkov: 7 Aktiv.: 0.07 Kraj: Koper
|
Objavljeno: Sre Dec 02, 2015 10:24 pm Naslov sporočila: |
|
|
@Peter123, mogoče veš za kakšen tak modul? Sem nekaj iskal, večji problem je, ker skoraj nevem kaj iskat. Glede kondenzatorja, gre se o tokovih okoli 16A in napetosti okoli 12V (ciljam na okoli 180W luči), tako da nevem kakšen kondenzator bi tukaj prišel v poštev. Glede časa med 2 korakoma, pa bi rad imel takšen čas (mogoče tudi še večji), ker bi rad ustvaril približek naravnega okolja prebivalcem akvarija.
@ElGrigon, kako pa izračunati, kakšen RC člen potrebujem? Kot sem gledal po internetu, se da dobiti že v enem kosu cel rc člen? Vtreshold - lahko kaj več poveš o tem?
@protoncek, hvala, si bom pogledal!
Se opravičujem, ampak moje znanje elektronike ni na višku, zato so mogoče kakšna moja vprašanja malo čudna.
LP, Jure
|
|
Nazaj na vrh |
|
|
Jaka57 Moderator
Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5773 Aktiv.: 25.90 Kraj: Grosuplje
|
Objavljeno: Sre Dec 02, 2015 10:31 pm Naslov sporočila: |
|
|
Jure95, kolikšen je čas v katerem želiš počasi prižgati ledice?
_________________ Lp, Jaka |
|
Nazaj na vrh |
|
|
robert Član
Pridružen-a: Sob 29 Maj 2004 21:48 Prispevkov: 1871 Aktiv.: 8.39 Kraj: Tolmin
|
Objavljeno: Sre Dec 02, 2015 10:32 pm Naslov sporočila: |
|
|
Mislim, da bo najbolje, da prilepiš trenutno Arduino kodo ter napišeš z katerim delaš.
Pa za take tokove bo potrebno shemo prilagoditi za mosfet tranzistor razen če ga ne boš uporabljal še za gretje vode (velike izgube)
_________________ LP Robert |
|
Nazaj na vrh |
|
|
jure95 Neznanec
Pridružen-a: Sre 02 Dec 2015 19:15 Prispevkov: 7 Aktiv.: 0.07 Kraj: Koper
|
Objavljeno: Sre Dec 02, 2015 10:34 pm Naslov sporočila: |
|
|
Zdravo Jaka57. Rad diode bi rad prižigal okoli 20min (še najboljše bi bilo, če bi se čas užiganja dalo nastavljat - programsko vem kako, nevem pa kako to narediti z elementi).
LP, Jure
|
|
Nazaj na vrh |
|
|
jure95 Neznanec
Pridružen-a: Sre 02 Dec 2015 19:15 Prispevkov: 7 Aktiv.: 0.07 Kraj: Koper
|
Objavljeno: Sre Dec 02, 2015 10:38 pm Naslov sporočila: |
|
|
@robert V priponki prilagam kodo v beležnici. Delam pa z Arduino Mega 2560. Trenutno je vse še v testni verziji (kasneje se bo uporabilo v večjem akvariju). Delam z 500mA, uporabljam tranzistor 2N2222. Kasneje bom pa uporabil MOSFET (kakšnega bi uporabil, bom vas potreboval za pomoč), kateri bo hlajen preko alu. reber.
LP, Jure
Opis: |
|
Download |
Ime datoteke: |
akvarij_kontroler_28.10.2015_ArduinoMega.txt |
Velikost datoteke: |
9.2 KB |
Downloadano: |
19 krat |
|
|
Nazaj na vrh |
|
|
jure95 Neznanec
Pridružen-a: Sre 02 Dec 2015 19:15 Prispevkov: 7 Aktiv.: 0.07 Kraj: Koper
|
Objavljeno: Čet Dec 03, 2015 1:23 am Naslov sporočila: |
|
|
Z tistim fade primerom sem delal v tej kodi. Nekaj sprememb in je. Problem je bil, ko je bil zamik med intervali po tri sekunde, potem vse skupaj samo še "trokira" oz. prehod ni "gladek" ampak stopničast..
LP, Jure
|
|
Nazaj na vrh |
|
|
Peter123 Član
Pridružen-a: Tor 13 Jan 2009 15:34 Prispevkov: 1366 Aktiv.: 7.35 Kraj: Lj.
|
Objavljeno: Čet Dec 03, 2015 8:22 am Naslov sporočila: |
|
|
Kondenzator, ki sem ti ga predlagal odpade za take moči.
Tole piše v datasheetu od čipa:
Four 8-bit PWM Channels
– Six/Twelve PWM Channels with Programmable Resolution from 2 to 16 Bits
(ATmega1281/2561, ATmega640/1280/2560
Torej je možno na določenih PWMjih nastavljat več kot 8bit-256. Pri 16 bitih pa ne boš opazil vmesnih korakov. Tole je še nejboljša rešitev. Obstaja pa vprešenje kako to uporabljat v arduinotu.
|
|
Nazaj na vrh |
|
|
Jaka57 Moderator
Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5773 Aktiv.: 25.90 Kraj: Grosuplje
|
Objavljeno: Čet Dec 03, 2015 11:32 am Naslov sporočila: |
|
|
Jure95:
- uporabljaš RTC, ali je potrebno, da izpisuješ sekunde?
- v void loop() odstrani izpisovanje na LCD in naredi funkcijo (proceduro) izven osnovne zanke, saj bo program bistveno bolj pregleden,
- prav tako branje temperature in vlage,
- pri izpisovanju na LCD izpisuj samo tisto kar se spremeni,
- vse public spremenljivke daj na začetek.
v glavnem, tvoj program bi moral izgledati nekako takole:
Koda: |
void loop(){
preberi_RTC();
preberi_okolje(); // temperatura, vlaga
izpiši_ekran();
alarm(); //ker ga zagotovo želiš vključiti
priziganje_LED();
} |
Protoncek, glede na to, da omenjaš interupt ali si pogledal pripeti program? Torej, kje lahko zmanjša interval timerja za interupt rutino in seveda, kje si jo videl v njegovem programu?
Peter123, seveda je možno nastavljat PWM več kot 8 bit, tudi v Arduino in teh primerov je na Netu kar nekaj.
Toda, če narediš svojo funkcijo z direktnim dostopom do časovnikov, se s tem odpoveš standardnim časovnim funkcijam vključenih v Arduino IDE, ena med njimi je tudi millis().
_________________ Lp, Jaka |
|
Nazaj na vrh |
|
|
jure95 Neznanec
Pridružen-a: Sre 02 Dec 2015 19:15 Prispevkov: 7 Aktiv.: 0.07 Kraj: Koper
|
Objavljeno: Čet Dec 03, 2015 11:48 am Naslov sporočila: |
|
|
Hvala vsem trem za odgovore!
@Jaka57
-izpisovanje sekund ni potrebno, sem pa jih hotel kasneje uporabiti za nadzor hranilnika
-se bom potrudil, da bom uredil vse skupaj
-na lcd-ju se spreminja celoten izgled (zaslon#1 - datum, ura, temp in vlaga, zaslon#2 - temp. akvarija, svetlost ledic, in pa timer)
-glede kode pa: temp. alarm obvezno žeim vključiti, ker mi je kakšen mesec nazaj zatajil termostat na grelcu in je grelec delal celo noč na "full", zjutraj ko sem rpišel pogledat, je bilo v akvariju 43°C, si lahko samo predstavljate kaj se je zgodilo nekaj prebivalci (na srečo ni bil polno naseljen), ki so bili noter. Takrat bi mi ta alarm "rešil rit". BKom pa sproti dodal še nekaj drugi elementov (pH sondo, ventilatorje za pod pokrov akarija (v primeru prevelike temp pod pokrovom in pa vlage), el. magnetni ventil,...
No, ampak sedaj mi je prioriteta zgladiti PWM od luči.
LP, Jure
|
|
Nazaj na vrh |
|
|
jure95 Neznanec
Pridružen-a: Sre 02 Dec 2015 19:15 Prispevkov: 7 Aktiv.: 0.07 Kraj: Koper
|
Objavljeno: Pet Dec 04, 2015 12:18 pm Naslov sporočila: |
|
|
Jaka, vem, da za delovanje akvarija ni potrebno delovanje ledic "u nulo". Ta akvarij je testen, ker sem hotel najprej vse skupaj stestirat, če dela, kako dela, če pod ledicami rastejo rastline,...
Imaš idejo, kako bi lahko ugotovil (izračunal), kakšen RC člen potrebujem, da nebo takih preskokov v teh 5sekundah?
Glede LCD-ja, morem malo premislit kako to naredit, ker namreč moje znanje glede programiranja je bolj na osnovnem nivoju, zato gre pri meni vse bolj počasi, tako, da tukaj bo še kar nekaj igranja...
LP, Jure
|
|
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: 74 dni
Powered by phpBB © 2001, 2005 phpBB Group
|