Close

dusanmsk

Vytvořené odpovědi

Aktuálně je na stránce zobrazeno 30 příspěvků - 1,051. až 1,080. (celkem z 2,768)
  • Autor
    Příspěvky
  • odpověď na: UNO jako programátor #9860
    Jerry
    Účastník

    Programovat čipy přes dráty je v pohodě v tom problém nemám. Mě šlo o to jestli by nešla použít deska UNO s paticí jako programátor abych to nemusel pořád předrátovávat. Někdo mě mistifikoval, že to jde proto se po tom pídím. Pokud nejde nedá se nic dělat. Díky.

    odpověď na: UNO jako programátor #9859
    posjirka
    Účastník

    arduino může ungovat jako programator, ale ne tak, že vyhodiš původní procesor a dáš tam prázdný. Tak to opravdu nefunguje. Procesor má v e funkci arduina nahraný bootloader, který jej částečně řídí včetně progromování přes UART.
    Stnadardně se totiž programuje přes ISP port a to ej to co ti dal BlindP.
    To že originální čip dáš jinam bez oscilátou ti samozřejmě způsobí, že nebude fungovat. Každý procesor má tzv. fuse, které nastavují spoustu parametrů a jeden z nich je i jaký oscilátor se má použít a na jaké frekvenci. Ty „bez krystalu“ používají interní oscilátor , ael nejde odpojit krystal a čekat, že to bdeu fungovat. Bez přenastavení fuse to opravdu nejde.
    Pořádně prostuduj ten první odkaz od BlindP a vyzkoušej … na tohle téma najdeš i pár vláken co se ptali jiní před tebou . hledat, hledat, zkoušet a hledat 🙂

    odpověď na: UNO jako programátor #9858
    BlindP
    Účastník
    odpověď na: Spínání napájení modulu tranzistorem #9811
    posjirka
    Účastník

    vidím, že sis poradil sám, tak jen pro klid mojí duše:
    zkus toto zapojení:
    http://www.instructables.com/id/ARDUINO-SOLAR-CHARGE-CONTROLLER-Version-20/

    odpověď na: obsluha tlacitka v přerušení #9810
    jpokorny12
    Účastník

    Díky moc
    Ale asi udělám variantu s přepínačem a s potenciometrem a s BCD přepínačem pro změnu programu blikání. Protože nevím, jak bych udělal v tom kodu dvě funkce pro jedno tlačítko. Díky

    odpověď na: Spínání napájení modulu tranzistorem #9809
    Karel.Brno
    Účastník

    Tak po hledání na netu jsem si nakonec poradil sám…koupil jsem pár MOSFETů IRL540N, tak snad to bude fungovat.

    odpověď na: Chyba v kódu – nemůžu najít #9808
    elektronek.cz
    Účastník

    k té podmínce na základě času:
    (od 4 do 5 bude LED svítit)

    
    DateTime now = rtc.now();
    
    if ((now.hour() > 3) && (now.hour() < 6)
       digitalWrite(13, HIGH);
    else
       digitalWrite(13, LOW);
    
    
    posjirka
    Účastník
    posjirka
    Účastník

    myslím si, že to je možné ze 2 příčin:
    1. snímá to uhelný prach
    2. snímá ti odrazy od stěn násypky.
    moc mě nenapdá jak to vyřešit. nejraději bych navrh řešní buˇb pomocí optických čidel ale ty se za chvilku zanesou). Druhá možnost mě napadá tlakové čidlo, ale to by moc spolehlivé nebylo. Možná použit něco jako váhu. čidl ase dají koupit zvláš´t a můžeš je použít jako podložky pod nožičky držáku:
    https://create.arduino.cc/projecthub/team-arduinotronics/arduino-scale-b821ae

    odpověď na: čtení stavu tlačítka nezávisle na programu #9805
    BlindP
    Účastník

    Ahoj, ano použitím časování s millis() – http://www.pistek.eu/blog/2013/08/15/arduino-7-casovani-millis/ BP

    odpověď na: RS 485 #9804
    Pepan
    Účastník

    Tak odstraneni funkce snprintf(), nepomohlo.
    Nepomohlo ani pridani kontroly bufferu
    UCSR0A=UCSR0A |(1 << TXC0);
    ….
    while (!(UCSR0A & (1 << TXC0)));

    odpověď na: Arduino PWM funkce. #9799
    elektronek.cz
    Účastník

    No nevidím nikde Tvé schéma zapojení, ale pokud se dívám na ten obrázek, tak na něm nevidím obvod krystalu a kondiků k němu, jinak bys musel mít atmegu přepnutou na vnitřní oscilátor pomocí fuses …

    MilosD
    Účastník

    Ahoj,
    mam take kotel s automatickym podavecem. Mel jsem tam cidla dve , ale to jedno mi asi odeslo. Jelikoz mi zustaval uhli na jedne strane , delal jsem z tech dvou prumer.
    Ted tam mam jen jedno ( nez prijde nove) a dela mi to blbosti. Myslim , ze se to od toho uhli spatne odrazi.
    https://thingspeak.com/channels/198833

    odpověď na: RS 485 #9789
    Pepan
    Účastník

    fajn sice nevim jak,ale zitra se na to podivam.Diky

    odpověď na: obsluha tlacitka v přerušení #9785
    play
    Účastník
    #define BUTTON_SELECT_MOD     2
    #define BUTTON_SPEED_NEXT      3
    #define BUTTON_SPEED_BACK      4
    
    #define MAX_SPEED_BLINK       10
    
    #define MODE_AUDIO            0
    #define MODE_BLINK            1
    
    bool BUTTON_SELECT_MOD_PRESSED = false;
    long int TIME_BUTTON = 0;
    
    //VHODNÉ ULOŽIT DO EEPROM
    int SELECT_MODE = MODE_AUDIO;
    int SPEED_BLINK = 0;
    //______________________
    
    void setup() {
      pinMode(BUTTON_SELECT_MOD, INPUT);
      pinMode(BUTTON_SPEED_NEXT, INPUT);
      pinMode(BUTTON_SPEED_BACK, INPUT);
    }
    
    void loop() {
      //___________PŘEPÍNÁNÍ AUDIO A BLIKÁNÍ_________[VYUŽITÍ I PRO ON/OFF]
      if (digitalRead(BUTTON_SELECT_MOD) == HIGH) {
        if (BUTTON_SELECT_MOD_PRESSED == false) {
          BUTTON_SELECT_MOD_PRESSED = true;
          if (SELECT_MODE == MODE_AUDIO) {
            SELECT_MODE = MODE_BLINK;
          } else {
            SELECT_MODE = MODE_AUDIO;
          }
        }
      } else {
        BUTTON_SELECT_MOD_PRESSED = false;
      }
      //____________________________________________
    
      if (SELECT_MODE == MODE_AUDIO) {
    
        //    KÓD KDYŽ JE AUDIO
    
      } else if (SELECT_MODE == MODE_BLINK) {
        //___________NASTAVENÍ RYCHLOSTI_________
        if (digitalRead(BUTTON_SPEED_NEXT) == HIGH or digitalRead(BUTTON_SPEED_BACK) == HIGH) {
          if (millis() >= TIME_BUTTON + 1000) {
            TIME_BUTTON = millis();
            if (digitalRead(BUTTON_SPEED_NEXT) == HIGH and SPEED_BLINK <= MAX_SPEED_BLINK) SPEED_BLINK++;
            if (digitalRead(BUTTON_SPEED_BACK) == HIGH and SPEED_BLINK >= 0) SPEED_BLINK--;
          }
        } else {
          TIME_BUTTON = millis() - 1000;
        }
        //_____________________________________
      }
    }
    odpověď na: RS 485 #9779
    Luke_CZ
    Účastník

    Jednou jsem to řešil, problém byl ten, že se serial neměl rád s funkcí snprintf(), zkus posílat data jako pole, mě to vyřešilo problém.

    L.

    odpověď na: RS 485 #9772
    Pepan
    Účastník

    Jedno arduino je uno jako master a jako slave je pouzito nano.Komunikace nefunguje,ani kdyz vynecham RTC a posilam jen text.Zkousel jsem to i pres softverovou seriovou linku a chova se to stejne.Jednou komunikace projde a pak uz ne.Je to tim ze na konci odesilani prepinam komunikac na prijem.Pokud to zakomentuji, nebo odpojim ridici pin z arduina tak data jsou odesilany a prijimany v poradku.

    odpověď na: RS 485 #9771
    Zbyšek Voda
    Účastník

    Dobrý den, jakou desku máte?
    Nemůžou se vám tlouct piny použitých periferií?

    Třeba deska Arduino Leonardo používá pin 2 pro I2C komunikaci.

    odpověď na: RS 485 #9768
    Pepan
    Účastník

    Tak to byla druha moznost.
    Moduly jsou klasika:
    Modul
    Potrebuji komunikovat na 30m se 3 arduiny.Proto chci pouzit RS485.Zatim to mam na stole a posilam si datum a cas.Kdyz zakomentuji nebo odpojim pin na prepinani Vysilani/prijem vse funguje.
    Kod Master:

    
    #include <Wire.h>   // Nativni knihovna pro praci se sbernici I2C
    #include "DS3231.h" // Rucne doinstalovana knihovna pro hodiny DS3231 z GitHubu
    #define DS3231_I2C_ADDRESS 0x68
    // Objekt nasich RTC hodin
    DS3231 hodiny;
    
    // Text s datem a casem ve formatu dd.mm. yyyy hh:mm:ss
    char txtDatumCas[21];
    
    // Ceske popisky dnu v tydnu (zacina se nedeli)
    char dny[][7] = {"Ne", "Po", "Ut", "St", "Ct", "Pa", "So"};
    DateTime cas(2016, 12, 9, 21, 33, 0, 5);
    
    #define SSerialTxControl 2   // RS modul pin 3
        // moje adresa, aby prijmac poznal od koho jsou hodnoty
       // můžete zvolit jakékoliv čislo od 2 do 255
    byte myAddress = 8;
       // buffer pro funkci převodu čísla na text  
    char buff[10];
     
    void setup()  
    {
       Wire.begin(); // Nastartuj sbernici I2C
     hodiny.begin(); // Nastartuj RTC hodiny
      // Inicializujeme seriový port na klasickém pin 0 a 1 (TX a RX)
      Serial.begin(9600);
      pinMode(SSerialTxControl, OUTPUT); 
       pinMode(13, OUTPUT); 
      digitalWrite(3, LOW);
    }
    
    void loop()  {
     
     RTC(); //volani funkce
     SendData(1, 2,txtDatumCas); // SendData(adresát, cislo promenné, data v char[])
     delay(2000); // v jakém inervrvalu se data budou odesílat  
    }
    ///////////////////////////////////////////////////////
    // deklarace funkce které data v určitém formátu odešle
    void SendData(byte address, byte var, char data[]){
     digitalWrite(13,HIGH);
     digitalWrite(SSerialTxControl, 1); // mod odelsilaní
     delay(100);
     Serial.write(0x02); //start byte
     Serial.write(address); // ardesat (komu odesíláme) - u primece neni vyuzito
     Serial.write(myAddress); //moje adresa - od koho to prijmaci doslo
     Serial.write(var); // ocislovaní promenné
     Serial.write(data); // hodnota nebo data
     Serial.write(0x03); // stop byte
     digitalWrite(SSerialTxControl, 0); // konec modu odelsilaní
     digitalWrite(13,LOW);
     delay(100);
     }
     String RTC()
    {
     // Ziskej aktualni cas z RTC hodin
     cas = hodiny.now();
     // Uloz do txtDatumCas datum a cas ve formatu dd.mm. yyyy hh:mm:ss
     snprintf(txtDatumCas, sizeof(txtDatumCas), "%02d.%02d.%d %02d:%02d:%02d", cas.date(), cas.month(), cas.year(), cas.hour(), cas.minute(), cas.second());
     return txtDatumCas;
    
    odpověď na: obsluha tlacitka v přerušení #9767
    posjirka
    Účastník

    pro autonomní blikání )oscilátor) bych použil časovat timer1.
    tady je tutorial použití včetně knihovny:
    https://playground.arduino.cc/Code/Timer1

    hestli chceš jen nastavovat rychlost blikání tak bych použil místo otočného přepínače raděčji potenciometr. připojený na analogový vystup (v unu jich máš 6). Do pomocné proměnné třeba „oldPot“ by sis zavedl předchozí hodnotu potenciometru.
    V každé smyčce loop() bys zkonstroloval jestli nové nastavení se liší od starého (analogRead(A0) != oldPot) a pokud ano tak si přenastav časovat Timer1.
    Takže ve výsledku bys použil přepínač na volbu funkce (zvuk/automat) a potenciometr na nastavení rychlosti. U toho potenciometru jen pozor musíš to uědlat trochu hrubší krok, protože půspbí hodně prvků, které nastavení potenciometru ovlivňují (teplota okolí, stabilita referenčího napětí, odchylka LBA kroku, …).

    odpověď na: obsluha tlacitka v přerušení #9766
    jpokorny12
    Účastník

    Super diky s tím spínačem mě to nenapadlo. Diky
    A jak bych vyřešil tu změnu rychlostí blikání. Kdybych měl tlačítka plus mínus a ty programy bych mel udělané přes delay , nebo to je blbost. Protože kdybych měl pomalou změnu barvy tak bych to tlačítko musel držet dlouho než by se ta rychlost změnila.diky

    odpověď na: Napájení Arduino #9765
    Rob
    Účastník

    No právě proto než jsem se do něčeho pustil, tak jsem se radši zeptal abych nenadělal víc škody jak užitku !
    Moc děkuji za odpověď.

    odpověď na: RS 485 #9764
    posjirka
    Účastník

    ten dotaz toho moc neřekne. Jaké používáš moduly pro komunikaci? Na jakou vzdálenost? kod programu by taky nebyl k zahození 🙂

    Proč používáš Rs485? potřebuješ tahat kvanta dat nebo komunikuješ s jiným zařázením?
    I2c je Arduinu blíž, i když má krátky dosah. Už před pár lety jsem měl myšlenku komunikovat pře one-Wire sběrnici. Jednoduchá, s dlouhým dosahem (i když né 1,2Km jak Rs485) a pro základní komunikaci je to bez problémů. Kolega řešil doma síť proopjení asi 3 arduin a nakonec to vyřešil pomocí SW seriových portů na 1 arduinu, které řídilo zbytek. Tochu těžkopádné, ale účelové.

    odpověď na: obsluha tlacitka v přerušení #9763
    posjirka
    Účastník

    na tlačítka se vykašli. použij přepínač (on/off) pro přepínání zváslosti na hudbě/oscilátor a pak otočný přepínač (ideálně BCD) pro přepínání předvoleb. BCD znamená, že jednotlivé polohy jsou řešeny binárně takže má třeba 16 poloh ,ale jen 4 kontakty. Třeba teto:
    https://www.gme.cz/p-kdr10

    proč to udělat takto? ve smyčce loop() si nejdřív zjistíš, v jakém stavu je přepínač ovládání (hudba/oscilátor) a případně v jaké stavuje přepínač voleb (otočný) a podle toho dál pokračuješ ve smyčce.
    Tím máš zajištěno, že to tak bude i po vypnutí napájení, navíc nemusíš obsluhovat přerušení tlačítkem. Vše ostatní už je stejně shodne.

    odpověď na: Napájení Arduino #9762
    posjirka
    Účastník

    u 3d tiskárny bych se nebál napájení arduina, ale spíš ostatních komponekt (tisková hlava, motory,..) protože ty pojedou nejspíš přes limit svých možností (12V napájení). Arduino mby to mělo zvládnout, i když nevim jak máš napájené drivery motoru. Ve zkratce když tam bylo 12v/5A použij opět 12V a min. 5A. Tohle laborování kde ušetřit pár korun ta může stát celou tiskárnu.

    odpověď na: RFID #9755
    cokoliw
    Účastník

    Myslíš to fotku kterou jsem vložil? https://newcdn-715537.c.cdn77.org/wp-content/uploads/unnamed.jpg
    Já bych taky řek že je to jen pasivní čip, baterii to určitě nemá, to by musela být úplně miniaturní. Já se v tomhle zatím moc nevyznám, je možný že by ta klíčenka umělá přijmout energii na těch 125khz a na 433Mhz vyslat odpověď? Moc díky za odpověď!

    Edit.: Ok, moje chyba, to co mám na mysli já je doopravdy jen pasivní čip. A to co mi poslal výrobce, bylo zřejmě nedorozumění. Takže mám pořád pasivní čip, který běží buď na frekvenci 125khz a nejde mi přečíst nebo na jiné frekvenci, neznámo jaké.

    odpověď na: RFID #9754
    BlindP
    Účastník
    odpověď na: RFID #9753
    cokoliw
    Účastník

    No díky za tip, ale osciloskop k dispozici zrovna nemám, i když proxmark vypadá jako celkem zajímavé řešení 🙂 Nicméně podařilo se mi kontaktovat výrobce. Čip prý funguje jako dálkový vysílač (433MHz) a bezkontaktní čip (EM 125kHz). Takže k arduinu budu muset připojit moduly dva. RDM6300 – pro vyvolání vysílače v čipu a XD-RF-5V pro přečtení výsledku z vysílače. Jestli se pletu, opravte mě, ale mezitím objednávám XD-RF-5V.

    odpověď na: RFID #9752
    BlindP
    Účastník

    Ahoj, stačí použít osciloskop
    https://www.youtube.com/watch?v=KDePJKx8inw
    nebo si postavit tohle http://www.proxmark.org/ a nebo se v práci zeptat. 😀

    odpověď na: Jak zvětšit font kterým se zobrazuje kod? #9751
    KaJi
    Účastník

    Funguje, děkuji. 🙂

    Tak nějak jsem už zapomněl že to může být v takových „volbách“.

Aktuálně je na stránce zobrazeno 30 příspěvků - 1,051. až 1,080. (celkem z 2,768)