Close

posjirka

Vytvořené odpovědi

Aktuálně je na stránce zobrazeno 30 příspěvků - 301. až 330. (celkem z 481)
  • Autor
    Příspěvky
  • odpověď na: Arduino – Pád windows #7899
    posjirka
    Účastník

    hlavně že se an to přišlo … gratuluju

    odpověď na: Arduino – Pád windows #7895
    posjirka
    Účastník

    viděl bych to na špatný řadič USb nebo zkrat na desce.
    Ještě se podívej jeslti máš originál, nebo klon s Ch340g …

    odpověď na: Barevná hudba #7864
    posjirka
    Účastník
    odpověď na: Barevná hudba #7863
    posjirka
    Účastník

    no viděl bych 3 možné cesty:
    1. vykašlat se na arduino a jít analogovou cestou:

    Easy LED Color Organ


    je to jednodušší , bez programování a není tam co pokazit (kromě síly vstupního signálu)
    2. jít cestou analýzy audio signálu (tady je lepší použít třeba Arduino Zero nebo něco s vyšším výpočetním výkonem, je třeba dost vzorků pro analýzu a následně to projít).
    http://www.instructables.com/id/Arduino-Processing-Audio-Spectrum-Analyzer/
    3. použij arduino jako doplněk k PC, ze kterého hudbu přehráváš. Použitý plugin v PC je schopen vše zanalyzovat a poslat data do Arduina, který by fungoval jako spínač pro konkrétní světla:
    http://www.instructables.com/id/How-to-Make-LEDs-Flash-to-Music-with-an-Arduino/?ALLSTEPS
    http://www.instructables.com/id/Arduino-RGB-LED-Music-Lights/?ALLSTEPS

    odpověď na: Ovládání bazénového čerpadla #7862
    posjirka
    Účastník

    podle mě je problém ve 2 stupních:
    1. proč znovu v každé smyčce LOOP inicializuješ LCD? – za mě vypustit stačí v SETUP
    2. Na co potřebujeě refresh 100ms myslím si že 1 – 5s jsou úplně v pořádku, takže ten delay(100); změň na delay(2000);

    add.1. při inicializaci se ti smaže celý text na LCD zbytečný rušivý element
    add.2. 100ms = 10 Hz obnovovací frekvence + doba měření teploty to oko ztěží zareaguje

    odpověď na: Arduino jako ISP programator #7861
    posjirka
    Účastník

    sorry za opožděnou reakci (dovolená). Já takto občas něco programuju a funguje mi to v pohodě.
    Zkusím to popsat bod po bodu a projdi si to taky tak. Přes SEEEDUINO (klon Duemilanove) budu programovat klon Arduino MINI PRO.
    1. přes USB kabel propojím SEEEDUINO s PC
    2. vyberu FILE – EXAMPLES – ARDUINOISP
    3. vyberu TOOLS – BOARD – Arduino Duemilanove w/ATMEGA328
    4. vyberu FILE – UPLOAD
    5. až dojede do konce odpojím od PC
    6. v SEEEDUINO dám kondenzátor 10uF/16V mezi reset (+) a GND (-) – kvůli automatickému resetu
    7. propojím drátky SEEEDUINO – MINI
    +5V – +5V
    GND – GND
    D13 – D13
    D12 – D12
    D11 – D11
    D10 – RESET
    8. v programu Arduino IDE vyberu FILE – EXAMPLES – 01.BASIC – BLINK
    9. vyberu TOOLS – BOARD – ARDUINO MINI W/ATMEGA328
    10. přes USB připojím SEEEDUINO s PC
    11. vyberu FILE – UPLOAD
    12. hotovo ….

    odpověď na: Arduino jako ISP programator #7850
    posjirka
    Účastník
    odpověď na: Vzdálené otevření brány #7827
    posjirka
    Účastník

    předpokládám, že bylo myšlno spíš jiné řešení, než stávající. T5eba pomocí GSM modulu = prozvoněním tohoto telefoního čísla, nějákým jiným ze seznamu by se otevřela brání … chápu to správně?

    odpověď na: pnp tranzistor pro řízení motoru #7719
    posjirka
    Účastník

    máš jej zapojený obráceně.
    Být tebou použiju NPN tranzistor, lépe se vysvětluje funkce.
    Jde totiž o to, že NPN tranzistor spíná při připojení kladného napětí na bázi proti emitoru.
    PNP funguje stejně jen reaguje na záporné napětí báze proti emitoru … .
    Zapoj to u NPN tranzistoru takto:
    +5V dej na motor (pozor dej tam i antiparalelní diodu ať si nezu… Arduino i tranzistor)
    Druhý pin motoru dej na kolektor tranzistoru (BC337)
    Emitor tranzistorudej na GND
    Dej odpor mezi bázi tranzistoru a pin Arduina nebo +5V.

    To ti fungovat bude a nebudeš s tím mít problém. Pokud ti jde o ztráty v tranzistoru můžeš použít typ (MOS) FET.

    odpověď na: pnp tranzistor pro řízení motoru #7716
    posjirka
    Účastník

    a neměla by ta báze tranzistoru být na nějákém funkčním pinu Arduina 🙂
    Ideálně s PWM výstupem …

    odpověď na: Osvětlení akvaria Led pásky #7715
    posjirka
    Účastník

    to letakp:
    dej sem kod cos napsal, třeba příjdeme na příčinu. Osobne si myslím, že je to jak psal vnouzirozbijsklo . pokud čas zobrazuješ jen na začátku smyčky loop() a začne se rozsvěcovat LED tak 255 kroků * 5s = cca 21 minut tj. doba kdy ti asi nereaguje ten LCD display. Zkus si ještě rozmyslet jak by vypadalo to zobrazení na LCD. klidně napiš jeden příklad a podíváme se na to.

    posjirka
    Účastník

    řekl bych, že chyba je v toleranci použitých odporů.
    Když jsem si zkusil vypočítat jak by to mělo vypadat při 100% přesných odporech tak jsou tam vcelku dostatečné odstupy. Při toleranci 1% by to neměl být problém i když tolerance adc převodníku je 1 lba. v těch nejnižších klávesach je odstup 4 kroky takže 3 +/-1. na to se da navázat. Jen jepotřeba krátký vodič, ideálně stíněný a stabilní napětí zdroje. Případně můžeš použít převodník pro I2c. Přepokládám, že tam máš zapoejný min. RTC modul …

    posjirka
    Účastník

    dej sem prosím celý kod a hlavně ZAPOJENÍ. Připadá mi, že :
    – buď používáš víc než 1 Arduino na 1 seriové lince (to by teoreticky ani nemělo jít)
    – nebo se snažíš poslat si příkaz sám sobě uvnitř arduina.

    Předpokládejme, že je to ten druhý případ. V tu chvíli bych oddělil vykonání příkazu od čtení seriové linky. Vy tvoř funkci “ void provedAkci(int pocet) “ … a tu zavolej z funkce “ process_line() “ s počtem opakování.
    Druhý přístup uděláš po stisku tlačítka = zavoláš tu samou funkcis tím samým počtem akci.
    Pro to několikanásobné „stiknutí talčítka“ stačí použít podmínku aby po stisku reagoval na další stisk třeba až po 0,5s (pomocí funkce millis() si zjistíš aktuální strojový čas a po stisku s ho zapíšeš do proměnné. Tu pak porovnáš s aktuálním millis() a pokud bude rozdíl větší než třeba 500 tak reaguj znovu.

    Zkus si ten tvuj prvotní dotaz přečíst třeba po měsící. Myslím že ani ty sám sebe nepochopíš. Prostě člověk v 1 chvíli má myšlenku a zdá se mu, že na světě jen přeci jen ta jedna jediná varianta a nic jiného, tak proč se zdržovat nějákým složitým popisem. To nění kritika. každý z nás takto začínal a po čase pochopil, že je to prostě jinak a je třeba dávat ÚPLNÉ a CELISTVÉ informace. Jinak se mezi ssebou lidi zbytečně štěkají a k řešní to nepřispěje.

    odpověď na: Ovladani ventilu ,ridici signal 0-10 V #7594
    posjirka
    Účastník

    Předpokládám, že se jedná o servopohony průmyslového charakteru a ty jdou ovládat i jinými způsobem. Např. 3 bod pohon vlatně jen spíná napájení na civky „+“ a „-„. má doraz takže se dá natvrdo překlopit na jednu stranu. Regulace je pak řešena tak, že přidáváš/ubíráš otevření/zavření ventilu. Polohu snímáš bu´d ponteicometrem na hřídeli pohonu, nebo se dá udělat, to, že např.1x za den/týden se nechá ventil úplně uzavřít (nechaš ho třeba 2 minuty jet na 1 stranu). Pak u každého pohonu máš jak dlouho mu trvá přejet z 0 na max. Stačí jen měřit čas jak dlouho spínáš tu a tu cívkua určíš si orientační polohu…
    překlad 0-5V na 0-10V samozřejmě jde, je to jakš/takš lineární ale je to to co opravdu chceš?

    odpověď na: Rychlé sepnutí SSRelé #7457
    posjirka
    Účastník

    něják tam nevidím to zpoždění 750ms mezi měřením …
    ověřil sis hodnotu „hyst“-ereze jak se ti v daném čas mění,
    Zkusil bych rozdělit program na měření, vyhodnocení s podmíněnou reakcí.
    Abych to upřesnil:
    měření máš vyřešené, ale v podstatě ti přímo ovlivňuje výsledek (sepnutí relé).
    Já bych to vzal formou statusu. Použij proměnou stav a když bude měření vycházet na sepnutí dej mu honotu 1, jinak 0
    Vyhodnocení – tady si teprve řekni zda ty statusy jsou v kombinaci vhodné pro pokračování sepnutí rele nebo ne. Navíc bych to řešil formou podmínky, že např, relé musí být sepnuté po min.3 cykly smyčky loop. Zave´d si proměnnou „pocitadlo“ a když je požadavek na sepnutí dej mu hodnotu např.“3″.
    Když je požadavek na vypnutí sniž hodnotu o „-1“
    Když je „pocitadlo = 0“ vypni rele jinak rele zapni.

    Mám správný směr myšlenek s tím co potřebuješ nebo jsem to špatně pochopil?

    odpověď na: Jak na název s automatickým posunem jména #7402
    posjirka
    Účastník

    souhlasím se Zbyškem. Asi jedinou variantou je udělat pole objektu (nikoliv proměnných …), které se nadefinuje jako rozěmr pole a poté se pro každý záznam/buňku pole vytvoří instance objektu. Vcelku hezká diskuze a vysvětlení je třeba tu:
    https://forum.arduino.cc/index.php?topic=80913.0

    Zbyšek to napsal velmi správně jen je to v tom textu těžko čitelné.
    v podstatě tě zajímá pouze tato část:

    int BUTTON[] = {2,3,4,5,6};  //button pins
    const int numButtons = 5; 
    
    Bounce bouncer[5];
    
    for( int i = 0; i < numButtons; i++){
       Bounce bouncer[i] = (BUTTON[i], 5);
    }

    Jinak doporučuju použít standardní řadu proměnných, už jen z důvodu omezené kapacity paměti RAM. Například v C# bych si toto dovolil a použil spíš kolekci než pole pro lepší manipulaci se záznamy. V poli musíš nadefinovat jak bude veliké a v případě zmany velikosti provést „přenesní hodnot“. s kolekcí můžeš dělat co chceš. Je však náročná na paměť a Arduino jinepodporuje. Chci tím říst, že stejně na začátku budeš muset nadefinovat kolik těch objektů budeš chtít vytvořt a ověřit si že máš dostatek volných prostředků. Navíc se budeš odkazovat na objekty jako na realtivní adresy, … Prostě mi to trochu v hlavě nabourává tu jednoduchost řešení případů, pro kterou bylo arduino navrženo…. tyto procesy bych spíš řešil na raspberry pi.

    odpověď na: arduino DRL modul pre dialkove svetla #7387
    posjirka
    Účastník

    otočení klíče do 2. polohy je nejjednodušší varianta a v podstatě je tam to arduino už zbytečné. jak jsem ti posílal odkaz tak to je analogová konstrukce za pár korun a bez programování. Jen pro pořádek dobrá rada: používej autorelé na 12V. Jsou veliké ale budou spolehlivé.

    odpověď na: arduino DRL modul pre dialkove svetla #7385
    posjirka
    Účastník

    tady je spoustu faktoru, které to můžou ovlivňovat:
    – rušení od řídících jednotek
    – načnutý alternátor
    – špatná zem
    – ….
    Máš 2 možnosti:
    1, neuvádíš jaký je to auto. Postaru se to řešilo tak, že místo sledování baterie se sledovalo zde je napětí za ořechem (spínací skříňka), která zapíná třeba autorádio atd. Pak bys nemusel sledovat nic analogového jen je/není napětí. jednoduchá konstrukce je třeba tady:
    http://paja-trb.cz/konstrukce/aut_svetla.html
    2, musíš to napětí , které přivádíš nejdřív oddělit (diodou) a pak vyfiltrovat (kondenzátor 100n + 470u proti zemi).

    odpověď na: FT232RL FTDI Basic USB #7366
    posjirka
    Účastník

    víš vubec na co se ptáš?
    Na začátku řešíš nahrání bootloaderu … to jde jedině přes ICSP.
    Když ti dám alternativní návod tak píšeš že je na jiný čip a ve výsledku zjistím, že řešíš komunikaci přes UART …

    odpověď na: FT232RL FTDI Basic USB #7344
    posjirka
    Účastník

    1. nejspíš nemáš nainstalovaný ovladač pro FT232
    2. zkontroluj si zda máš správný port COMxx
    3. zkontroluj si typ programátoru
    4. zkontroluj si výběr správné desky arduino
    5. nevím jestli arduino podporuje FT232 jako ISP programator
    6. pokud sis tam (do atmegy) zkoušel něco nahrávat mohl jsi nastavit špatné pojistky
    7. zkus jiné arduino.
    8. zkus jiný programátor – můžeš využit i jiné arduino s programem Aruino as ISP promammer a dáš kondenzátro 10uF mez reset a zem …

    Use Arduino as an ISP programmer to program non-Arduino AVR microcontrollers

    odpověď na: "Skládání" názvu proměnné v cyklu FOR #7262
    posjirka
    Účastník

    co takhle použít pole (array).
    Můžeš si nadefinovat pole o 15 hodnotách a ve smyčce for do něj zapisovat hodnoty jednotlivých čidel.
    Pole může mít i více než 1 rozměr, takže můžeš udělat i pole o např. 2 rozměrech pro zadání adresy jednotlivých čidel (takže pole 15×8 byte)
    podívej se tady:
    https://www.arduino.cc/en/Reference/Array
    a nejlépe na kapitolu Arrays and FOR Loops

    jenom pozor !!! indexace pole začíná číslem 0 nikoliv 1 !!!

    odpověď na: Osvětlení akvaria Led pásky #7251
    posjirka
    Účastník

    já bych řekl, že ty „chyby“ k kodu asi způsobuje fakt, že nepoužíváte místní značky pro vkládání kodu. Tady jsou použity apostrofy nikoliv párovná značka CODE .
    Ten můj program je jen rychlý návrh jak by to šlo udělat. Jak sjem psal nemám doma DS3231 jen DS1307 a to ve fromě IO = nemám volný hotový modul.
    Chtěl jsem ti jen nastínit jonou možnost řešení …
    Když používáš tu násobnou podmínku ve smyčce FOR doporučil bych spíš použít jednotlivé podmínky IF vnořené (kaskádově) v sobě. Lépe se pak chápe funkce a možnosti řešení z pohledu programátora „žáka“ .

    odpověď na: Osvětlení akvaria Led pásky #7242
    posjirka
    Účastník

    ještě máš chybu tady:

    for (byte brightness = 255; den == 0 && sviti == 1 && brightness >= 0; brightness –) {
    displayTime(); // display the real-time clock data on the Serial Monitor,
    analogWrite(svetlo1, brightness);
    if(brightness == 0) sviti = 0;
    delay(5000);}

    na konci definice smčky for patří 2x minus
    for (byte brightness = 255; den == 0 && sviti == 1 && brightness >= 0; brightness –-)
    jinak ti to nepujde odečítat …..

    odpověď na: Osvětlení akvaria Led pásky #7240
    posjirka
    Účastník

    napsal jsem jednoduchý příklad.
    Je to myslim dobře okomentovaný takže princip by měl být jasný:

    // priklad principu regulace osvetleni akvaria
    // v01
    // by JP 2016
    //
    
    // knihovny
    
    #include <Time.h>
    
    // promenne
    int jas = 0; // pomocna promenna pro vypocet jasu
    const int LED = 10; // pin s LED diodou
    // nasatveni casovace
    int casovac[24] = {0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 
    // jednotlive polozky casovace predstavuji intenzitu jaku v celou hodinu
    // 1. cislice je intenzita osvetleni v 0:00
    // 2. cislice je intenzita osvetleni v 1:00
    // ...
    // 23. cislice je intenzita osvetelni v 23:00
    // cislice jsou v rozsahu:
    // 0 = 0%
    // 255 = 100%
    
    void setup() {
      Serial.begin(9600); // nastaveni seriove komunikace
      pinMode(LED, OUTPUT); // nastaveni pinu jako vystup
    }
    
    void loop() {
      // vypis na seriovy port
      Serial.print(hour()); // hodiny
      Serial.print(":"); 
      Serial.print(minute()); // minuty
      Serial.print(":"); 
      Serial.print(second()); // sekundy
      Serial.print("   Jas:");
      Serial.println(jas); // aktualni jas
      // kdyz je 23 hodin je treba porovnavat hodnoty cislice 23 a 0
      if(hour() == 23) {
        // nastav jas podle aktualni minuty a hodiny 
        jas = map(minute(), 0, 59, casovac[23], casovac[0]);
        // ochrana proti hazardnimu stavu prepoctu
        jas = constrain(jas, casovac[23], casovac[0]);
      } else {
        // jinak porovnej hodnoty cilice pole = aktualni hodina a vedlejsi cislice
        jas = map(minute(), 0, 59, casovac[hour()], casovac[hour()+1]);
        // ochrana proti hazardnimu stavu prepoctu
        jas = constrain(jas, casovac[hour()], casovac[hour()+1]);
      }
      jas = constrain(jas, 0, 255); // omezeni rozsahu regulace
      analogWrite(LED, jas); // nastav aktualni intenzitu  
      delay(1000); // pauza 1s
    }
    odpověď na: Osvětlení akvaria Led pásky #7235
    posjirka
    Účastník

    podle mých výpočtu by to mělo resetovat po 21 minutách 🙂

    Když se na ten program podívaáš, tak ve smyčce ( loop() ) ti neustále :
    – nastavuje vstup „svetlo1“ jako výstupní (pinmode)
    – pak ti zobrazí aktuální čas (displayTime)
    – počká 1 s
    – přečte si aktuální čas (readDS3231time)
    – zjistí jestli není náhodou den (if (h>=8 ….)
    – spustí sekvenci rozsvícení (podmíněnou dalšími faktory) a ta trvá 255 kroku * 5s zpoždění = cca 21minut.
    ….

    po tu dobu rozsvěcení vlastně cykluje sám v sobě a tím pádem nezobrazuje na „serialmonitor“ žádné hodnoty. jestli to chceš vypisovat tak musíš příkaz „displayTime();“ dát i do symček „for“.

    proč se ti resetuje / znovu načítá nevím, nekde je chybka v proměnných „den“, „sviti“, „brightness“. Když tak na to koukám, tak on ti vlastně nikdy nedojede v rozsvícení na „brightness = 255“, protože ve smyčce „for“ mu dáváš podmínku „brightness < 255“. Tzn. že ti skončí ve 254 kroku 🙂 .

    Já bych celou tuto situaci řešil asi trochu jinak. Na počátku bych si nadefinoval pole o 24 pozicích (0-23 hodin) do nich bych si zapsal jakou intenzitu mají mít v nulté minutě a pomocí fuknce „map()“ bych plynule přecházel mezi jednotlivými hodnotami.
    Ano trvalo by to 1 hodinu než by se rozsvítilo světlo naplno/zhasnulo ale bylo by to mnohem čistší řešení …

    nemám moc rád tyhle vnořené podmínky, člověk se v nich ztrácí.

    odpověď na: Osvětlení akvaria Led pásky #7229
    posjirka
    Účastník

    tak ti nevím. V popsiu je Battery input takže bych to bral jako vstup.
    Pak jsem našel v datasheetu toto:
    The device is UL recognized to ensure against reverse charging when used with a primary lithium battery.

    no a na netu jsou i moduly s baterii cr2030:

    vzheldem k tomu, že to má pouze 1 vstup a nikde nabijecí pin nevidím … chtělo by to sehnat schéma toho tvého modulu.

    ještě mě napadlo: to že tam je baterie napevno (tzn. připájena na páskách, neznamená, že je nabijecí….

    odpověď na: Osvětlení akvaria Led pásky #7220
    posjirka
    Účastník

    nechápu ???? Myslíš jako výměnu baterie nebo použití baterie jako primárního zdroje pro apliakci?

    odpověď na: Problém s připojením arduino klon CH340G #7216
    posjirka
    Účastník

    zřejmě čínská pomsta zahnívajícímu západnímu kapitalusmu 🙂
    Ne vážně, to se občas stane a je super že jsi na to přišel sám.
    Chybami se člověk učí. Hlavně že to funguje.

    odpověď na: Problém s připojením arduino klon CH340G #7211
    posjirka
    Účastník

    zkus to na jiném PC a pak zkus jiný kus arduina. CH340 mohla odejít do věčných digitálních lovišť. Kdyby odešel tak Arduino nemusíš vyhazovat. Můžeš jej naprogramovat přes ICSP port a použit v nějáké aplikaci.
    Napadá mě ještě chybný konektor (zapatlané piny na konektoru), vadný krystal pro Ch340g a pod.
    Když to Arduino zapojíš do USB portu tak předpokládám, že LED POWER svítí a LED „L“ na 13 pinu bliká (defaultní program blik). Pokud jo tak Arduino funguje a je to chyba jen komunikace. My máme 3 klony s tímto čipem a všechny fungují ….

    odpověď na: Osvětlení akvaria Led pásky #7210
    posjirka
    Účastník

    a co když zkusíš tenhle exampl.

    Tutoriál – užívání hodin reálného času DS1307 a DS3231 s Arduinem

    Ten funguje? Ten projekt osvětlení akvaria v podstatě jen rozšiřuje tento tutorial.

    Pak mě napadá jen pár věcí proč to nefunguje:
    – špatné zapojení (např prohození SDA a SCK)
    – špatný modul/čip DS3231
    – chybná adresa modulu (na modulu se dá nastavit tak můžeš mít nastavenou jinou než defaultní)

    DS3231 bohužel doma nemám a nedostává se mi času s tím experimentovat ….

Aktuálně je na stránce zobrazeno 30 příspěvků - 301. až 330. (celkem z 481)