zabzoun@seznam.cz
Vytvořené odpovědi
-
AutorPříspěvky
-
Breaker
ÚčastníkDobrý den, děkuji za odpověď. Jsem elektrikář ale se slaboproudem nemám moc velké zkušenosti. S mosfet tranzistory jsem nikdy nepracoval. Co se týče arduina tak jsem absolutní začátečník, zvládnu čtení analogové hodnoty digitální spínání pinů, výppis údajů na display a další drobnosti. V arduinu vidím velký potenciál a tak bych ho chtěl využít pro to stmívání akvária jen si nevím rady jak přesně na to. Jak přesně by to fungovalo s tím mosfetem ? Pokud by bylo možné plynule regulovat jak celého osvětlení zároveň (60w) bylo by to super. Prosím o rozvedení myšlenky pro amatéra. Děkuji
Simakai
ÚčastníkAhoj
objednal jsem si funduino mega plus hromadu komponent a už se těším, až to budu dávat dohromady. Některé komponenty mi půjdou bůhví odkud, protože jsem objednával z http://www.dx.com což je nějaký zahraniční obchod.
Nastudoval jsem si příslušnou problematiku, tak snad mě nic nezaskočí.
Pokud bych chtěl projekt do budoucna rozšířit, určitě by se mi hodilo vyřešit bezdrátový přenos z čidel, protože občas by se hodilo měřit povrchovou teplotu na kamnech a uvnitř kamen, které mohou být rozlezlé přes několik místností (i do patra) a pak je problematické použít od teplotních čidel kabely až k duinu. Nevíte o nějakém řešeném případu, že by k jednomu duinu bylo připojeno bezdrátově několik čidel? Samotné čidlo by sestávalo ze senzoru, driveru, vysílače a baterie. A tedy na duinu by byl buď 1 přijímač nebo několik přijímačů (nevím, jak se toto řeší).
posjirka
Účastníkz mého pohledu je mnohem efektivnější a hlavně BEZPEČNĚJŠÍ použít zdroj 12V, čímž oddělíme tu nebezpečnou část pro lajka od té bezpežné (stačí zdroj pro LED pásky), ten by napájel jak arduino tak LED. LED pásky bych spínal přes MOSFET tranzistor a máte 255 stupňové spínán, bez nebezpečí dotyku s 230V. Uvědomte si, že jste blízsko akvária a tam není prostor na hrdinství. Radši ať shoří zdroj, než aby to někoho zabilo.
Není to finančně náročné a přitom relativně BEZPEČNÉ řešení.
Když to shrnu finančně.
zdroj 50VA cca 400kč, arduino 250Kč, univers.deska + mosfet cca 100 Kč, Ledpásek 200 Kč (dá se koupit i 5m za 150 Kč ale je to o štěstí). K tomu pár drátků, odpor, … celkem cca 950 kč.Pokud nejste elektrikář s pár lety praxe, NEPOUŠTĚJTE SE DO PRÁCE S NEBEZPEČNÝM ELEKTRICKÝM PROUDEM.
posjirka
Účastník4 ten driver pro termočlánky využívá SPI rozhraní.
Otázka zní jak přpeínat termočlánky.
Kdyby s epoužilo 4x tento driver, tak je to vcelku finanční zátěž ale elekgantní přepínání měření.
Při přepínání pomocí relé, nebo cmos obvodů je to finanční méně náročné ale rozhodně to bude přesnější. Doba na zotavení po přepnutí, atd…
Na tom samé SPI portu bude i čteška SD karet.
Nevím ale tuší, že na spi rozhraní je možno navěsit max. 4 zařízení. Je třeba se podívat na možnosti zda exituje „virtuální SPI“.
Lepší by bylo I2C rozhraní pro termočlánky.
LCD 2×16 je v pohodě.
počty pinů:
LCD 6 pinů
SD 4 piny
termočlánky 4 piny (přepínání)
tlačítka 2 piny
LED diody 2 piny (šlo by součit s tlačítky).
RTC modul (I2c) 2 piny – neví jestli bude potřeba
Celkem mi to vychází na 18-20 pinů.Pamě´t na tento program by mohla stačit 23kb.
Takže podle I/O a paměti by ti mohlo stačit Arduino UNO.
Když si nejsi jistý kup Arduino MEGA, tam je všeho dost.
Na Ebay stojí cca 350 kč, u nás 500-1000 kč,
http://aukro.cz/funduino-mega-2560-r3-kabel-avr-arduino-i6015916346.html
k tomu rovnou koupit universální PCB:
http://aukro.cz/prototyp-shield-dps-arduino-mega2560-plosny-spoj-i6020062810.html
Na něj dáš jak LCD tak tlačítka, led a nejspíš i Drivery.
256kb paměti bude aboslutně dostačující a nelimitující.
Kompatk ti už předurčuje i mechanické řešneí , můžeš to napájet čím chceš 7-12V (7-9V doporučeno) nebo přes USB. Přes něj to inaprogrmauješ amůžeš postupně oživovat.Jinak termočlánek typu „k“ je vlastně označení charakteristiky anemyslím si, že by se měnil podle výrobců.
posjirka
Účastníknení zač …
posjirka
Účastníko tomto mini arduinu vím a už jsem o něm několikrát uvažoval.
Na internetu je docela dost návodů na vlastní stavbu a tak předpokldám, že funguje.
Jestli se na to v nejbližší době nkdy dostanu zkusím si jej naprogramovat a vyzkoušet.
Mám te´d spíš problém s výrobou PCB ….klachma
ÚčastníkSuper, s tímhle tranzistorem to funguje. Mockrát díky vám oběma!
Breaker
ÚčastníkDobrý den, mám v plánu osvětlení akvária led pásky a chtěl bych je řídin pomocí arduina – rozednívání , stmívání. Problem je v tom že jsem uplný začátečník a nevím si vůbec rady jak začít. Na osvětlení akvaria použiju asi 60w, ale takový příkon asi pwm výstup z arduina nezvládne. Proto bych chtěl pásek rozdělit na cca 5 sekcí a jen jednu z nich ovládat přes pwm. Ostatní by se připojovaly pomocí relátek.
Potřebuji poradit ohledně typu arduina, které pro mě bude nejvhodnější, dále jaký vybrat obvod realného času a lcd display. Má představa je taková že bych mohl pomocí displaye a tlačítek nastavovat který den se má v kolik hodin rozsvěcet a zhasínat, abych v případě potřeby nemusel upravovat samotný program.
Uvítám jakoukoliv radu.jan123
ÚčastníkOmlouvám se příloha byla ve špatném formátu.
Attachments:
posjirka
Účastníkchybami se člověk učí … 🙂
posjirka
Účastníknejde mi otevřít příloha ….
pepa48
ÚčastníkDíky vám moc 🙂 posjirka měl pravdu chyba v projektu byla u mě (v sestavení obvodu) .. Takže už to jede 🙂 ..
posjirka
Účastníkjaký je rozdíl mezi byte a char ? 🙂
obojí je 8-bitová proměnná, jen se jinak zobrazuje, resp. je to jiný pohled na stejnou kombinaci 8 bitů.
Nevím na co to chceš, ale 433MHz je opravdu jen pro přenos jednoduchého kodu. Těch rušení v okolí je spousta (meteostanice, centrální ovl. auta, bezdrátové zvonky ,…).
Navíc je to jednosměrná komunikace.
Nepíšeš ovšem k čemu to chceš, tak je těžké poradit……posjirka
Účastníknemáš zač. Tu hrubou stupnici jsem tam navrhoval od začátku proto, že nikdy neudržíš ruku ve stejné vzdálenosti od čidla. To čidlo taky nikdy nedá 2x po sobě stejný výsledek už jen proto, že se musí počítat z dozvukem předcházejícího signálu , nerovnosti plochy, atd atd.
Ani průměr několika hodnot ti nepomůže a budeš mít nejen velký rozptyl, ale navíc tě to bude stát spoustu času.
Zkoušel jsem zkrátit čas smyčky na 500ms a nefunguje to špatně, navíc je to celkem rychlý.Rád jsem pomohl,…
Nacelnik
ÚčastníkAhoj, několikrát jsem četl tvůj kód a kombinace map a constrain je to pravé – vždycky jsem to řešil nějakým matematickým vzorcem, tyhle fce to udělají jednodušeji a najednou mi to dává smysl….
děkuji ti moc, touhle ukázkou jsi mi ušetřil několik dní života.
Pěkný den a večer.
Davidposjirka
Účastníkhotovo, odzkoušeno, vyřešeno. Až to vyzkoušíš v realitě zjitíš pro je zbytečné a krajně nevhodné hrát si s lineární stupnicí. Po odzkoušení pak celou serivou komunikaci zakomentuj ať ti zbytečně nezkouší odesílat data. zdržuje to procesor a může se i resetnout.
// LED ovládaná rukou v.2 // by JP 2016 // přiblížením ruky se reguluje intzenzita jasu LED od 0 do 100% jasu. // zatím ve 12 krocích 0 - 240 PWM // jemnější nastavení už téměř nejde dosáhnout. // nová intenzita se nastavuje přiblížením ruky na dobu 2s // V.2 - použito funkce map() pro nastavení citlivosti // knihovna EEPROM #include <EEPROM.h> int echoPin = 2; // přijímač int trigPin = 3; // vysílač long distance = 0; // čas odezvy / vzdálenost int LED = 10; // pin s LED diodou s PWM řízením long lastDistance = 0; // hodnota posledního měření int pwm = 0; // hodnota PWM long max_dist = 1500; // maximalni vzdalenost v ms long min_dist = 100; // minimalni vzdalenost v ms long kroku = 6; // pocet stupnu intenzit, kdy 0 = vypni, max = nereaguj takze pocet stupnu je koku-1 byte adresa = 1022; // adresa záznamu v EEPROM void setup() { Serial.begin(9600); pinMode(echoPin, INPUT); pinMode(trigPin, OUTPUT); pinMode(LED, OUTPUT); pwm = EEPROM.read(adresa); // načtení poslední hodnoty z EEPROM analogWrite(LED, pwm); // zápis PWM } void loop() { // vysílám impulz digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // měřím délku odezvy distance = pulseIn(echoPin, HIGH); Serial.print(distance); distance = map(distance, min_dist, max_dist, 0, kroku); // prepocet na stupne intenzity svitu LED distance = constrain(distance, 0, kroku); // omezení přepočtu na nastevný rozsah Serial.print("/"); Serial.print(distance); Serial.print("/"); Serial.println(kroku); if (lastDistance == distance){ if (distance < kroku){ pwm = distance * (255/(kroku-1)); // přepočet na PWM analogWrite(LED, pwm); // zápis PWM // změna oproti záznamu v EEPROM if (pwm != int(EEPROM.read(adresa))) { EEPROM.write(adresa, pwm); // záznam do EEPROM Serial.print("Zapis do EEPROM ..."); } } } Serial.print("Aktualni PWM ..."); Serial.println(pwm); lastDistance = distance; // předání záznamu posledního měření delay(1000); }
posjirka
Účastník…nechám to tu chvilku odležet, nemám moc dobrý den a vznikla by zbytečná hádka bez řešení….. nech to být, hol jsem starý morous….
posjirka
Účastníknapíšu to hodně mírně : jaké máš zkušenosti s touto oblastí ???
Mám na mysli aplikace senzorů v reálném světě.Nacelnik
ÚčastníkTu epromku bych použil pouze v při prvním zápisu „nastavení“, a pak ppři změně. tu změnu počítám tak 1 -2x za týden. Takže 100000/2 je mraky týdnů.
ad1) to se dá vyřešit matematicky ( např každé 2 cm = 1 PWM) + přidat argument – více jak 51cm – ignoruj
ad3) Jak to myslíš? To jsem nepochopil…Můžeš mi dát konkrétní příklad?D.
posjirka
Účastníktribal tam má chybku.
Buď použiješ :
1, NPN pro spínání země : logická 1 přes odpor otevře tranzistor a ten sepne zátěž a moc ti nezáleží na tom jestli je napájeci napětí 5V nebo 12V. Stačí správně určit protékajíc proud, podel toho vypočítat předřadný odpor a vybrat tranzistor, který tu zátěž vydrží.
2, PNP spínáš napájecí napětí : logická 0 přivede „záporné“ napětí na bázi tranzistoru. Ve výsledku ale nepustí vyšší napětí než je napětí mikroprocesoru (tedy 5V), nebo nepůjde uzavřít tranzistor. je vhodné pro spínání zátěže stejného napští jako má mikroprocesor o větším proudu.Někdy se používá kombinace pro spínání segmentu a číslaovky.
Ve zkratce použij zapojení s NPN tranzistorem.
Attachments:
posjirka
Účastníkod pohonu se bude odvijet typ ovládání (pWM, Hmustek, krokáč)
Jinak samozřejmě Ardunio (v podstatě je jedno jakýkoliv) a gryoskop.Možná se podívej na diy projekty BB8.
posjirka
Účastníkspíš se bude vše obvijet od typu pohonu. Nepíše třeba jaká je třeba reakční rychlost, jaké předpokládáš mezní parametry, napájecí napětí, síla atd.
Na něco stačí stolice + deska spojená šroubovnicí, někde potřebuješ řemenici Tady všude je určitá mez + koncové dorazy/spínače.
Na něco potřebuješ kluzné plochy spojené koly se základnou podoběn jako BB8 🙂klachma
ÚčastníkAha, v tom článku právě psali o PNP, tak jsem koupil PNP. Díky za tip, zkusím ten BC337.
posjirka
Účastník5m je v pohodě, většina těch modulů nemá problém ani s 10 m.
Jen si mi pořád neřekl jaká data tam potečou, jak jsou důležitá, jak často se budou opakovat, jaké je potřeba zabezpečení těch dat …
na 433 MHz pracuje kde co, třeba i meteostanice, nebo dálkové ovládání centrálu u auta. pro důležitá jednorázová data není moc vhodný, spíš pro přenost dat ze senzoru, s opakovatelnosti třeba 1x 5s.
Bluetooth je vcelku v pohodě jen si musíš udržet vazbu obou zařízení ať se ti nechytne na kdejaký mobil
2,4GHz pracuje taky vcelku dost věcí (právě bluetooth, dálkové ovládání pro modely, …)
WIFI je taky na 2,4GHz nebo na 5GHz podle typu sítě a potřebuješ mít aktuální název SSID a správné heslo. Provést aktualizaci zanmená nahrát nový program do mikroproces.
Je potřeba opravdu správně vybírat, podle toho na co to chceš, z toho, že to bude panel na ruku moc nezjitím. Může to být 1x denně data o objemu 2kB (potřebuješ větčí zabezpečení a kontorlu popslaných dat) , nebo každých 5s data o 5MB (v tu chvíli taky můžeše zarušit vlastní WIFI signál pro jiná zařízení)….Jak vidíš nejlepší je starý dobrý drát, nebo mě ještě napadá IR jak pro dálkové ovládání …. Pro jednoměrnou komunikaci to může být vhodné řešení.
posjirka
Účastníkwooow kaviárové tousty … BC556 je PNP tranzistor, ten se otevírá při záporném napětí na bázi.
Použij BC337 …posjirka
Účastníkeepromka ti moc nepomůže, spíš ji ničíš neustálím přepisem. Má max 100 000 přepísů což vypadá nekonečně ale při zápisu 1 x 1s = 100 000 s = 1666 min = 27h takže za 1 den zničíš 1 buňku eeprom….
Když se nad tím zamyslím, tak by to mohlo jít např. touto cestou:
1, udělat to formou hrubé stupnice např:
<10cm = 0 (pwm)
15-20cm = 85
25-30cm = 170
35-40cm = 255
>40cm = zapiš ale ignoruj
žádné mezi stavy, prostě tyto hodnoty.
2, Každou 1s si změříš vzdálenost.
3, Tu zapíšeš do pole o 5-ti hodnotách, které budeš neustále posouvat.
4, Když 3 z 5 hodnot budou stejné a přitom menší než 40cm nastav PWM a zapiš do eeprom (pokud je změna proti původní hodnotě v eeprom)Takže dáš ruku na víc než 3s na vzdálenost/intenzitu jakou chceš a podle toho se ti nastaví LED.
Co ty na to? Je to co si představuješ?
klachma
ÚčastníkAch jo, já jsem asi úplně blbej. Mohl bys mi prosím poradit, jaký tranzistor tam dát? Zkusil jsem tenhle: http://www.gme.cz/bipolarni-tranzistor-bc556a-to92-p210-035 a dioda pořád nesvítí. Nevím, jestli jsem nedělal blbost, ale měřil jsem napětí Uce a je pořád 4,5 V, i když zdroj dává 9 V a v celým obvodu je jen ten tranzistor a dioda a hlavně to napětí tam je ať mám na bázi 0 nebo 5 V.
Nacelnik
ÚčastníkAhoj, zneužiji již tento vyřešený dotaz ke svému.
Jsem ve fázi úvah kdy chci také měnit intenzitu jasu pomocí vzdálenosti. Můj problém je ten, že když podržím překážku třebas v rozmezí 10-40cm (ta bude pevně daná) chci aby tato vzdálenost byla převedena na PWM a dále když tu překážku odstraním, tak chci aby hodnota PWM platila i pro odpojení napájení. Jenže jak to udělat?
Podržím ruku na 10 cm bude PWM 125 (vymyslel jsem si toto)
ale když tu ruku odstraním, tak nechci další přepočet ale chci aby platila hodnota 125.
PO čase podržím ruku na 30cm, přepočte se hodntota na PWM (třeba) 200 a pak když dám tu ruku pryč, aby zas platila hodnota 200.Šlo by to zapisovat do EEpromky ( nebude častý zápis),ale jak udělat to, že když dám ruku do vzdálenosti 10cm , rozsvítí se ledka jasem PWM 125 a když překážku odstraním, nedojde k přepisu hodnoty PWM dokuď zase nepodržím ruku jakkoliv ve vzdálenosti 10-40cm.
Poradíte?
Děkuji velice
David
posjirka
Účastníknemusíš to nulovat, stačí když budeš dál odpočítávát millis od old-millis. Stejně to nepustí v rámci proměnné více než je její rozsah a bude ti počítat od nuly. když dáš byte a jeho max hodnotu 255 a příčteš 1 tak máš zase 1 a né 256.
Le_Ze
ÚčastníkA nedá se časovač programově vynulovat?
-
AutorPříspěvky