Vývojová deska Arduino Uno a její využití v akvaristice
Off topic
Problém bude asi někde jinde, než ve spolehlivosti hardwaru. Většinu věcí co jsi vypsal používám a nic mě "nehoří". Čas se dá aktualizovat přes web nebo rovnou použít modul pro rádiový signál řízení hodin - podle mě zbytečné (DS3231).
0 16.03.2017 13:03 sachlj arduino jsem přetížil když jsem na něj dal pir, a chtěl jsem aby při pohybu rozsvítil ledku, zavrčel přes zvukový modul a roztočil motor, nic složitého...a to jsem nechtěl to co všechno můžu, mám senzory na vlhkost, množství vody, ph senzor, ec senzor, řízení motorů pro peristaltické pumpy a k tomu čidla na luxy, barevné spektrum, uv záření co2, plyny ve vzduchu...
0 16.03.2017 12:59 sachlj vykašlat se při výměně na automaty, nefungují na 100% a spolehlivě. Když tak u velkého akva ale fakt velkého. hadici na pračku, pračkový ventil (ten je normálně zavřený) na spínací hodiny otevřít 12V ventil na 10 minut, na půl hodiny, kolik je třeba, dá se to spočítat kolik litrů vyteče za minutu. matematika z 5 třídy základní školy, vzpomeňte si.. a na druhé straně vstup rovnou z vodovodu a záchodový ventil s plovákem. Dopustí přesně tolik kolik je třeba...přetekl někdy někomu záchod ? ne? a proč? protože to neřídí elektronika...měl jsem arduino na řízení světel v akva. hodiny aby věděl jaký je čas...super jen se nesmí rozlaďovat tak že za rok to bylo o několik minut...
tohle mi řídi raspberry 3 a na něj napojen stanice wh1080
86.49.119.112/…
86.49.119.112/… mám i rpi 1 a na něj arduino shield...původně pro robota ale z toho sešlo, kdo by furt nabíjel baterky...hledám pro to využití ale akva to nebude...
Shořelo mě pouze jedna Mega z 6 desek co používám (4x Mega, 1x Uno a 1x Due). A to zrovna jediný originál co jsem měl díky mé blbosti. Klonů z Číny bych se nebál. Jedna deska mě jede cca 20měsíců, 24h/denně. Jinak naprostý souhlas se Slavkem. Nepřekročil jsi proudové zatížení na pinu nebo desce sachjl?
K té výměnně vody. Popiš co od toho požaduješ. Budeš vodu vypouštět do odpadu nebo kanystru a pak dopouštět z kanystru (vodovodu)?
Já bohužel u akva nemám možnost přivést odpad. Vodu vypouštím při údržbě a při odkalování do kýblu. Po údržbě si přes ovládání spustím dopuštění vody - mám nastaven čas běhu čerpadla (dle průtoku a času spuštění lze cca trefit vypnutí čerpadla těsně po přečerpání objemu kanystru). Čerpadlo čerpá vodu z kanystru malým průtokem, aby nedošlo ke skokové změně teploty a vířený dna. Abych tedy nemusel u čerpadla čekat a hlídat ho, tak čas běhu čerpadla ohlídá, aby čerpadlo nečerpalo naprázdno a přetečení hlídá plovákový spínač.
To samozřejmě není automatická výměna vody, ale spíš taková pomoc s dopouštěním vody. Program lze ale upravit. Když bych měl možnost mít odpad přímo u akva, nastavil bych si přes časové spínání během dne dopouštění vody přes elektromagnetický ventil z vodovodu/osmózy. Přebytek vody by se řešil přepadem přímo do odpadu. Pro kontrolu lze použít plovákové spínače, ty nerezové vypadají lépe než plastové. Prodávají se i s dvěma plováky. Pro indikaci úniku vody z akva jsem našel jen takový ten "drát" na jedné stránce za brutální cenu. Neví někdo o levnější variantě?
www.cooking-hacks.com/…
www.ebay.com/… Bežne používam Arduno i senzory z Číny, nezhorelo mi ešte ani jedno len tak samo od seba, takže dôvod zhorenia nebude krajinou pôvodu, hoci vadný kus sa samozrejme vyskytnúť môže.
Problémom senzorov/modulov je nedostatok dokumentácie a často prehnané tvrdenia o tolerancii k 5 V (najmä TFT LCD), ako i návrh modulov samotných tak, že nie je vhodné ich spájanie/kombinácia (hoc to zbernica podporuje).
Ich životnosť môže byť a veľmi pravdepodobne i bude kratšia (popis dôvodu presahuje moju ochotu písať), no i tak mi ich zopár funguje dlho.
jak velké akva máš ? vykašli se na automatizaci, zvlášť pokud použiješ levný klon z číny a čidla z číny. nemají tu přesnost a nemají tu životnost. Spálil jsem už 2 arduina mega jen tím že jsem do něj zapojil pár čidel, pravé origo by to vydrželo..levné součástky ne...když výměnu voda automatizovat tak stáleprůtočným systémem..a nebo s využitím pračkových ventilů a záchodového systému napouštění..mechanika ověřená věky co nikdy nezklame.
0 15.03.2017 13:27 loksiklubos – Automatizacia + schema pre vymenu vody arduino
Dobry den,
som zaciatocnik na arduino a chel by pomoct s radou ako vyriesit dokladnejsie schemu pre automaticku vymenu vody v akva+ zapezpecienie proti vyteceniu vody. .Potrebujem pomoct zo schemou a kodom lebo na nete som uz presiel velke mmnozstvo stran a nikde som nenasiel podobnu temu ako to urobit

Starší reakce
4 02.03.2017 11:37 Hirafazel – Program
Přidávám odkaz na stažení projektu pro řízení akvária. Jedu na něj s postupnými změnami skoro dva roky. Protože pár lidí již chtělo tento projekt, začal jsem tvořit takový pokus o návod. Nebaví mě to opakovat pořád do kola a navíc si to už ani nepamatuji. Základem je MEGA + 3,2” dotykové LCD. ZIP soubor je včetně Arduino IDE 1.0.6 s potřebnými knihovnami, návod (teprve začátek), RAW soubory, program a pár základních prográmků pro oživení – proto taková velikost. Nejnovějších oficiální IDE nepoužívejte, program nebude fungovat nebo bude nestabilní (kolize knihoven). Začátek návodu je pro lidi, kteří Arduino vidí poprvé (to byl hlavní důvod pro sepsání – pro kolegu v práci). Postupně budu návod rozšiřovat. Pokud bude zájem, mohu poskytnout odkaz na stažení. Za upozornění na chyby a jiné „blbosti“ budu vděčný, za můj češtin se omlouvám. Prosím nevyužívat ke komerčním účelům....Zakládám nové akvárium, pokud bude někomu něco z příspěvku užitečné a má navíc nějaké rostliny - beru jako provizi
leteckaposta.cz/…Starší reakce
Ještě jsem si všiml, že na fotkách jsou při regulaci vidět pruhy. To je ale zřejmě normální co?
tak krom absence stmivani by drivery prisly draz nez ledky...
0 17.12.2016 10:16 sachlj GP napsal: nejspis zalezi, jak si s tim poradi napetovy zdroj a konstrukce civek.
Toto bude, podľa mňa, zásah do čierneho. Môže skúsiť ten kondenzátor, no obávam sa, že pri nízkej striede to celkom neodstráni ani on a bude treba skúsiť iný zdroj.
napeti uvedene na tele kondiku musi byt vyssi nez napeti zdroje a nesmi se prepolovat (pruh na -)
mluvim o elektrolitech, jine by asi nemely dost kapacity. teoreticky radeji bliz ldd.
asi bych zkusil to zvyseni frekvence...
playground.arduino.cc/… nebo to pripojit na analog (je to stejne pwm), ale tam nevim, jakou to ma frekvenci a ldd ma ve specifikaci max 1 kHz.
nebo jit na spodni hranici (100 Hz) bohuzel je to cele slysitelny rozsah. nejspis zalezi, jak si s tim poradi napetovy zdroj a konstrukce civek. test bt nemel zabrat dlouho.

Mám to zapojené takto. Napěťovy zdroj > proudový zdroj (přívod PWM z arduina) > LED.
Nějaké kondíky mám ještě ze střední, ale nevím jak to zapojit.
pokud je po ruce nejaky vetsi kondik, tak bych zkusil dat mezi napetovy a proudove zdroje (vyhlazeni zateze). pokud je moznost, zkusit fazove posunout rizeni pri vice LDD (vyhlazeni zateze). mozna zaexperimentovat se spinaci frekvenci. pri dostatecnem zvyseni by se piskani mohlo dostat za slysitelnou hranici a dostat se do mezi moznosti stavajicich kondiku.
a použil jsi driver k ledkám ?
Zdravím, zprovoznil jsem si řízení CREE XML přes arduino. Zatím teda jenom svítivosti na tlačítko a mám problém s pískáním zdroje. Respektive když nedám svítivost na maximum - PWM hodnota cca 250 - 255 tak napětový zdroj píská. Čím více se blížím s PWM k 255 tím méně píská.
Nevíte jestli je něco čím to můžu ovlivnit? Mám zdroj 36 V 4 A a 2 * 10 CREE XML s LDD 1500H.
Děkuji
Starší reakce
Ja by som to tak tragicky nevidel. A mimochodom, nebude to len tou angličtinou. Vyznať sa v tom PWM je problematické, a ešte pri TIMER1: X režimov, X*X registrov a k tomu tá dokumentácia nie je návod na použitie s vysvetlením, ale predpokladá, že viete presne čo chcete. Za úspechom Arduina je (podľa mňa) presne toto zjednodušenie práce s hardvérom.
Napriek tomu sa do toho pustím. Dlho som skúšanie časovačov na HW úrovni odkladal, pretože nemám osciloskop, kde by som si overil výsledky nastavení, lenže vďaka tomu včerajšiemu pokusu s VCD ho už nepotrebujem. Prekvapilo ma, že to funguje, pretože PWM je hardvérové, a tak nepoužíva štandardné V/V registre, ale zjavne sú autori toho simulátora väčší machri, ako som si pôvodne myslel

Chyba je u mě s tím neúplným zhasnutím v použití 10-bit PWM podle
arduino.stackexchange.com/…
Pokud tam nastavím standardní 8-bit přes analogWrite tak to zhasíná do úplné tmy.
Je to přesně to co se stává když člověk použije kus kódu u kterého úplně přesně neví co a proč se tam dělá (bohužel moje nedostatečná aj mě to nedovolila řádně nastudovat). Nedělám to rád, ale tady jsem jiné řešení nenašel.
Zkusím tedy na doporučení Kadlika knihovnu <TimerOne.h> ta vypadá jednoduše.

Tak ste ma primäli, aby som vyskúšal simulovať PWM (prosté analogWrite()) pomocou SimulAVR s výstupom do VCD. Úprimne, nečakal som, že to bude fungovať, pretože sa nedá zvoliť trasovanie výstupného registra/príznaku PWM, ale pekne mi to ukázalo stav vývodu (skúšal som vývod 9, ktorý je napojený na časovač 1, ak sa teda nepletiem). Časť výsledku pripájam ako obrázok, možno si to nájde aj honcka (dostať VCD zo SimAVR z Arduina asi nepôjde a prekračuje to moje znalosti C/C++).
Na obrázku vidno vývod 8 (PB0), ktorý len prosto prepínam 0/1 po cca 100 ms a vývod 9 (PB1), ktorý pri každom prepnutí PB0 pridáva PWM po 25, plus tam sú všetky dostupné registre časovača 1, ktoré možno trasovať. Takže ak chcete, môžete to skúsiť sám alebo mi pošlite súbor .elf a ja Vám súbor VCD urobím. Len neviem v čom si to pozriete (predpokladám, že ste na Windows), ja používam GTKWave.
Ahoj, doporučím ti to řešit knihovnou <TimerOne.h>
Timer1.initialize(5000); // initialize timer1, 5000 microseconds (200hz)
Timer1.pwm(led, (nastav 0 až 1023));
Me leta v IT pri troubleshootingu nejakej pokrocilejsich veci naucili, vzdy problem zjednodusovat a zacit tim uplnym zakladem, tj bych zacal, jestli funguje vychozi zapojeni pres 8bit pin, pokud ano, tak bych vyskousel pres 16bit, pokud ne, tak bych skusil jiny arduino, pak 16bit pin a pak bych skusil zjednodusit to na 10 bit, coz me prijde akorat vlozit do algoritmu, aby ti to nechodilo po 1 kroce, ale po 64 krocich a 64*0 je porad 0.
BTW nevite, jestli jde hodnota PWM, ktery poslu na urcitej pin zase precist zpet a treba vypsat na display?
Presne nad tým som teraz uvažoval

. Skúste to otestovať cez digitalWrite(), ak to pomôže, tak si jednoducho do programu pridajte logiku, ktorá pri 0 vypne PWM a surovo nastaví 0. Do detailov mám naštudované len PWM na ATtiny85, ale bude to veľmi podobné.
Tá atina má v dokumentácii popísané špeciálne správanie pri 0 (i pri 255), vtedy sa výstup na krátky čas vždy najprv prepne do 1 a až potom skočí na 0, tj. plných 0 % nie je možných a výsledkom je, povedzme 0,1 % a možno to tomu LDD stačí. Ono, presne práve preto to Arduino rieši interne...
karci17 napsal:Power OFF : DIM ~ -Vin < 0.8VDC or short
Tu môže byť jadro problému, v rýchlosti som našiel
learn.sparkfun.com/… , kde píšu, že log. 0 na výstupe ATmega328 je 0 -- 0,9 V. Pri troške smoly dáva toto jedno Arduino trošku viac napätia, ako je vhodné... Skúsil by som dať medzi to nejaký kvalitnejší tranzistor ako spínač, ktorý by mohol toto napätie stiahnuť pod 0,8 V, prípadne nejaký bufer 74HCTxy (číslo z hlavy neviem), ktorý by vystupoval ako brána medzi napätiami logických úrovní.
Edit: zmienku o 74HCT ignorujte, tá slúži na opačný prevod...
Ještě mě napadla reakce na toto:
slavko napsal: Ak sa nepletiem, tak knižnica Arduino rieši interne, že keď je použité analogWrite(X, 0), tak deaktivuje PWM a nastaví vývod na 0 (a obdobne pri 255). Takže chybka musí byť inde.......
Já nepoužívám klasický analogWtite, protože ten jede jen v 256 úrovních tedy 8-bit. Přišlo mě to hrubé a tak jsem šel na výstupní piny 9 a 10 kde lze použít až 16-bit, ale zredukoval jsem to jen na 10-bit - jestli jsem v tomhle ještě neudělal chybku. Jinak nezaznělo tu že to mám na arduino UNO

Pro využití 10-bit jsem poupravil tento návod:
arduino.stackexchange.com/…
- nastavují se tam hodnoty přímo do registrů, ale bohužel jsem to na 100% nepochopil. Dokumentace k čipu arduina je jen v angličtině a v tom plavu. Takže význam všech registrů co tam jsou a co dělají úplně nechápu.
Takže ještě také otestují co to bude dělat s klasickým analogWrite na 8-bit.
Skúste to otestovať cez digitalWrite(X, 0), to sa mi javí ako dobrý spôsob privedenia 0 na vstup toho LDD

Děkuji všem za nápady a podněty co vyzkoušet. Neměl jsem včera čas se podívat ani sem. Uvidím jestli dneska nebo pak až po víkendu.
Abych to upřesnil tak používám LDD700HW (zcela určitě umí stmívat od 0, to samé LDD mám s jiným ovládám a tam to funguje jak má).
Země arduina a napájení LDD mám spojené.
Zkusím PWM vstup LDD uzemnit, to by mělo zajistit totální tmu, tím bude jasné jestli je chyba v LDD nebo v arduinu. Pak jedině si vezmu arduino s programem do práce a zkusím se podívat na osciloskop co z toho pinu vlastně leze když by měla být nula. Obávám se že měřit to obyč multimetrem v případě PWM nemá smysl.
LDD 300H az po LDD 1500H MAJU od 0. Som si isty...
REMOTE ON/OFF:
Leave open if not use
Power ON with dimming: DIM ~ -Vin >2.5 ~ 6VDC or open circuit
Power OFF : DIM ~ -Vin < 0.8VDC or short
100 ~ 1KHz
PDF:
www.mouser.com/… si si isty ze mate rovnake LDD ? kedze nenapisal typ
Diky moc, podivam se na to
Alternatívu Arduino IDE je ťažké nájsť, pretože toto "IDE" robí nekalé triky, aby skrylo komplexnosť vývoja na prostý jeden klik. Riešenia existujú, ale ich použitie nie je triviálne a často ani zdokumentované, takže bude treba použiť metódu pokus-omyl).
Existujú vývojové nástroje od Atmel, AVRStudio, či AtmelStudio, či ako sa to teraz volá (nepoužívam Windows). Netuším, či sa mu do simulátora dá dodať kompilovaný výstup z Arduina alebo dokáže simulovať a ladiť len to, čo si sám skompiluje, kdesi na nete som raz narazil na návod ako ho nastaviť, aby dokázal používať knižnice Arduina.
Používam SimAvr a/alebo SimulAvr + avr-gdb. Oba simulátory poskytujú možnosť generovania časových priebehov VCD a do oboch sa láduje súbor ELF, ktorý generuje aj IDE Arduino. Netuším však aká je funkčnosť týchto nástrojov vo Windows. SimAvr má širšiu podporu procesorov i interných funkcií, no ani jeden nemá GUI. Gdb poskytuje štandardné krokovanie a výpis ako registrov, tak premenných, či zastavenie pri zmene hodnoty, a tež nemá GUI.
Existuje i projekt Avarice, ktorý by mal podporovať hardvérové ladenie, ale myslím, že ATmega328 také nedporuje (nemá rozgranie JTAG), no nikdy som po tom hlbšie nepátral.
Existuje projekt arduino-makefile, ktorý umožňuje použiť knižnice Arduina s bežnou sadou nástrojov avr-gcc a spol + gdb, potom je možné použiť ľubovoľné IDE. Ja používam Geany, ktoré viem, že funguje vo Windows, lenže to je univerzálne IDE, takže všetko si treba nastaviť/urobiť sám.
Osobne, keď sa hrám s Arduinom, tak mi na ladenie väčšinou vystačí sériový výstup a trošku použiteľný terminál (ten ich Sériový monitor má veľkú výhodu - neblokuje nahratie programu), a na presné časovanie spomínané VCD zo simulátora + GtkWave. Na ladenie často postačí aj prostá LED, raz blikne 2x, inokedy 3x atď, napr. podľa stavu registra...
Riadi ho frekvencia (resp. pomer 1-0) 1-0-1-0 do 5V... Po odpojeni DIM by mal LDD valit naplno.
LDD vie od 0 .... Ked mne dokaze arduino vypnut LED s LDD do 0 svitu, tak asi sa to da.
PS: Asi by som sa pozrel ako mas definovane pins pre LCD /istotne mas zapojene/ a na LED by som pouzil PWM vystup, ktory isto nie je priradeny LCD.
Taketo nieco : LiquidCrystal lcd(8, 9, 4, 5, 6, 7); tak pouzi pin 3 alebo 11 PWM pre LED, pretoze je mozne , ze frekvencia na pouzity pin aj pre LCD ti drzi otvoreny LDD.
tak problem by som videl v LDD,že nevie PWM od nuly (asi aj slavko toto myslel).
Na ebayi kupis za par drobnych modul s relatkami pre arduino, tými môžeš po zotmeni PWM uplne vypnut led.
Muzete mi nekdo dat tip na alternativu k arduino IDE, kde by slo kloudne debugovat, staci mi aspon jako ve starym turbopascalu (tj krokovani s vypisem hodnot promennych)
JJ analog out má mezi 0-5V pustil jsem to na +5 a pořád to svítilo
a ked privedies +5V je tma ? (neviem ake napetie ho riadi)
Když odpojím PWM, tak mě to svítí naplno, tak to je i ve specifikaci
Ked odpojis pwm pin od LDD je tma ?(resp. privedies zem)
Teď jsem to vyskoušel bez toho odporu a funguje to taky
#define WHITEPIN 6
ve void setup mam
pinMode(WHITEPIN, OUTPUT);
ve void loop mám
analogWrite(WHITEPIN, 0);
a mám tmu
Ak sa nepletiem, tak knižnica Arduino rieši interne, že keď je použité analogWrite(X, 0), tak deaktivuje PWM a nastaví vývod na 0 (a obdobne pri 255). Takže chybka musí byť inde.
Ja by som sa zameral: Naozaj ovládač zvláda PWM od nuly? Naozaj je nula i na vstupe toho ovládača? Sú kompatibilné logické úrovne (ono logická 0 nemusí byť 0 V)? Sú prepojené zeme?
Neúplné zhasnutie nerieši rezistorom (hoci i ten môže pomôcť). V podstate ide o to, aká je interná logika -- dnes už asi bude postavená na MOSFET. MOSFET sa nemusí úplne uzavrieť, ak na jeho gate nie je privedené požadované napätie (hodnota podľa typu kanála MOSFET) a tento stav nastáva v prípade mikroradičov v dobe od zapnutia mikroradiča (privedenie napájania) po nastavenie vývodu do režimu výstup -- počas tejto doby sú (v prípade ATmega328 v Arduine) vývody v 3. stave (vstup s vysokou impedanciou) a nedodávajú žiadne napätie, čo môže mať za následok nakrátko (1-ky, ale skôr 10-ky mikrosekúnd) nežiadúci stav ovládaného MOSFETU. Vtedy sa používa zdvíhací alebo znižujúci (k plus alebo k 0) rezistor, ktorý zaistí definovanie nejakého napätia, a teda definovanie stavu MOSFETU v tejto dobe. Po nastavení vývodu na výstup už tento rezistor príliš veľkú úlohu neplní (v podstate len kazí tvar impulzu pri rýchlom PWM).
Na presnú identifikáciu by to chcelo jednak schému a jednak presnú špecifikáciu vstupu ovládača. Nepoužívam PWM na ovládanie LED, len na motory, takže tie ovládače LED nepoznám...
Pohrávám si s řízením LED přes LDD pomocí PWM z arduina a funguje mě to skoro podle mých představ. Jen jsem narazil na jeden problém. Ve chvíli kdy se PWM výstup dostane na nulu tak diody stále nepatrně svítí. Není to prakticky nic, ale že nejsou úplně zhasnuté je patrné. Sice ještě znovu chci projít program jestli v něm nemám nějakou drobnou chybku a PWM ve skutečnosti není na nule, ale už jsem to jednou kontroloval a chybu jsem nenašel. Pak už zbývá jen zapojení.
tady jsem se dočetl o tomto zapojení (zkusil jsem to a je to pravda) ale to neřeší ten můj problém.
dogmatix napsal: Je velmi vhodne, na PWM vystup z controlleru (co vede do LDD-DIMM vstupu) pridat rezistor (cca 10k vuci zemi).
Zamezi se tak rozsviceni (bliknuti) LED na 100% po zapnuti napajeni (nez se inicializuje ovladaci program controlleru, je PWM vystup "otevren" a proudovy zdroj to chape jako 100% vykon).
A nyní ve vlákně o LED čipech se honcka zmínil že přímo mezi výstupem z arduina a PWM vstupem LDD má 10k rezistor. Proč ten se tam dává a není to právě pro ten můj případ neúplného zhasnutí?
Starší reakce
0 05.10.2016 18:33 Marthinius –
Re: XX Tak vidím, že jdu pozdě...

Starší reakce
Ok. Mockrát děkuju za pomoc.
to je ok. Plus to LDD. Ale dal by som max LDD100H. neni dobre zhavit ten chip na maximum 1500mA. A tatotema je o arduine, tak veci ohladom chipov uz smeruj do temy o cree.
vybral jsem tyhle 2, můžou být ?
http://www.gme.cz/spinany-zdroj-mean-well-s-100f-48#product-detail
http://www.gme.cz/spinany-zdroj-mean-well-lpv-100-48
nebo by se našlo i něco levnějšího ?
aha, takže všechno špatně. Potřebuju nový napěťový zdroj i nové LDD. Díky za pomoc.
Tak zabudni na 12V/30W zdroj .... Potrebujes napatovy zdroj 48V / 2A + LDD1500H alebo 36V /1,5A + LDD 1000H(700H). Aspon si myslim

A hlavne skus si precitat sekciu - temu o Cree cipoch. Vyhnes sa takymto problemom.
nemám cree čipy. Mám jeden 50W COB čip. 27-38V, 1500mA ±5%
Ano, pred LDD ale max 3 diody XML2 (do 9 - 9,5V).
Přidat reakci
1 ...... 14 15
Zpět na obsah sekce Technika • Zobrazeno 16712x