Close

Zbyšek Voda

Vytvořené odpovědi

Aktuálně je na stránce zobrazeno 15 příspěvků - 136. až 150. (celkem z 203)
  • Autor
    Příspěvky
  • odpověď na: ESP 8266 #5246
    Zbyšek Voda
    Správce

    Tyto problémy se vyskytují snad jen ve verzi 1.6.6. Verze 1.6.5 jede OK.

    odpověď na: #define, const #5245
    Zbyšek Voda
    Správce

    Dobrý den.
    Rozdíl je takový, že při použití
    #define A
    Se všechny výskyty A nahradí JIŽ PŘI PŘEKLADU (respektive těsně před ním) v počítači, takže deska Arduino neví, že existovala nějaká konstanta definovaná pomocí #define A.
    Preprocesor překladače dostane text programu a když narazí na výskyt A, nahradí jej, ale ještě jako textovou informaci. Až poté je program přeložen do strojového kódu.

    Narozdíl
    const int B
    znamená, že v paměti procesoru Arduina skutečně existuje proměnná B, jenom je označena jako konstantní, tedy neměnitelná.

    Zbyšek Voda
    Správce

    Dobrý den,
    zatím je vložení na externí server a následné nalinkování obrázku standardní postup.

    odpověď na: Zapojení potenciometru #5173
    Zbyšek Voda
    Správce

    Dobrý den,
    to zapojení bude stejné, jako když zapojujete normální potenciometr.

    Zkuste poslat fotku vašeho posuvného potenciometru.

    odpověď na: Konverze výstupu jednotek #5073
    Zbyšek Voda
    Správce

    Dobrý den, každý jsme měl pravdu v něčem.
    Váš převod jednotek je zapsán chybně, můj je dobře, jen jsem si výsledek špatně interpretoval (bral jsem jednotky v posledním vzorci úpravy jako proměnné, což nelze). Vaše převodní funkce je správná, moje byla špatná.

    Tedy přiznávám svoji chybu. Řešení:

    float mWcm2toWm2(float vstup){
         float vystup = vstup * 10;
         return vystup;
    }

    Shodneme se?

    odpověď na: Spinaní GPO pinu přes web #5072
    Zbyšek Voda
    Správce
    odpověď na: Konverze výstupu jednotek #5050
    Zbyšek Voda
    Správce

    Nesouhlasím s vámi. Vaše úvaha je chybná.

    Rovnice

    odpověď na: Konverze výstupu jednotek #5045
    Zbyšek Voda
    Správce

    Dobrý den,

    přijímáte-li data v mW/cm^2 a chcete je převést na na W/m^2, je přepočet následující:

    W = 1000 mW
    m^2 = 10 000 cm^2
    
    W/m^2 = (1000 mW) / (10 000 cm^2)
    
    W/m^2 = mW / (10 cm^2)

    Dá přepočet se dá tedy vyjádřit funkcí

    float mWcm2toWm2(float mWcm2){ //uznávám, že název funkce je opravdu ošklivý :)
         float Wm2 = mWcm2 / 10;
         return Wm2;
    }

    Snad jsem se nikde nesekl 🙂

    odpověď na: Arduino UNO – nereaguje na snímač polohy #5032
    Zbyšek Voda
    Správce

    Dobrý den,
    nevím, jestli problém správně chápu…
    Máte 4 písty a chcete mít možnost je ovládat nezávisle na sobě, že?

    Navrhuji tedy něco jako:

    int pist1 = 2;
    int pist1Zasunut = 6; 
    int pist1Vysunut = 7;
    
    boolean pozadovanyStavPist1 = false; //false - zasunuto, true - vysunuto
    int stavPist1 = 0; //0 - zasunuto, 1 - někde mezi, 2 - vysunuto
    
    void setup() {
        pinMode(pist1, OUTPUT);
        pinMode(pist1Zasunut, INPUT);
        pinMode(pist1Vysunut, INPUT);
    }
    
    void loop() {
        //prvně nastavíme hodnotu stavPist1
        if(digitalRead(pist1Zasunuto) && !digitalRead(pist1Vysunuto){
            stavPist1 = 0;
        }
        else if(!digitalRead(pist1Zasunuto) && !digitalRead(pist1Vysunuto){
            stavPist1 = 1;
        }
        else if(!digitalRead(pist1Zasunuto) && digitalRead(pist1Vysunuto){
            stavPist1 = 2;
        }
        else{
            //k situaci, kdy by byly oba spínače sepnuté, nedojde
        }
        
        if(stavPist1 == 0){
            if(pozadovanyStavPist1 == false){
                //je zasunuto, nic nedělej
            }
            else{
                digitalWrite(pist1, LOW); //vysunout píst
            }
        }
        else if(stavPist1 == 1){
            if(pozadovanyStavPist1 == false){
                digitalWrite(pist1, HIGH); //pokračuj v zasouvání pístu
            }
            else{
                digitalWrite(pist1, LOW); //pokračuj ve vysouvání pístu
            }
        }
        else if(stavPist == 2){
            if(pozadovanyStavPist1 == false){
                digitalWrite(pist1, HIGH); //zasunout píst
            }
            else{
                //nic nedělej, je vysunuto a to je dobře
            }
        }
    }

    Dá se to zapsat i kratším způsobem, ale takto to snad bude pochopitelné 🙂

    odpověď na: Vhodnost řešení #5029
    Zbyšek Voda
    Správce

    Ano, controllino je vlastně Arduino obalené relátky apod.

    odpověď na: Zasekávání Arduino Yún #5024
    Zbyšek Voda
    Správce

    Pokud jsou to výpadky například jednou do hodiny, tak by alespoň chvilku mělo Arduino vždy zapisovat.

    Ještě mě napadlo, jestli nebude problém v připojení. Máte Yun připojeny k síti pomocí Ethernet kabelu?

    odpověď na: Vhodnost řešení #5022
    Zbyšek Voda
    Správce

    Dobrý den,
    možná by šlo použít Controllino (psali jsme o něm zde), nebo Industruino. Obě jsou to PLC kompatibilní s Arduinem.

    odpověď na: Zasekávání Arduino Yún #4996
    Zbyšek Voda
    Správce

    Dobrý den,
    podle toho co popisujete není chyba v Arduinech.
    Není třeba možné, že na místě B je nějaká chyba v napájení, nebo tak něco?

    odpověď na: Stripboard software #4827
    Zbyšek Voda
    Správce

    Na stripboard se dá rozmístit součástky i ve Fritzingu, ale nevím, jak je na tom s autoroutováním.

    odpověď na: Začátky s Bluetooth modulem #4791
    Zbyšek Voda
    Správce

    Dobrý den.
    Můžete si představit, že bluetooth spojení se (většinou) u Arduina chová tak, jako by tam žádný bluetooth modul nebyl a Arduino přijímalo data přes sériovou linku.

    Každá mobilní aplikace bude mít asi ovládání trochu specifické, veskrze se ale bude jednat o odesílání nějaké sekvence čísel, popřípadě znaků.

    Konstra, kterou posíláte vlastně jenom říká, že se do incomingByte uloží byte přijatý přes sériovou linku.

    Mějme nějakou modelovou aplikaci – například jednoduchý joystick. Při směru nahoru pošle byte s hodnotou ‚u‘, při směru dolů ‚d‘, při směru doleva ‚l‘ a doprava ‚r‘. Vy pak v Arduinu budete na přijetí těchto znaků čekat. Například:

    
    if(incommingByte == 'u'){
        jedNahoru();
    }
    

    Takto si například můžete udělat jednoduché autíčko.

    Asi nejjednodušší na začátek bude, když si do mobilu stáhnete nějaký Bluetooth Terminál – myslím, že mi dobře fungoval třeba tento: Bluetooth Terminal. Ten jenom odešle znaky, které mu zadáte.

    V terminálu se připojíte k vašemu bluetooth modulu a pošlete například znak ‚a‘. V tu chvíli by se měl tento znak uložit do proměnné incommingByte.

    Různé aplikace pro bluetooth komunikaci budou fungovat podobným způsobem. Jakou konkrétní sekvenci posílají najdete většinou v jejich dokumentaci.

    Podrobněji se bluetooth věnuji ve článku Propojujeme Arduino s jinými zařízeními. Tam také popisuji hodně zajímavou aplikaci SensoDuino, která umí posílat data z mobilních senzorů přes BT do Arduina.

Aktuálně je na stránce zobrazeno 15 příspěvků - 136. až 150. (celkem z 203)