Close

Vojtěch Vosáhlo

Vytvořené odpovědi

Aktuálně je na stránce zobrazeno 15 příspěvků - 226. až 240. (celkem z 252)
  • Autor
    Příspěvky
  • odpověď na: Nahrání bootloaderu do atmega328 #7963
    Vojtěch Vosáhlo
    Účastník

    Pokud máte připojený externí krystal 16mhz, stačí vybrat desku arduino uno. Kdyby jste měl čip bez externího krystalu, vyberete Arduino on breadboard 8mhz. Mohlo se stát taky to že se vám zavaděč už vypálil, prakticky nevědomky, a nastavilu se nějak fuse a kvůli tomu se k čipu nemůžete dostat, ale to bych prakticky vyloučil. Nebýy čipy od dodavatele nějak nastavené? Předvypálené nebo nastavené na nějakou frekvenci? Když jsem tohle naposledy dělal měl jsem taky hodně problémů a myslím že tenkrát pomohl kondenzátor (4,7uF) ale netuším jestli mezi GND a VCC nebo reset pinem a buď zemí nebo VCC (všechny kombinace na arduinu a na JEHO pinech, né na těch simulovaných pro spi). Budu čekat na tu dokumentaci, určitě to někam posunem…

    odpověď na: Nahrání bootloaderu do atmega328 #7961
    Vojtěch Vosáhlo
    Účastník

    Tahle chyba skáče většinou když je opravdu nějaký problém se zapojením (aspoň z mé zkušenosti). 1 krok určitě znovu zkontrolovat všechna připojení jako popsáno.
    Důležité je nezapomenout spojit země procesoru a arduina. Poté by měly být zapojeny VCC a AVCC na napájení a OBĚ GND na zem. Pokud máte multimetr, prospělo by každé spojení přezkoušet. Taky je možné, stává se mi to občas při programování přes usbasp, že je clock moc vysoký, zkuste ho v programu nadefinovat třeba na 500Hz. Předpokládám že máte nastavený v Nástroje -> programátor Arduino as ISP.
    A nakonec mohl by to být problém i toho že tam máte krystal, můžete ho zkusit dát pryč a uvidíte. Pokud nic nepomůže tak zkuste poslat třeba pár fotek aby bylo dobře vidět zapojení na obou stranách.

    Jen tak naokraj, byl čip už používán? A kde jste ho kupoval?

    odpověď na: Nahrání bootloaderu do atmega328 #7959
    Vojtěch Vosáhlo
    Účastník

    Co používáte za programátor na nahrání bootloaderu?
    Pak můžem něco vymyslet 😉

    odpověď na: Jak naprogramovat ESP8266 #7465
    Vojtěch Vosáhlo
    Účastník

    Ahoj,
    pokud vím tak by to mělo být přes arduino možné ale musíš mít esp v programing modu. To se dělá tak že dáš reset a GPIO0 na zem a poté odpojíš reset a po chvíli GPIO0 (nejsem si 100% jistý že můžeš piny jen odpojit, bylo by lepší dát je přes pullup na 3.3V) to by mělo fungovat. Pokud si na tom dobře s AJ tak jsem našel článek, http://whatimade.today/esp8266-easiest-way-to-program-so-far/ , který to výborně popisuje, je tam i obvod který můžeš dát dohromady abys to měl jednodušší.
    Hodně štěstí.

    odpověď na: Arduino nano a laserová gravírka ala čajna #6873
    Vojtěch Vosáhlo
    Účastník

    To se povedlo. 😀

    odpověď na: Arduino nano a laserová gravírka ala čajna #6788
    Vojtěch Vosáhlo
    Účastník

    To je supr, kdyžtak ještě hoď ňáký fotky výsledků, rád bych se podíval 😀

    odpověď na: Arduino nano a laserová gravírka ala čajna #6750
    Vojtěch Vosáhlo
    Účastník

    Napsal jsem to špatně… Zkusil bych dát 5v na pin označený D12 na té „základové“ desce, pokud se nic nestane tak zkusit pin D11 ten tam neni označený ale domyslíš ho, pokud to nebude fungovat tak kouknout do datasheetu mosfetu a podívat se kde má Gate, na ten pin pak poslat 3.3v a uvidíš.

    odpověď na: Arduino nano a laserová gravírka ala čajna #6748
    Vojtěch Vosáhlo
    Účastník

    A když pošleš 5v z napájení desky na pin D12 nebo D11?
    Mimochodem nemohl by si poslat ještě jednu fotku z blízkosti na ten mosfet a přepínač napětí, jako ze spoda kde jsou vidět spoje..

    odpověď na: Arduino nano a laserová gravírka ala čajna #6746
    Vojtěch Vosáhlo
    Účastník

    Ještě jen tak navíc, zkoušel jsem se podívat do komunikace software s arduinem a když dám zapnout laser vyleze na mě zpráva která obsahuje údaj o intenzitě laseru 0-255 a také nějaký P údaj, konkrétně P0. Teoreticky by tedy sw nemusel poslouchat a mohl by pouštět signál na pin 0 ale to jen tipuju. Kdyby nevyšlo přehození pinu v sw zkus nahrát do arduina ten jednoduchý program který dá pin D12 a radši asi i D11 na jedničku, pak arduino osaď na desku a zapni, laser by měl naskočit 🙂 Jinak prakticky stačí i bez arduina dostat D12 nebo D11 na 5v …

    odpověď na: Arduino nano a laserová gravírka ala čajna #6744
    Vojtěch Vosáhlo
    Účastník

    Podle těch fotek mě napadá pár věcí které by mohli být problémem.
    1) Tohle jen tak tipuju podle obrázku ale pokud jsem správně počítal tak na desce je „slot“ pro arduino který má 16 děr, arduino má ale jen 15 pinů (můžeš mít arduino špatně posunuté, zkus ho posunout tak aby byly stejně země… to asi máš :D). Další věc je že na hlavní desce je vyznačený pin D12 jako 3 z prava, pokud bvy si ale srovnal země měl by být na desce označený pin D12 vlastně D11 na arduinu… je možné že se to jen z obrázku zdá ale myslím že jsou tam kapku přehozené piny. Řešení pro tohle by bylo nastavit pin D11 pro laser a né D12.
    2) Druhá věc je že jsem si u mosfetu všiml přepínače napětí. Bylo by možná dobré zkusit najít zda máš 5v nebo 12v diodu pro vypalování… Pokud nevíš a nebo víš a máš to nastavené správně, zkusil bych měřit napětí na těhle pinech, možná nám to něco řekne…
    3) Třetí a taky docela možná varianta je že máš divné arduino nebo něco s ním. To co je na obrázcích totiž rozhodně není originální Arduino Nano (alspoň pokud vím). Vypadá spíš jako nějaký čínský klon, proto je možné že není třeba správné mapování pinů. Mohl by si zkusit vyndat arduino, nahrát do něj jednoduchý program na sepnutí pinu D12 a zkusil přeměřit zda je všechno správně.

    Tohle jsou věci co mě napadly ale je možné že je v tom ještě něco, zkus nějakou z těch věcí (nejpravděpodobnější je asi ta 1.) a pak napiš výsledky 😀 Držím palce.

    odpověď na: Arduino nano a laserová gravírka ala čajna #6731
    Vojtěch Vosáhlo
    Účastník

    Po tom co jsem projel to co si poslal je nám to vlastně k ničemu, oni k tomu dali jen .hex soubor který už je zkompilovaný a nedá se přeložit zpět do „srozumitelného“ jazyka. První věc co bych zkusil je kliknout na „Laser Control,“ (to už si asi zkoušel) pokud se laser nesepne zkusíme ještě něco zítra až pošleš fotku. Kdyžtak budeš měřit 😉

    odpověď na: Arduino nano a laserová gravírka ala čajna #6728
    Vojtěch Vosáhlo
    Účastník

    Jen tak mimochodem proč uloz.to píše: Nalezen virus: Win32:Malware-gen 😀

    odpověď na: Arduino nano a laserová gravírka ala čajna #6726
    Vojtěch Vosáhlo
    Účastník

    Ahoj,
    nejlepší by bylo poslat jak originální program arduina tak obrázek desky. Pak se s tím dá něco dělat 😉

    odpověď na: Arduino UNO napájanie #5484
    Vojtěch Vosáhlo
    Účastník

    Ahoj,
    Podle fóra na které jsem koukal by Vin měl zvládnout 1 ampér ale doporučuje se to nedělat kvůli přehřívání regulátoru. Nicméně pin Vin slouží jako vstup Voltage in takže nebude fungovat jako výstup 😀

    odpověď na: Posílání dat do mysql databáze #5294
    Vojtěch Vosáhlo
    Účastník

    Tak jo. Chvíli jsem na tom pracoval a už to funguje. Tvůj problém byl nejspíše v tom že DS posílá data tak rychle že se procesor přehltí a zasekne se. Tady je kód který jsem použil na testování. Doplň si do něj vše co používáš na daná místa a pak ho zkus spustit.

    //#include <DS3232RTC.h>        //http://github.com/JChristensen/DS3232RTC
    //#include <Streaming.h>        //http://arduiniana.org/libraries/streaming/
    //#include <Time.h>             //https://playground.arduino.cc/Code/Time
    #include <Wire.h>             //https://arduino.cc/en/Reference/Wire
    #include <avr/sleep.h>                                 
    
    #define SQW_PIN 2
    boolean sleep = false;
    
    void setup(void)
    {
        Serial.begin(115200);
        
        //setSyncProvider() causes the Time library to synchronize with the
        //external RTC by calling RTC.get() every five minutes by default.
       /* setSyncProvider(RTC.get);
        Serial << "RTC Sync";
        if (timeStatus() != timeSet){
            Serial << " FAIL!";
        }
        Serial << endl;
    
        printDateTime( RTC.get() );
        Serial << " --> Current RTC time." << endl;
    
        //Disable the default square wave of the SQW pin.
        RTC.squareWave(SQWAVE_NONE);
    
        //Attach an interrupt on the falling of the SQW pin.
        //digitalWrite(SQW_PIN, HIGH);    //redundant with the following line*/
        pinMode(SQW_PIN, INPUT_PULLUP);
        
    
        //Set an alarm at every 20th second of every minute.
      /*  RTC.setAlarm(ALM1_MATCH_SECONDS, 20, 0, 0, 1);    //daydate parameter should be between 1 and 7
        RTC.alarm(ALARM_1);                   //ensure RTC interrupt flag is cleared
        RTC.alarmInterrupt(ALARM_1, true);*/
    
    }
    
    //volatile boolean alarmIsrWasCalled = false; myslim, ze to nepotrebujeme
    
    void alarmIsr()
    {
        
        sleep_disable();
        sleep = false;
        Serial.println("Probudil jsem se!");
        detachInterrupt(0);
        
    }
    
    void sleepNow() {  
        sleep_enable();
        sleep = true;
        set_sleep_mode(SLEEP_MODE_PWR_DOWN);    // sleep mode is set here 
        
        attachInterrupt(0, alarmIsr, CHANGE);
        sleep_mode(); 
        
     
    
        if(sleep) sleep_disable();         
        Serial.println("Muj kod...");
        delay(1000); ///!!!!!!!!!!!!!!!DULEZITE!!!!!!!!!!!!
       
    
       
       
    }  
    
    int i = 1; //abych zjistil, kolikrat probehl loop
    
    void loop(void)
    {
    // alarmIsrWasCalled = false; myslim, ze to nepotrebujeme
    delay(100);
    Serial.println(i);
    printDateTime();
    delay(100);
    i++;
    sleepNow();
    }
    
    void printDateTime(/*time_t t*/)
    {
        /*Serial << ((day(t)<10) ? "0" : "") << _DEC(day(t)) << ' ';
        Serial << monthShortStr(month(t)) << " " << _DEC(year(t)) << ' ';
        Serial << ((hour(t)<10) ? "0" : "") << _DEC(hour(t)) << ':';
        Serial << ((minute(t)<10) ? "0" : "") << _DEC(minute(t)) << ':';
        Serial << ((second(t)<10) ? "0" : "") << _DEC(second(t));*/
    
        Serial.println("Vypis cas.");
    }

    Mělo by to fungovat tak že když se na interupt pinu něco změní – DS pošle data
    tak se dostaneš do smyčka alarmIsr() —> zpět do sleepNow() na pozici „Můj kód…“ —> loop() —> výpis času printDateTime() a zpět na sleepNow()

    Takhle to jde pořád dokola. Zkus to a napiš jak to funguje. 😀

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