Close

posjirka

Vytvořené odpovědi

Aktuálně je na stránce zobrazeno 15 příspěvků - 226. až 240. (celkem z 481)
  • Autor
    Příspěvky
  • odpověď na: dalkova spoust pro zrcadlovku #9368
    posjirka
    Účastník

    to se klidně může stát. IR LED má mimo jiné parametr jako vlnová délka. může být špatně nastavená i nosná frekvence a foťák ji pak nedetekuje. Jak píšeš, že jsi zkoušel ten „přímý“ program arduino- foťák a nefunguje , tak bych to na nesprávnou IR LED i typnul.

    odpověď na: dalkova spoust pro zrcadlovku #9349
    posjirka
    Účastník

    nech si vypsat co ti přijímá . viz exampl na stránkách tvůrce knihovny:
    https://www.pjrc.com/teensy/td_libs_VirtualWire.html

    určitě bych použil více než 1 znak. zrovna „1“ se vcelku blbě hledá v tom co ti bude chodit v návalu rušení.

    odpověď na: Uchování hodnoty proměnné #9330
    posjirka
    Účastník

    úplně na začátku. Tam kde máš
    int tlacitko = 0;
    jsem rád, že to funguje jak potřebuješ … jen při tom deklarování proměných nezapomeň že je už jednou máš, tak je nemůžeš deklarovat znovu ve funkcích.
    Těm proměnným deklarovaným na začátku se pak říká globální proměnné. tzn. jsou společné pro všechny funkce/metody.

    odpověď na: Uchování hodnoty proměnné #9327
    posjirka
    Účastník

    po testu klidne zakomentovane casti smaz … bude to prehlednejsi

    odpověď na: Uchování hodnoty proměnné #9326
    posjirka
    Účastník

    omlouvat se vubec nemusis. nikdo z nas nezna vsechno a kazdy nejak zacinal.
    Kdyz vkladas kod pouzivej parove znacky „code“ (tlacitko CODE) pred a za kodem. uchova si formatovani. trochu jsem ti to prekopal:
    – zrusil duplicitni vypocty
    – odstranil zobrazovani obrazovek jen pri stisku tlacitka (funkce zobraz() )
    – presunul promennou tlacitko
    – naformatoval podle se abych se v tom vyznal.
    – …

    vsechny zmeny mam pod revizi “ #1 “ takze ji muzes v pohode dohledat
    Vyzkousej to a uvidis. ja nema jak to vyzkouset a stavet se mi to vazne nechce 🙂 :

    
    // #1 - BY JP 11/2016
    // uprava na prepinani obrazovky pomocí tlacitek IR ovladace
    // uprava na zobrazovani aktualnich dat (v puvodni verzi zustali hodnoty z doby prd sepnutim tlacitka)
    
    /*—–( Import needed libraries )—–*/
    #include <LiquidCrystal.h>
    #include <SD.h>
    #include <Wire.h>
    #include „RTClib.h“
    #include <interval.h>
    #include <IRremoteInt.h>
    #include „IRremote.h“
    
    /*—–( Declare Constants )—–*/
    int receiver = 2; // pin 1 of IR receiver to Arduino digital pin 11
    int teplVenk = 1; //Cidlo Commet
    int vlhkVenk = 0; //Cidlo Commet
    int topTepl = 3; //Pt100 topení teplá
    int topStud = 2; //Pt100 topení studena
    
    int tlacitko = 0; // #1 - ID cislo tlacitka
    
    /*—–( Declare objects )—–*/
    IRrecv irrecv(receiver); // create instance of ‚irrecv‘
    decode_results results; // create instance of ‚decode_results‘
    File logfile;
    Interval blink;
    LiquidCrystal lcd(3, 4, 5, 6, 7, 8); // initialize the library with the numbers of the interface pins
    RTC_DS1307 RTC; // define the Real Time Clock object
    
    /*—–( Declare Variables )—–*/
    const int chipSelect = 10;
    const long blinkinterval = 100; // interval at which to blink (milliseconds)
    
    void setup(){ 
      /*—-( SETUP: RUNS ONCE )—-*/
      Serial.begin(9600);
      irrecv.enableIRIn(); // Start the receiver
      lcd.begin(16,2);
      Wire.begin();
      RTC.begin();
    
      //—————————————-
      if (! RTC.isrunning()) {
        Serial.println(„RTC is NOT running!“); // following line sets the RTC to the date & time this sketch was compiled
        RTC.adjust(DateTime(__DATE__, __TIME__));
      }
      //——————————-
      Serial.print(„Initializing SD card…“);
      pinMode(SS, OUTPUT);
    
      // see if the card is present and can be initialized:
      if (!SD.begin(chipSelect)) {
        Serial.println(„Card failed, or not present“);
        // don’t do anything more:
        while (1) ;
      }
      
      Serial.println(„card initialized.“);
      // create a new file
      char filename[] = „METEO_00.CSV“;
      for (uint8_t i = 0; i < 100; i++) {
        filename[6] = i/10 + ‚0‘;
        filename[7] = i%10 + ‚0‘;
        if (! SD.exists(filename)) {
          // only open a new file if it doesn’t exist
          logfile = SD.open(filename, FILE_WRITE);
          break; // leave the loop!
        }
      }
    
      Serial.print(„Logging to: „);
      Serial.println(filename);
      logfile.println(„Datum, TeplotaVenku, VlhkostVenku, TopeniTepla, TopeniStudena“);
      
      
      tlacitko = 0; // #1 - nastaveni vychozi hodnoty
    }/*–(end setup )—*/
    
    void loop(){
      /*—-( LOOP: RUNS CONSTANTLY )—-*/
    
      if (irrecv.decode(&results)) {
        // have we received an IR signal?
        // Serial.println(results.value, HEX); UN Comment to see raw values
        translateIR();
        irrecv.resume(); // receive the next value
      }
      //——————————————————–
      int SCteplVenk = analogRead(teplVenk);
      SCteplVenk = map(SCteplVenk, 0, 1023, -20, 50);
      
      int SCvlhkVenk = analogRead(vlhkVenk);
      SCvlhkVenk = map(SCvlhkVenk, 0, 1023, 0, 100);
      
      int SCtopTepl = analogRead(topTepl);
      SCtopTepl = map(SCtopTepl, 0, 1023, 10, 120);
      
      int SCtopStud = analogRead(topStud);
      SCtopStud = map(SCtopStud, 0, 1023, 10, 120);
      
      String dataString = „“;
    
      DateTime now = RTC.now();
      //———————————————————–
      if (blink.expired()) {
        blink.set(blinkinterval); // set new interval period
        
        logfile.print(now.year(), DEC);
        logfile.print(„/“);
        logfile.print(now.month(), DEC);
        logfile.print(„/“);
        logfile.print(now.day(), DEC);
        logfile.print(„,“);
        logfile.print(now.hour(), DEC);
        logfile.print(„:“);
        logfile.print(now.minute(), DEC);
        logfile.print(„,“);
        //———————————————————–
        logfile.print(SCteplVenk);
        logfile.print(„,“);
        logfile.print(SCvlhkVenk);
        logfile.print(„,“);
        logfile.print(SCtopTepl);
        logfile.print(„,“);
        logfile.print(SCtopStud);
        logfile.print(„,“);
        // delay(10000); //čekej 10minut
        
        //————————————————————
        
        logfile.println(dataString);
        logfile.flush();
      }
      //———————————————————–
    
      zobraz(); // #1 - vykresleni obrazovky
      
    }/* –(end main loop )– */
    
    /*—–( Declare User-written Functions )—–*/
    void translateIR(){ 
      // takes action based on IR code received
    /* #1 duplicitni funkce
      int SCteplVenk = analogRead(teplVenk);
      SCteplVenk = map(SCteplVenk, 0, 1023, -20, 50);
      
      int SCvlhkVenk = analogRead(vlhkVenk);
      SCvlhkVenk = map(SCvlhkVenk, 0, 1023, 0, 100);
      
      int SCtopTepl = analogRead(topTepl);
      SCtopTepl = map(SCtopTepl, 0, 1023, 10, 120);
      
      int SCtopStud = analogRead(topStud);
      SCtopStud = map(SCtopStud, 0, 1023, 10, 120);
      // describing KEYES Remote IR codes
    */
    
    //  int tlacitko = 0; // #1 - zruseni 
       switch(results.value){
        case 0x141: 
          tlacitko = 1;
          /* #1 - zruseni 
          Serial.println(“ zmacknuto tlacitko 1 „);
          lcd.setCursor(0, 0); // set the cursor to (0,0):
          lcd.print(SCteplVenk);
          lcd.setCursor(0, 1);
          lcd.print(SCvlhkVenk);
          lcd.setCursor(3, 0);
          lcd.print(„C – Teplota“);
          lcd.setCursor(3, 1);
          lcd.print(„% – Vlhkost“);
          */
          break;
        case 0x942: 
          tlacitko = 2;
          /* #1
          Serial.println(“ zmacknuto tlacitko 2 „);
          lcd.setCursor(0, 0);
          lcd.print(SCtopTepl);
          lcd.setCursor(0, 1);
          lcd.print(SCtopStud);
          lcd.setCursor(3, 0);
          lcd.print(„C – Kotel HOT“);
          lcd.setCursor(3, 1);
          lcd.print(„C – Kotel COLD“);
          */
          break;
        case 0x143: 
          tlacitko = 3;
          /* #1
          Serial.println(“ zmacknuto tlacitko 3 „);
          */
          break;
        case 0x944: 
          tlacitko = 4;
          /* #1
          Serial.println(“ zmacknuto tlacitko 4 „);
          */
          break;
        case 0x145: 
          tlacitko = 5;
          /* #1
          Serial.println(“ zmacknuto tlacitko 5 „);
          */
          break;
        case 0x946: 
          tlacitko = 6;
          /* #1
          Serial.println(“ zmacknuto tlacitko 6 „);
          */
          break;
        case 0x147: 
          tlacitko = 7;
          /* #1
          Serial.println(“ zmacknuto tlacitko 7 „);
          */
          break;
        case 0x948: 
          tlacitko = 8;
          /* #1
          Serial.println(“ zmacknuto tlacitko 8 „);
          */
          break;
        case 0x149: 
          tlacitko = 9;
          /*  #1
          Serial.println(“ zmacknuto tlacitko 9 „);
          */
          break;
        case 0x940: 
          tlacitko = 0;
          /* #1
          Serial.println(“ zmacknuto tlacitko 0 „);
          */
          break;
        default:
          /* #1
          Serial.println(“ jine tlacitko „);
          */
      }// End Case
    } //END translateIR
    
    void zobraz(){  // #1 - funkce vykresleni obrazovky
       switch(tlacitko){
        case 1: 
          Serial.println(“ zmacknuto tlacitko 1 „);
          lcd.setCursor(0, 0); // set the cursor to (0,0):
          lcd.print(SCteplVenk);
          lcd.setCursor(0, 1);
          lcd.print(SCvlhkVenk);
          lcd.setCursor(3, 0);
          lcd.print(„C – Teplota“);
          lcd.setCursor(3, 1);
          lcd.print(„% – Vlhkost“);
          break;
        case 2: 
          Serial.println(“ zmacknuto tlacitko 2 „);
          lcd.setCursor(0, 0);
          lcd.print(SCtopTepl);
          lcd.setCursor(0, 1);
          lcd.print(SCtopStud);
          lcd.setCursor(3, 0);
          lcd.print(„C – Kotel HOT“);
          lcd.setCursor(3, 1);
          lcd.print(„C – Kotel COLD“);
          break;
        case 3: 
          Serial.println(“ zmacknuto tlacitko 3 „);
          break;
        case 4: 
          Serial.println(“ zmacknuto tlacitko 4 „);
          break;
        case 5: 
          Serial.println(“ zmacknuto tlacitko 5 „);
          break;
        case 6: 
          Serial.println(“ zmacknuto tlacitko 6 „);
          break;
        case 7: 
          Serial.println(“ zmacknuto tlacitko 7 „);
          break;
        case 8: 
          Serial.println(“ zmacknuto tlacitko 8 „);
          break;
        case 9: 
          Serial.println(“ zmacknuto tlacitko 9 „);
          break;
        case 0: 
          Serial.println(“ zmacknuto tlacitko 0 „);
          break;
        default:
          Serial.println(“ jine tlacitko „);
      }
    }
    odpověď na: Uchování hodnoty proměnné #9318
    posjirka
    Účastník

    ale o tom to právě je…. myslím že jsem to popsal jasně.
    Dej sem kod a můžeme ho upravit. Opravdu nebudu vymýšlet pseudo kod… na to vážně nemám čas….

    odpověď na: Uchování hodnoty proměnné #9308
    posjirka
    Účastník

    zřejmě se troch nechápete.
    Použil bych switch case.

    Představte si, že tlačítko 1 odešle bude mít kod 11 (co dostane od IR přijímače), talčítko 2 bude mít kod 12, tlačítko 3 kod 13.
    obrazovky budou mít čísla 1, 2, 3

    Jen pro představu.
    v setup() si nastavíš, že obrazovka = 1
    ve smyčce loop() pak budeš neustále čekat na příjem kodu a podle toho co příjme změn
    pomocí switch case na
    kod 11 = obrazovka 1
    kod 12 = obrazovka 2
    kod 13 = obrazovka 3

    pak pokračuješ tím, že podle promenne „obrazovka“ zobrazíš co je třeba, tedy další switch case.

    bez kodu se to blbě popisuje 🙂

    odpověď na: dalkova spoust pro zrcadlovku #9307
    posjirka
    Účastník

    takže:
    – máš rozdílné komunikační rychlosti (v setup() máš jednou vw_setup(4000); podruhé vw_setup(1200);)
    – 433 Mhz je standardní řešení, jen je třeba dávat si pozor na napájení (aby to utáhlo vysílač). Pro vyšší výkon se dává vyšší napětí (tuším až okolo 9-12V) ale je to potřeba podívat se na datasheet tvého řešení.Nejsou všechyn stejné.
    – nevím jak máš řešenou anténu. Její provedení výrazně ovlivňuje chování celého řešení hlavně pro dosah.
    – když chceš něco odladit nech si vypsat na seriový port/monitor co ti vlastně přijímá.

    odpověď na: Nezname zarizeni USB – Arduino UNO (china) #9304
    posjirka
    Účastník

    foto se nepřipojilo. Atmega328 je standardní čip pro adruino. Nám se tady jedná o druhý švíb blíž k USB portu …

    odpověď na: Nezname zarizeni USB – Arduino UNO (china) #9302
    posjirka
    Účastník

    fotka nejde načíst… ovladače bys měl mít v adresáři arduino\driver
    otázka co máš za opravdu za čip, jaké máš Windows (vím, že 10 ale máš výroční aktualizaci? bez ní mi třeba FT232 čipy nechtěl vůbec načíst), je dsta v pořádku? zkus na jiném PC. občas se stalo že tu někdo měl desku, která nefunogvala a tuším že to tylo špatně zapájenými piny….

    odpověď na: Makelangelo promblém s MAC. Klon Arduino UNO #9243
    posjirka
    Účastník

    .. to byla spíš taková řečnická otázka … pro josef4 .. nezkoušel jsi jiný SW, Třeba Polargraf .
    https://github.com/euphy
    Ten by měl jít pod Mac jít taky spustit. Snažím se najít problém. Pokud ti ale Arduino IDE jde tak jak píše Vojtěch bude to chybka v SW. Ještě mě napadá taková divná varianta, nabootovat PC na jiném OS (nějáký linux live) a zkusit to.

    odpověď na: Makelangelo promblém s MAC. Klon Arduino UNO #9240
    posjirka
    Účastník

    a může mi někdo vysvětlit, jaký je rozdíl mezi originálem a kopii ?
    Když použiju stejný převodník a FW tak nemůže poznat rozdíl…

    odpověď na: Řídící jednotka pro peletový kotel #9215
    posjirka
    Účastník

    JASNĚ V POHO … 🙂

    odpověď na: Řídící jednotka pro peletový kotel #9213
    posjirka
    Účastník

    On kompilator obcas vypíše chybové hlášení, které není uplně přesně to co očekáváš. Prostš se dostane do slepé uličky a neví proč, tak zapíše poslední známé místo a chybu. Ve VBA je to ještě veselejší. Každá verze MS ACCESS má vlastní syntaxi a ty pak přemýšlíš, proč ti letitý kod najednounejde použít v této aplikaci … no to už je mimo téma.

    LCD je super. Doporučuju 2 řády 16 znaků, protože je dostupný a realitvně levný.
    Stačí si třeba v excelu udělat tabulku 2×16 a zkusti si vypsat jednotlivé možnosti a funkce. Resp. vymezit si prostor pro zobrazení a optimalizovat zprávy.
    třeba místo „rozpenutí termostatu“ nechat na LCD zobrazit 1 nebo 0 pro jednotlivé funkce.
    příklad
    0123456789012345
    0 DOHORENI 1 0 1 1
    1 KVITANCE PORUCHY

    Prvních 8 znaků v prvním (0) řádku zálohovat pro aktuální proces.
    Další 8 (2×4) nechat pro zobrazení stavu 4 hodnot (termostat kotle, prostorový, plamen, …)
    Poslední řádek nechat na zprávy.

    Je to příklad nikoliv kuchařka. Promysli si co bys tam chtěl zobrazit a kouknem na to.

    odpověď na: Řídící jednotka pro peletový kotel #9211
    posjirka
    Účastník

    to nemohlo fungovat … nech to být. Je opraveno a připraveno k testování 🙂

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