Boris12
Vytvořené odpovědi
-
AutorPříspěvky
-
TgmMrrCZ
ÚčastníkPáni, přijdu z oběda na odpolední a takovejch odpovědí 🙂
Udělám takovej malej výcuc, vím že je to dlouhý ale všechny věci o kterých píšete tam jsou, takže TL:DR :
Výstup z Arduina => mosfet => 12V DC relé => Pumpa 230V. Cívka relé je napájena z trafa 230/12 které napájí obě Arduina, přes relé je to oddělené od 230V. Na výstupu z relé mám zásuvku, když z ní vyndám čerpadlo relé cvaká a čipy běží (repro nelupe). S lampičkou místo čerpadla – 60W odporová zátěž se taky nic neděje.
Schéma dodám za pár chvil, jsem v práci a každou chvíli po mě někdo něco chce 🙂
PS : Tahle chybka s indukční zátěží není až zas tak neobvyklá, na netu se to docela řeší ale já sem zatim nenašel nic spolehlivýho.
https://www.google.cz/search?q=arduino+freeze+230v&ie=utf-8&oe=utf-8&client=firefox-b&gfe_rd=cr&ei=zYT_V4SUJ6Hs8weh6KbIBALeo
ÚčastníkZjistěte si, jestli je na displeji opravdu řadič ili9488 jak píšou. Já tam mám ili9341
To zjistím jak?
Nahoře je info s te utility LCD_ID_readreg.ino.
reg(0x00BF) 01 01 22 15 81 00 ILI9481, HX8357-B
reg(0x00D3) 03 03 24 04 ILI9341, ILI9488Změřte si, kam máte zapojené signály.
Jak to změřím? Měřak mam.
Propojím displej s arduinem 3V3,5V a GND a proměřít piny.
Ale jak poznam, který je ktrý?Aleš
Účastník1. Stáhněte si knihovnu Adafruit_TFTLCD
2. Změřte si, kam máte zapojené signály. Já mám např:
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // (RS)Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0
#define LCD_RESET A4 // Can alternately just connect to Arduino’s reset pin
3. Zjistěte si, jestli je na displeji opravdu řadič ili9488 jak píšou. Já tam mám ili9341
Hrál jsem si s tím asi 3 dny, než jsem ho rozchodil. Postahoval jsem snad všechny knihovny, které na internetu jsou, ale nakonec se to podařilo 🙂Attachments:
Luke_CZ
ÚčastníkTakže:
1, odrušení elektromotoru – ano řeší se RC členem
2, napájení arduina – jak to máš řešený? Bez schématu ti těžko někdo poradí, vypadává to při sepnutí, nebo vypnutí?
3, spínání AC – určitě dej galvanické oddělení (optočlen, relé)Vojtěch Vosáhlo
ÚčastníkPřesně tak. Chtělo by to zjistit co to resetuje a případně to izolovat od AC.
Aleš
ÚčastníkZkoušel jste ta arduina napájet z baterek? Jak se to bude chovat?
Luke_CZ
ÚčastníkA co to oddělit optočlenem a tím spínat ten MOSFET?
Vojtěch Vosáhlo
ÚčastníkZajímavý je že je indukce tak velká, a že něco takového může zaseknout arduino. Předpokládám že zdroj toho zaseknutí bude napájení arduina ze sítě. Nemohl by pomoci třeba DC/DC izolovaný měnič před arduinem nebo zenerova dioda jako svodič těchto špiček na zem? Abych řekl pravdu tak o indukci moc nevím a ty rady co jsem napsal neřeší praskání v reproduktorech a další problémy. Mohlo by to ale vyřešit resety arduina.
Držím palce ?pardalos
ÚčastníkZkus sen hodit zdrojový kód. Klidně můžeme komunikovat. Začínám se tomuto problému nyní věnovat. Chtěl bych rozchodit jak Ethernet shield tak modul co mám doma. Možná potom WIFI modul :).
Ladis_Kv
ÚčastníkDíky za názor,ale obávám se že lankový snímač by mi byl k ničemu.Jak jsem psal dříve,tak převážně se mi jedná zatím o roztahování a zatahování žaluzii podle denního světla.
Takže vytahovat zatím nebudu.Ale možná do budoucna se to bude hodit.
díkyCuore
ÚčastníkObávám se, že encoder je cesta do pekel. Budeš tam mít spoustu mechanických vůli a čím dáš encoder blíž k motoru, tím bude proměřování větší. Takže zbytečná práce. V průmyslu se na tyto aplikace používají tzv. Lankové snímače což je kombinace encoderu a lankového bubnu. Konec lanka připevníš na spodní lištu žaluzií a měříš přesnou polohu.
Ladis_Kv
ÚčastníkNo díky.Až to nahodím fyzicky na žaluzku,tak budu zjištovat,jestli by tam šel dát nějaký koncák…
Budu informovat.
Dík 😉petan
ÚčastníkPo restartu je proměnná otevřeno false. A vlastně všechny proměnný jsou po restartu 0, LOW, false, …
A protože si ji nikde neukládáš a ani nezjišťuješ koncákem, tak se ti spustí kód za else (je světlo) a druhá podmínka taky (negované false je true).
Právě takovejhle problém se řeší u těch dveří. Po restartu nevědí kde jsou (během výpadku napájení s nimi někdo mohl pohnout atd.). Takže se po zapnutí napájení provede inicializace. Najde si to koncovou polohu, zresetuje se to a už to frčí…
Jedna varianta je ukládat poslední stav do EEPROM, ale ta na to není moc vhodná. Lepší by byl ten koncák, který by definoval jednu jistou stranu.
Ladis_Kv
ÚčastníkTak kolik otáček,to ještě přesně nevím.Zítra budu zkoušet přímo na žaluzii.Sehnal jsem si starší,tak můžu laborovat.
Hele ještě mám menší problém.Když arduino resetuji,tak v poloze otevřeno při resetu se spustí cyklus a když resetuji v režimu zavřeno,tak se neděje nic-tak to má být.Jsou tam jen dva stavy.Zavřeno a otevřeno.Jak bys to ošetřil?Kdyby přes den vypnul proud tak by to otevíralo dvakrát… 🙁
Mám to zatím jen časově.Koncáky a enkoder zatím nemám.
tady je funkční prográmek (zatím)
int ldr = A0;
int ldr_value = 0;
boolean otevreno;
void setup()
{
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
//pinMode(A0,INPUT);
Serial.begin(9600); //spuštění serioveho rozhrani
}
void loop()
{
ldr_value = analogRead(ldr); //čte hodnoty čídla
Serial.println(ldr_value);
if(ldr_value > 500){ //první podmínka (stmívání)
if(otevreno){
zavri();
}
}
else{
if(!otevreno){ //druhá podmínka (rozednění)
otevri();
}
}
}
void zavri(){
digitalWrite(8,HIGH); // pro dc motor
digitalWrite(9,LOW);
delay(150);
otevreno = false;
vypni();
}
void otevri(){
digitalWrite(8,LOW); // pro dc motor
digitalWrite(9,HIGH);
delay(800);
otevreno = true;
vypni();
}
void vypni(){
digitalWrite(8,LOW); // pro dc motor
digitalWrite(9,LOW);
delay(1000);
}Leo
ÚčastníkHm, že by nebyl problém v displejích ale na židli.:(
Můj první displej tak tápu v neznámu.
Kukal jsem na to video.
Má tam
Adafruit-GFX-Library-master
Mcufriend_kbv
Touch-Screen-Library-masterV Mcufriend_kbv – examples je GLUE_Demo_480x320.ino
Bisplej sproblikava ale na šiřku ve 2/3 vidím jak se tam něco vykresluje, ale je to uplně světle, skoro to nejde vidět.
Co ještě dělam špatně?Luke_CZ
ÚčastníkA co Google?
BTW: uTFT není pro UNO dobrá, bere příliš mnoho SRAM, no on ani ten displej s tím rozlišením pro UNO není to pravé ořechové
L.
petrcaltik
ÚčastníkDíky za reakci..
S tím přenosem je to tedy zcela dostačující, to byla moje hrubá neznalost! Vzdálenost a terén bude tedy asi největší problém, protože trať nemusí být přímá, může vést třeba i lesem a v neposlední řadě pro plnohodnotné využití by trať mohla mít délku až 2km. NRF24L01 už mám, takže se pravděpodobně pokusím časomíru sestrojit a uvidím jak spolehlivé to bude.. S tím RCT jsem pracoval tak, že když se změnila hodnota sekund, začal jsem počítat setiny podle funkce millis(), ale byl právě problém s tím, že někdy trvala změna třeba 98 setin a někdy zase 101, takže absolutně nepoužitelné…posjirka
Účastníkna dotaz zda signál poletí stejnou dobu … je vhodne si prostudovat alespon zaklady radiokomunikace. Radiove vlny se šíří téměř rychlosti světla. V základu se měni pouze frekvence nosné vlny a způsob modulace. Ber to tak, že nejnižší rychlost přenostu bude okolo 9,6kbaud tedy 9600 bytu/s. Přenos informace o 10 bytech zanamená dobu přibližne 0,001s. To beru jako nejhorší stav. při přenosu 115kbaud jsme na uplně jiných časech.
Spíš mě zaráží těch 500m. Při použití vysílače na 2,4GHZ s přidanou anténou by to mělo mít dosah okolo 2km, ale v praxi jsem to ještě nezkoušel a je tu i otázk aterénu/příme viditelnosti:
http://www.arduino8.cz/komunikujeme-bezdratove-s-nrf24l01-1-cast-zapojeni/
ohledně přesnosti, funkce millis() řeší dobu běhu strojového času v 0,001s a je tu i funkce micros(), která dělá to samé v 0,000001s … takže 0,01s rozlišení bych se nebál. Jak jsi řešil odečet času z RTC? ten ti totiž v těchto případech nepomůže.
1. jeho rozlišení je v řádech 1s
2. přenos dat, adresování ,… nějáký čas zabere a přesnost pod 1s je mimo
3. při použití tohoto čipu jako generátoru zbytečně zatížích přerušení a s přesnosti si stejně moc nepomůžeš.
Navrhuji použití internícho strojového času Arduina a detekci start/stop jako body pro záznam aktuální hodnoty millis(). Výsledný čas je pak jen prostým odečtem těchto 2 hodnot.
pár příkladů:
http://www.c-sharpcorner.com/uploadfile/7d4524/stopwatch-using-push-button/
http://duino4projects.com/barista-championship-brewing-stopwatch-%E2%80%A2-introduction-using-arduino/petrcaltik
ÚčastníkDíky za reakci,
primárně jsem myslel použít časomíru pro lyžovaní, kde na startu by byla branka, tedy nějaký spínač a v cíli fotobuňka. Pro základní použití se bavíme o vzdálenostech cca 500m a tedy čas do 2 minut. Chápu dobře tedy, že při protnutí branky na startu by se vyslal signál do spodní stanice s fotobňkou a vlastní časomírou, tím by se zahájilo měření? Následné přerušení paprsku by čas zastavilo? Je jistota, že signál poletí vždy stejnou dobu? Měl jsem za to, že takovýto přenos není úplně nejpřesnější proto myšlenka se synchronizací. Pokud by byla přesnost do jedné setiny sekundy, tak by to bylo plně vyhovující.
Díky, za případné další reakce…poloman
ÚčastníkOno to má dvě slabiny:
– ten posuv (motor/šnek) je celý zapouzdřený, otočná část je jen z boku
– z toho uhlí je strašlivý bordel
Takže reálně připadá mimo sahání do AC v úvahu asi jen ten magnet na tom šneku z toho boku. Jako try1 půjdu asi do toho optoizolátoru, to se mi líbí nejvíc, pořád se snažím cílit na to, abych to před tím bordelem schoval do bedny od regulátoru.Každopádně díky za užitečné rady. Když to bude fungovat, tak výsledek vysdílím. 🙂
posjirka
Účastníkchápu to správně, že chceš mít 2 fotobuńky kažkou s vlastní RTC a posílat si čas prolnutí? To se ti nikdy nepodaří synchornizovat …
Lepší řešení by bylo použit 1 RTC ve vlastní časomíře a od fotobuněk přijímat jen signál prolnutí. čas by se bral s interní RTC časomíry.
O jakých intervalech/časech se vlastně bavíme ?
Jinak RTC může generovat i určitou frekvenci, pro lepší synchornizaci než jen sledování času….petan
ÚčastníkPokud budeš dokupovat enkodér, tak je lepší ho dát na co nejrychlejší část motorku. Ono by potom mohlo dělat na tej hlavní hřídeli jenom pár pulzů a rozlišení je rázem v tahu. To se mi pak jeví lepší ten motor „vše v jednom“ jak si posílal.
Kolik potřebuješ otáček motoru (myslím už za převodovkou) na přetočení žaluzií do poloh? pokud by to bylo do deseti otáček, tak by si mohl koupit nějaký mrňavý servo, to vykuchat, potenciometr připojit na hřídel, posílit výstupy původní elektroniky a v podstatě by si měl výkonný servo vlastní konstrukce. Navíc velice jednoduše ovládatelný (jsou na to knihovny).
Serva bez zpětné vazby se používají třeba u kotlů. To se otočí o 90° třeba za dvě minuty. Rychlost je celkem spolehlivá, takže se dá dobře řídit. Když se pak vrací do „nulové polohy“ a tak kontrolér pustí ovládací impulz delší, aby byla jistota, že je v nulové poloze – provede se najetí na referenční bod.
posjirka
Účastníkjá bych spíš navrhoval metodu přímého měření obsahu násypky. Bu´d pomocí ultrazvukového čidla (to by se ale asi rychle zaneslo prachem) nebo měření optickou závorou. Při infračerveném spaktru by to mohlo být trvalejší, případně mě napadá varianta váhy. Jestli je někde možnost dát mezi násypku a držák někde tlakové čidlo (váha, vodivá guma,…) tak by šlo zvážit kolik tam toho uhlí ještě je …
Při měření pohybu šneku bych, jak píše Zbyšek, použil hallovu sondu a magnet.posjirka
Účastníkty uhly natočení se dají řešit taky časem. V předchozí praci jsme řešili natočení serva taky časovou konstantou. Servo přejede z 0-180 st třeba za 90s. Když potřebuji přejet na 45 st tak nechám 30s sepnuté servo a zapíšu si do paměti na jaké je asi poloze. Většinou se jednalo o regulaci teploty, takže stačilo při poklesu/zvýšení teploty posunout servo na tu či onu stranu. na přesnost se nehrálo. Navíc serva od Belima byli vcelku stabilní co se linearity posunu v čase týká a nemusel se kupovat potenciometr na snímání polohy.
Tady by ti stačilo jednou změřit jak dlouho trvá přejetí z min. na max. a dát to třeba po 5 st natočení. Jednou za čas znulovat na jednu z krajních poloh (když za poledních 7 dní nenajedu na koncák tak si zresetuj polohu a najeď tam te´d)
Encoder je super řešení i včetně možnosti škálování (probarvenosti) pro přibližné měření aktuálního úhlu, nicméně šel bych asi cestou 2-4 drah které by mě ukazovalu aktuální poluhu (binární stav zabarvených značek na drahách)
Možnosti je spousta … budeš to tedy řídit H mustekm?
Navrhni si funkční zapojení a fyzické zapojení (schéma) a můžete tady pak bádat na reálnými možnostmi …Vojtěch Vosáhlo
ÚčastníkNo když už máte motor tak možná lepší jen dokoupit enkoder ?
Ladis_Kv
ÚčastníkJo dík…kdo hledá ten najde… https://goo.gl/Ep0cQY ….
tak nevím.No a ale cena stoupá.. 🙁
Asi možná toto -encoder https://goo.gl/Ubfuen ..
jak se říká babo raď. 😀Vojtěch Vosáhlo
ÚčastníkJak jsem psal výše tak kolečko si můžete nechat vytisknout na průhlednou fólii (budou to dělat v každém větším papírnictví). Obrázek můžete taky jednoduše škálovat takže s velikostí osičky nebude problém. Vyhledání „rotary encoder pattern“ nebo „wheel“ vám vyhodí spoustu možností. V tomhle případě by nebyly koncáky potřeba když se ten program dobře napíše. ?
Hodně štěstíLadis_Kv
ÚčastníkAhoj,tak moc řešení (myslím hardware) nemám,kvuli tomu prostoru.Ale už mi došel motorek z Číny – suprovní – malý a výkonný,který žaluzii utáhne.Takže je to DC motor.
Asi by byl dobrý enkoder,který bude počítat pulzy.
Pohledám a zkusím najít-ikdyž mám strach že kolečko s průměrem 2,5cm nenajdu.
Ale budu hledat.
No a koncáky?Nad těmi se taky zamyslím.Mám doma dost jazýčkových relátek,tak uvidím jestli by to tam šlo někde přizpůsobit.Je fakt že u toho měření času to bude asi komplikovanější a najít ten čas pro odklonění a zavření žaluzek bude složitější – je to v rozmezí 10-45-80 stupňů.
Chtěl jsem to zkusit.Byl to prvotní nápad a vše se může změnit. Jinak celé vytáhnout a pak spustit dolu by bylo jednodušší.Každopádně díky na nápady.Super.
Klidně sem posílejte co vás napadne.
pěkný den,či večer
Byla to myšlenka a snad se i zrealizuje….
p.s.vývoj je složitý.A to ještě když nejsem moc kamarád s Arduinem(ale snažím se)Zbyšek Voda
ÚčastníkNapadá mě použití jiného způsobu odečítání, než přes měření AC.
Mohlo by dobře fungovat počítání otáček motoru tak, že na osu si nalepíte odrazku a pak IR diodou a IR fototranzistorem budete odečítat, kolikrát došlo k „průchodu“ odrazky před senzorem. Viz například http://www.instructables.com/id/Measure-RPM-DIY-Portable-Digital-Tachometer/?ALLSTEPS.
Podobně by mohl fungovat magnet s hallovou sondou.
Jen nevím, jestli ve vašem případě lze připevnit odrazku či magnet na osu motoru nebo jinou pohyblivou část.
Vojtěch Vosáhlo
ÚčastníkAhoj, na relátku prakticky nezáleží, cokoliv co bude spínané 230V je ok. Já bych ale tohle s relátkem neřešil… Lepší možnost co mě napadá je optoizolátor. Asi hlavně proto že relé je přece jen mechanické a asi má větší šanci se rozbít. To by samozřejmě neplatilo při koupi SSR relé. Tady je jeden z příkladů obvodu s optoizolátorem: http://www.electroschematics.com/11922/mains-voltage-sensor/
Pokud by si stejně chtěl použít relé, doporučil bych třeba toto: https://www.gme.cz/rele-s-ac-civkou-230v-finder-55-12-8-230-0000Držím palce 😉
Edit: Levnější verze třeba toto https://www.gme.cz/rele-s-ac-civkou-230v-finder-40-61-8-230-0000
-
AutorPříspěvky