posjirka
Vytvořené odpovědi
-
AutorPříspěvky
-
posjirkaÚčastník
Na odpaleni arduina super. .. Musíš ten pásek spínat přes tranzistory. Takhle to vážně odpálíš při větším počtu LED….
tady máš inspiraci:
https://cdn-learn.adafruit.com/assets/assets/000/002/692/medium800/led_strips_ledstripfet.gif?1448059609posjirkaÚčastníka zkoušel jsi strýčka googla?
posjirkaÚčastníka jak jsi to vyřešil? možná by tvé řešení pomohlo dalším začátečníkům …
posjirkaÚčastníka to je klon nějákého projektu, nebo to vymýšlíš od nuly?
Viděl bych tu prostor k optimalizaci. Nemyslím si, že potřebuješ mít opakovací frekvenci 50 hz. To že jí budeš snímat na vstupu a chceš jí na výstupu neznamená, že musíš přenášet každý bit. Prostě ji na vstupu nasnímej co chceš a až to zpracuješ tak to pošli dál.
Přijímač bude fungovat v režimu, že údaje jaké zná bude posílat na výstup, dokud nedostane jiné nastavení. přitom výstupy budou mít opakovací frekvenci 50hz.
je to takový asynchronní režim přenosu.
Chápeš mě? Je to to co potřebuješ?posjirkaÚčastníkprogram dáš jednoduše:
jak píšeš odpově´d tak 10-té tlačítko na oknem je CODE.
Klikneš na ně, do textu se vloží apostrof a ty CTRL+C, CTRL+V vložíš text kodu a klikneš znovu na CODE.
Tím se ti sem vloží kod a bude správně formátovaný. Když to tlačítko CODE vynecháš, tak se některé znaky ztratí, zruší se odsazení ….
jinak jde vložit soubor,a le občas to stávkuje.co se týká PID regulace odkážu tě asi sem:
http://blog.waldi.cz/2015/01/pid-regulator.html
http://duinozone.cz/index.php?topic=542.0ještě jsem jí nepoužíval, ale myslím, že nastavení 3 hodnot není teorie strun 🙂
v duinozone byli i nějáké návrhy základního nastavení… zkus a kdyžtak napiš jak si dopadl.jen pro upřesnění, tu PID regulaci dáš místo přičítání/odečítání hodnot od uhlů. Vlastně necháš PID regulaci a´t ti řekně výsledný uhel.
posjirkaÚčastníkto by neměl být problém. ve smyčce loop() je proměnná „rpm_to_disp“
to je vlastně aktální stav otáček. Na začátek programu si dej “ int nastav = 5000; “ čímž si definova promněnnou nastav s hodnotou 5000 co je mnou vymyšlená hodnota otáček, kterou chceš udržet. Dál si dej na začátek proměnnou “ int uhel = 0; “ tahle proměnná bude udržovat aktuální stav uhlu natočení serva. No zpět k loop() dej tam, že když budou otáčky nižší než nastavené tak zvední úhel serva a když budou větší, tak sniž úhel serva. potom omez hodnoty na rozsah 0 až 90 a´t nepřetočíš servo no a nakonec zapiš hodnotu na servo.jak na servo se dočteš třeba tady:
http://www.pistek.eu/blog/2013/08/15/arduino-6-modelarska-serva/
tu pauzu delay() můžeš teoreticky vynechat….ten muj postup je pomalý a slouží spíš pro seznámení s problematikou. Lepší by bylo použít PID regulaci, ale pojdmě na to postupně …
posjirkaÚčastníkjak psal ales :Napište, co to zařízení má vůbec dělat.
jinak se asi nikdo nebude ani pokoušet poradit…. nema v čemposjirkaÚčastníktak sem dej program co mas a muzeme se na to podivat, od nuly ti to asi nikdo delat nebude … pomoct umime
posjirkaÚčastníkjá bych se nebál ani tohoto řešení:
posjirkaÚčastníkjá odpovím otázkou. a jak bys spínal třeba ventilátor na 230V u tohoto termostatu?
Připojil bys napájení na 230V? to by okamžitě vyhořel. Ne musíš připojit napájení 12V a pak vedle vytáhnout 230V a ventilátor. Když spojíš třeba zem a -12V tak se tina čidlo dostane 230V a někoho to může zabít. Prostě musíš oddělit regulaci a spínaní spotřebič tzv. galvanicky = nesmí se tyto 2 napětí nikdy potkat ani v případě poruchy. Takže opravdu mezi K0 a K1 je jen spínací kontakt relé …posjirkaÚčastníkno něják si nejsem jistý tímto řešením. ano millis funguje souhlas, ale pokud tam budeš chtít použít nějáký další algoritmisu/logiku případně nějáké měření, nemusí se ti to úplně chovat tak jak potřebuješ. Použij již funkční řešení a nevymýšlej kolo.
Použij knihovnu : http://playground.arduino.cc/Code/timejasně pro seznámení se s arduinem souhlasím a plně podporuju tvoji aktivitu. pro „reálnou“ práci použij výše zmíněnou knihovnu.
posjirkaÚčastníksprávně sis odpověděl že v tobě 🙂
To rele je jen spínač, nespíná nějáké napětí z desky. Prostě jen sepne kontakt.
Ty mu musíš na 1 pin kontaktu přivést napětí ze zdroje a na druhém pinu kontaktu ho očekávat při sepnutí rele.
To je standardní funkce termnostatu.
Je mu jedno jaké napětí spíná (v mezích nominálních hodnot relé) a co spíná čí v jaké proudové zátěži. prostě ti dá kontakt a dělej si s ním co chceš …takže tak
posjirkaÚčastníkna desce by mělo být od každého pinu místo pro proškrábnutí, abys přerušil přizemění.
Většinou jdou tedy spíš cestou „SMD pozice“ pro spojení adesního pinu se zemí kapkou cínu.posjirkaÚčastníkv examplech Arduino IDE je ke knihovně WIRE příklad I2C Scanner. ten vyhledá včechny zařízení připojené přes I2C a vypíše jejich adresy. Právě pro nastavení adresy zařízení je to super pomůcka.
Jinak na tom PCF8591 se nastavuje adresa spojením pinu A0, A1, A2 resp. piny 6,7,8 se zemíposjirkaÚčastníka co třeba analogWrite()
https://www.arduino.cc/en/Tutorial/DueSimpleWaveformGeneratorposjirkaÚčastníka nemaš modul s něčím spárovaný? pak na at příkazy většinou nereaguje …
posjirkaÚčastníka máš připojený i pin „KEY“ neboli v tom příkladu „WAKEUP“ ? Ten by měl být připojen an pin 34 u BLuettoh modulu a přivedením log.1 by se měl přemnout do vyšší serie AT příkazů.
posjirkaÚčastníkna to musíš vytvořit menu a pomocí něj pak nastavit RTC
posjirkaÚčastníkpřesně tak …
posjirkaÚčastníkno nevím, podle mě je to špatně. piny 0 a 1 jsou HW serial port, tak nevím proč tam používá Software serial a hlavně jak komunikuje s PC ?
doporučuju zkusít tento návod:
http://www.instructables.com/id/Arduino-AND-Bluetooth-HC-05-Connecting-easily/?ALLSTEPSposjirkaÚčastníkno a jak to máš zapojený a jaký máš program ?
S takových utržkovitých informací se špatně radí …. nevím proč ale vzppměl jsem si na Top Gear kdy popisovali tuším v Itálii poruchu : Jelo to a pak stop ….🙂
posjirkaÚčastníkno moc moudrý z toho nejsem … co vlastně potřebuješ????
posjirkaÚčastníkvětšinou je chyba na straně adruino, kde můžeš mít nastavenou nesprávnou komunikační rychlost s Bluetooth. Hodně dělají tyto problémy vysoké rychlosti na SW serial. Prostě nedokáže je zpracovat. existovala na to nějáká jiná knihovna:
https://www.pjrc.com/teensy/td_libs_SoftwareSerial.html
ostatní příkazy ti fungují ?posjirkaÚčastníkna to se používá RC SWITCH který reaguje podobně jako servo. Při určitě poloze páky se dostane šířka pulzu přes nastavenou mez a Rc switch sepne.
Ve většině případů spínají „zem“, takže musíš připojit arduino na „+“ a zem spínat, nebo použít rele.
RC switche se dají koupit jako modul:
http://www.peckamodel.cz/produkt/rc-modely-a-prislusenstvi/ostatni-elektronika/spinace/j-sp06-o-spinac-sp-06-opto
nebo samozřejmě můžeš něco zbastlit. Za mejch školních let se do bastlitlo docela dost a většinou to funguje. Žádný schéma asi domam už nemám, ale A-Radio okolo 2001-2003 nějáký spínač řešilo. Můžeš použít něco z tohoto:
https://www.google.cz/search?q=rc+switch&client=firefox-b&tbm=isch&tbo=u&source=univ&sa=X&ved=0ahUKEwjB3Pyuuq7SAhXIDZoKHa7HCLoQsAQIQA&biw=1280&bih=616
Paradoxně by ti stačilo samotné arduino, které by snímalo přicházející signál a když by přesáhl určitou mez tak by provedl určitou funkci. Vzhledem k tomu, že moje odpověď je mnohem delší než dotaz nemůžu ti bez lepšího popisu pomoci.posjirkaÚčastníknemáš vůbec zač, každopádně bych ten odpor zvětšil alespoň na 1k ideálně 10k.
Bude to jistější.posjirkaÚčastníkty ses teda rozjel 🙂 . Tomu říkám progress. Jen se ti začal ztrácet přehled o knihovnách. tak jak to máš, jeto dále nešířitelné. Nikdo neví v jaké verzi Arduina jsi to ladil, odkud máš knihovny (MAX6675, nebo Adafruit_SSD1306 rozhodně nejsou standardní vybavení Arduino IDE. Problém je v tom, že si lidi můžou stáhnout tyto knihnvny z různých zdrojů a pak mohou mít různé syntaxe nebo funkce. Výsledkem je pak to, že to nerozchodí. A to ani v některých případech nemusí Adruino vyhlásit chybu. Nejsem si jist, zda není třeba vložit knihovnou MATH pro přepočet PID regulace (možná už je v knihovně PID ale nevím, viděl jsem 3 a 2 jí měli 1 né …) . jinak jsem rád, když lidi mají cíl a snahu ho dosáhnout. Nezřídka se tu člově setka s lidmi , kterým se nechce přemýšlet, nebo se něco učit a v podstatě to chtěji napsat od tebe. Jsi vzácná vyjímka ….
posjirkaÚčastníkdíky za kod určitě se bude někomu hodit.
jen pár poznámek ke kodu:
– u knihoven si do kodu napiš kde jsi tu knihovnu vzal
– zkus pracovat trochu syststematicky, tady změříš teplotu, pošleš na seriiovou linku, pak změříš znovu, je to zbytečné zdržování a vtěžování procesoru. Změřit, poslat, přepočítat
– dvojitý delay na konci je absolutně zbytečný.
– Servo bych aktualizoval jen při změně. takto jej každou sekundu přepisuješ, takže nuluješ čítač, nasavýš tu samou hodnotu znovu spuštíš …neber to prosím jako pohrdavý pohled, jen v čas určitě většinu těch připomínek oceníš.
Za snahu dávám palec nahoru … jen tak dálposjirkaÚčastníkto vypadá, že FET odešel do věčných lovišť a je uvnitř zkratovaný. Určitě použít 100kOhm.
to ArduXPP: díval jsem se do špatného katalogu (ges tam má 2 a já otevřel zrovan ten špatný). Max. porud je 100nA viz příloha
Attachments:
posjirkaÚčastníkto hcdady:
ledka je opravdu součásti optočlenu. to schéma jsem si nevymyslel a je pouze zkopírované z webu. Když na ně koukám, tak tam není nic co by nemělo fungovat. Otázka spíš zní, jeslti si neodpálil FET. Je citlivý na statiku. Napětí 1,1V i přijde hraničně málo. Změř si jaký napětí máš na GATE FETu (uzel mezi R2, R3 a Q1) když přivedeš 3,3V na ledku otočlenu a kolik tam je když to npětí na optočlen nepřivedeš.to vojtech:
na tom zapojení není na pohled nic nefunkčního. Tranzistor je součástka, která se dá zapojit různými způsoby. To co poisuješ je zapojení jako zesilovač třídy A nebo spínač. Tady je to velmi podobné, jen FET má trochu jiné podmínky. Odpor R3 přizemňuje GATE aby se FET sám neotevřel a po ztrátě napětí na GATE rychle zavřel. Přes tranzistor optočlenu se přivede ovl.napětí na GATE, které tranzistor sepne.
Výhoda tohoto zapojení je. že se neneguje signál, takže když přivedeš napětí na LEDku optočlenu, tak se přivede napětí i GATE FETu.
Právě v zapojení optočlenu proti zemi by se tahle funkce obrátila. Dokud bys nepřivedl napětí na ledu optočlenu, tak by byl FET otevřen.teď mě zarazil ten odpor R2. 100R je pro 24V strašně málo. Ve výsledku má IRF540 max. mezní proud pro GATE 1mA. Takže na tom odporu je ztráta 0,1V. Takže z 24V moc neubere a pere plný napětí do GATE. To by FET odpálilo. Měl by tam být odpor tak 47k – 100k.
posjirkaÚčastníkvstup PWM :
– S1-1 – zem
– S1-3 – signálzátěž (ventil):
– X1-1 – „+“ zátěže
– X1-2 – „-“ záteženapájení:
– X2-1 – +24V
– X2-2 – -24Vkovové tělo nemusí být uzěmněno a pozor je to většinou spojené s prostředním pine.
4N35M opravdu piny 3 a 6 nezapojuje a klidně použij i něco dostupnějšícho PC817:
https://www.gme.cz/pc817d-k10101d
jen má trochu jinak packy.
Do nepájivého pole bych to nesázel, nebo vyhoří. Je dělané na proudy do 0,5A a kontakty drží jak pes ježka.
Použij univerzální PCB a zapájej to přimo.
Existuje i pár programu pro návrh PCB zdarma:
http://www.fritzng.org
http://www.circuit.io
…. -
AutorPříspěvky