posjirka
Vytvořené odpovědi
-
AutorPříspěvky
-
posjirkaÚčastník
a nepřijímá ti to nějáký bordel ?
posjirkaÚčastníkto jerry:
měníš zadání … jendou pracuješ s polem, pak chceš přímo řešit piny, je to trochu zmatek. Mám k tomu pár připomínek:
– používat pole jako zadání použitých pinů je velmi vhodné, pokud nepoužíváš čistou řadu čisel, ael třeba některé vynechávaš, nebo jsou na přeskáčku.
– určitě pro vkládání kúodu používej CODE jinak jak píše BlindP budou v tom zmatky. Bohužel je fórum nastaveno trochu neš´tastně a nejde třeba vkládát kod přímo z Arduino IDE „copy for forum“,
– doporučuju používat verzování jednotlivých programů a stejně tak i nauč se popisovat jednotlivé části. Teď ti to možná příjde jako ztráta času. Až budeš mít delší kod a budeš se čas od času k němu vracet budou ti ty komentáře scházet.
– já jsem se vceku brzy naučil používat odsazení vnořených procesů (for(…){}) i když tady to bude určitě z důvodu nepoužití CODE ale hlavně když uzavíráš složené závorky tak je uzavírej né na konci řádku, ale na další řádku ve vzdálenosti od okraje kde je počátek funkce od této závorky (podívej se jak mám uzavřené (for{}). Usnadní to přehled. Sice máš při kliku na závorku podbarvenou i její protikus, ale text je text.posjirkaÚčastníkco je na tom těžkého 🙂 … dělám si srandu každej něják začínal:
/* BARGRAF V1 BY J.POSPISIL 12/2016 */ // promenne byte led[] = {2,3,4,5,6,7,8,9,10,11}; //piny s LED diodami // byte pocet = 10; //počet diod int rychlostP = 70; int rychlostL = 70; void setup(){ // nastaveni vystupu for (int a=0; a <= sizeof(led)-1; a++){ pinMode(led[a], OUTPUT); digitalWrite( led[a] , LOW ); } } void loop(){ // postupne rozsvit 2 - 11 for (int a=0; a <= sizeof(led)-1; a++){ digitalWrite( led[a] , HIGH); delay(rychlostP); } // postupne zhasni 2 - 11 for (int a=0; a <= sizeof(led)-1; a++){ digitalWrite( led[a] , LOW); delay(rychlostP); } // postupne rozsvit 11 - 2 for (int a=sizeof(led)-1; a >= 0; a--){ digitalWrite( led[a] , HIGH); delay(rychlostP); } // postupne zhasni 11 - 2 for (int a=sizeof(led)-1; a >= 0; a--){ digitalWrite( led[a] , LOW); delay(rychlostP); } }
posjirkaÚčastníkto bude tím, že cela zprava konci bitem 1. potom ve smycce se to už nenuluje.
zkus použít zpravu = „2“posjirkaÚčastníkví bůh … já tam radši odpor aspo¨n 100R dávám…
posjirkaÚčastníkvezmu to od konce.
Test LCD funguje tak, že že ho nahraješ do arduina, otevřeš si v Arduino IDE serial monitor a píšeš, co chceš aby se ti zobrazilo na LCD.
Občas tam bývá chyba bu´d ve špatně nsatvené rychlosti komunikace, nebo nemáš zapnuté „new line“ a program ti nedetekuje správně to co jsi psal.K tomu hlavnímu programu.ukážu ti část programu a musí ti to být jasné:
// nastaveni pinu displeje LiquidCrystal lcd(8, 9, 4, 5, 6, 7); #define davkovaniPelet 2 //davkovani pelet snek #define spirala 3 //zapalovaci spirala #define ventilator 5 //ventilator #define alarm 6 //signalizace poruchy #define kotlovyTermostat 8 //kotlovy termostat
používáš ty samé piny jak pro relé tak pro komuniakce i s LCD. to nejde. musíš použít každý zvláš´t. Mě to trklo až když si napsal, že ti cvakají relátka 🙂
posjirkaÚčastníkotázka jak dlouhé záznamy a kolik záznamů chceš používat.
Pokud to bude 1-2 do 10-20s tak se to dá vyřešit jinak než přes arduino:
https://www.postavrobota.cz/Modul-nahravani-zvuku-ISD1820-10s-reproduktor-d88.htm
pro spuštění můžeš místo RFID čtečky použít konektor. Vem si konektor třeba 9pinový cannon.
1.pin bude zem a máš možnosti spínat nezávisle 8 modulu (co pin to PLAY 1 modulu)Dřív jsem dělali takový věci jako audio pamě´t s EEPROM. Ve výsledku šlo o scilátor, posuvný registr, pamě´t a ADC/DAC převodík (většinou 4 bitový). ten modul nohoře to ale už umí a nestojí moc.
Při tomhle řešení ušetříš programování arduina, komunikaci s RFID, moduly MP3, SD kartu atd.
Pokud budeš chtít jít do arduina tak počítej s:
– Arduino (100-500 kč podle typu a místa nákupu)
– mp3 modul (250 kč– sd karta (asi nějákou doma najdeš ale jinak 100-200 kč)
– čtečka RFID ( 150 – 200 kč)
– tokeny (kus 10-15 kč)
– zesilovač + repro (cca 100 kč)
– zdroj, atd bude podobné pro jaké koliv řešení
k tomu hodiny hledání po internetu, dotazy, programování ,….posjirkaÚčastníkmáš pravdu … tech vlastních znamků je max 8 (0-7).
Delay taky nemám rád, ale tady mi přišel jako vhodný, protože celý kod je vlastně jen odkrokovaná smyčka s krokem po jednotlivých funkcích. Tady by se změna detekovala celkem neprakticky. Jedině stejně jako je chybový registr tak zavést stavový, ten měnit a regaovat na něj při zobrazení.
ve výsledku bys v každémkroku (někdy i vícekrát) volal pod funkci na změnu zobrazení.
Osobně bych šel do vlastních znaků. 8 ikon v pohodě stačí. Zobrazoval by se jen stav jaký je požadován + některé hodnoty proměnných .
rozhodnutí ale nechávám na johnyhola .. přeji jen je to jeho zařízení.posjirkaÚčastníkpředpokládám, že se ti ve smyčce nic nezobrazuje a zobrazí se tit o až op sepnutí termostatu. („FOTOBUNKA“).
Vidím tu problém ten, že ve smyčce LOOP() není žádná prodleva pro LCD a tak když se nic nedej neustále se maže a zobrazuje LCD.
Vidím 3 řešení:
1, misto
lcd.print("FOTOBUNKA");
dejlcd.print("FOTOBUNKA"); delay(500);
2, nedavej lcd.clear() ale zapisuj texty tak dlouhe aby přepsal všechny znaky v řádku
3, místo sáhodlouhých popisků procesu použij ikony. Může na LCD uědlat až 15 vlastních znaků. ty můžeš dát jako reakce na nějákou funkci. Příklad 1. ikona bude plamen. dáme jí pozici 0,1. Když bude fotobuńka vidět plamen zobrazí v té pozici 1. ikonu, když né zapíše do této pozice mezeru. Cílem je nemazat LCD, ale neustále jej přepisovat. pro pozici 0,3 dámetřeba hvězdičku (nemusíš psát, máš již ve znakové sadě). Když bude zapalovat pelety, objeví se v této pozioci hvězdička jinak mezera ,….
jak s tím začít by to moholo pomoci toto:
https://omerk.github.io/lcdchargen/nechám výběr na tobě … .
posjirkaÚčastníkhod sem poslední kod včetně tech uprav lcd odemně
posjirkaÚčastníkahoj,
chybka je jasná:
– nejdřív musíš smazat LCD
– pak nastavit kurzor
– nakonec vypsat textteď to máš takto:
lcd.setCursor(0, 1); // zobrazeni na displeji lcd.print("FOTOBUNKA"); // smaze displej pred dalsi smyckou lcd.clear();
správně to má být takto:
// smaze displej lcd.clear(); // nastaveni kurzoru lcd.setCursor(0, 1); // zobrazeni na displeji lcd.print("FOTOBUNKA");
posjirkaÚčastníkto ARDUXPP: co třeba toto: https://cs.wikibooks.org/wiki/Praktick%C3%A1_elektronika
to Aleš: fakt nevím. Doma je ještě nemám a plánoval jsem takovou zhýralost, že bych je použil jako záložní zdroj pro RTC. takový ty hračky jako vozítko s vibračním motorem, nemá v realitě žádné praktické použití. jinak jsem viděl v A-radiu použití místo baterie v multimetru, na internetu bylo použití jako zdroj pro mobily. No nevím powerbanka mě přijde lepšíKdyž nevím co se starším chlebem tak dám do googlu „starší chleba recepty“ … možná zkusit něco podobného 🙂
dělám si legraci,ale opravdu nevím. Když jsem přemýšlel nad náhradou baterie tak buď by to vyžadovalo trvalé nabijení (připojení ke zdroji až do chvíle potřeby) kde jsou jakékoliv úspory = 0, nebo mi nevyhovovala vybíjecí charakteristika. Navíc 2,7V , ve výjmečných případech 5V nebo 12V není žádná výhra vzhledem k ceně a nutnosti chránit tto kondenzátory před přepětím. Ceny rostou a samovybijení taky nepředurčuje toto řešení jako nějáký záložní zdroj. Tak mě napadá UPS … . Vnuknul jsi mi nápad, ale vzhledem k mému pracovnímu vytížení mě to za chvilku přejde 🙂
posjirkaÚčastníkchce to prostudovat zákady nejen nabijení akumulátoru, ale i elektroniky obecně.
c/10 znamená , že se baterie nabijí proudem = 0,1x nominální kapacita baterie.
USB je schopné dodat 2A když na to přijde a rozuměn mu to vysvětlíš (komunikace přes USB zařízení, kde jeden z parametrů identifikace je i předpokádáný max. proud.)
úbytek napětí se dán Ohmovým zákonem, resp. fyzikálními zákony. R = U / I.
.. je třeba neplést si dobrou vůli přispívatelů do fór s technickým vzděláním. Já nejsem učitel. Rád pomohu, ale základy vysvětlovat odmítám …posjirkaÚčastníkto ARDUXPP: myslím,že to co potřebuješ najdeš tady:
http://www.instructables.com/id/ARDUINO-SOLAR-CHARGE-CONTROLLER-Version-20/
na otázku jak vypočítal 10 Ohm: Vzal to jaok nejjednodušší hodnotu, se kterou jde počítat. Při proudu 250mA (C/10) je na něm úbytek napětí 2,5V (0,25A*10Ohm). to je pro 5V vstupy ideální stav a do 0,5A dostačující řešení. Naštěstí mu to ošetřuje max. napájecí napětí 5V.To Aleš: o tom právě mluvím/píšu/chtel jsem říct/ … není baterka jako baterka (akumulátor). Každá má své vlastnosti a potřeby. To že něco navrhne neznamená, že to té baterce dělá dobře všem typům na světě. Spíš si zkrátí počet nabijecích cyklů. Pak po nějáké době čteš příspěvky jak stojí nabijecé baterie za prd, po roce odešli do věčných lovišť 🙂 . Stejně tak se dnes propaguje použití superkondenzátorů jako skvělá náhrada akumulátoru. Nabito během několik sekund, snese velké proudy, velkémnožstvý nabijecích cyklů, … . Realita je taková, že ať je nabito za 5s nebo za 5 hodin potřebuješ stejné množstvý energie. Když se nabijí 250mA 5 hodin tak na nabití během 5s potřebuje 60x12x0,25 = 180A 🙂 Velmi zjednodušeně. Přitom náběhový proud bude vlastně zkratový = kondenzátor je vybitý. Rád bych viděl ten zdroj, jištení a hlavně kabely. zapomeňte na drátky průřezu 0,25mm2. To ještě nezmiňuju vybijecí křivku, která narozdíl od baterii je lineární = nulová energie = 0V (kondenzátor), nebo např.10V (baterie), jinak se zhroutí články … To jsme asi trochu off topic…
posjirkaÚčastníkto ARDUXPP: ta nabiječka není navržena úplně správně ale hlavní věc je že využívá 5V napájení proto pro vyššěi napětí není vhodná. Využívá se toho, že na když je napájení 5V tak na vstupuarduina nebu nikdy víc. Když tam dáš 9V, tak odpáliš arduino (procesor) protože má katalogově max.5,5V, Dále odpálíš jeho vstupy, protože ty mají max. 0,6V+napájecí napětí atd.
jinak jestli sis všiml, tak na schématu není kreslená baterka 🙂 . Nejspíš to bylo myšleno trochu jinak , kdy 10Ohm odpor měl být ochranný / srážecí pro nabijení … . Bohužel takových „skvělích nápadů“ je plný internet.to Aleš: to víš, jednou to nabilo, tak to pustím do světa ať se ti nenažraní výrobci nabiječek zamyslí. vždyť to jde udělat mnohem jednodušejí … Navíc ta baterka postupně zvětšuje kapacitu – nafukuje se 🙂
-
AutorPříspěvky