Teade

Collapse

Foorumi reeglid.

Foorumi reeglistik on uuendatud. Palume tutvuda ja arvesse võtta.
See more
See less

Keegi Arduino'ga ka tegeleb?

Collapse
X
 
  • Filter
  • Kellaaeg
  • Show
Clear All
new posts

    Vs: Keegi Arduino'ga ka tegeleb?

    Äkki on kuidagi releed abiks.Vool tuleb mööda juhet tagasi jah.Nagu ma aru saan.Proovi panna mingi diood juhtmele vahele,et vool käib ainult ühtepidi juhtmest läbi.Ei teagi aga releega annaks korraldada küll.Suht robustne aga lihtne.1 on ja relee mähis tõmbab ning laseb läbi klemmide voolu läbi.Teine on on siis sõltumatu ja pääseb ainult relee klemmini mis on lahus.Segane jutt vähe vast.

    Comment


      Vs: Keegi Arduino'ga ka tegeleb?

      Esmalt postitatud insippo poolt Vaata postitust
      Proovi panna mingi diood juhtmele vahele,et vool käib ainult ühtepidi juhtmest läbi.

      Olen ka mõtelnud dioodile. Kas schottky diood oleks lahendus ning kuidas õige välja arvutada?

      Comment


        Vs: Keegi Arduino'ga ka tegeleb?

        pane lihtsalt mingi suvaline selline vähe jämedam

        Comment


          Vs: Keegi Arduino'ga ka tegeleb?

          Esmalt postitatud or130 poolt Vaata postitust
          Tahan juhtida käsitsi kui ka läbi kontrolleri ning selleks võtsin lüliti ON-OFF-ON.
          Sellel lülitil on tõenäoliselt kolm võimalikku asendit ja kolm klemmi.
          1. asend võiks olla selline et keskmine klemm on ühendatud ühe äärmisega.
          2. asend kõik on omavahel lahti
          3. asend keskmine on koos teise äärmisega.

          Kui on selline lüliti siis:
          Ühendad selle keskmise selle töötava seadmega või siis vahereleega.
          Ühe äärmise ühendad arvuti väljundiga, sellega mida programm muudab.
          Teise ääre klemmi ühendad toitega, mis on sama suur kui arvuti väljund.
          Toite teise otsa, arvuti maa ja relee teise otsa paned kokku.

          Nüüd kui lüliti on keskel ei toimu juhtimist.
          Kui lüliti on ühes asendis siis juhib arvuti ja
          teises asendis lülitasid käsitsi valjundi sisse.

          "Ühesuuna klappi" ehk dioodi sinna vaja ei ole aga kui juhitakse releed siis seal peaks rööpi diood olema.
          Muidu lahutamisel tekib kõrgem pinge ja oli väga ilus arvuti.

          See Arduino on tõesti huvitav arvuti.
          Eriti siinse probleemi valguses.

          Comment


            Vs: Keegi Arduino'ga ka tegeleb?

            Üritan juhiste järgi teha ning loodan, et suurt elektri katkestust ei tee. Arduino poolt juhitav relee on optiliselt isoleeritud ehk ei tohiks arduinot läbi põletada.

            Arduino on huvitav kui vaid oleks koolis füüsikat õppinud.

            Comment


              Vs: Keegi Arduino'ga ka tegeleb?

              Ei leia kuskilt termomeetri juhist,et kuidas peaks nägema välja proge mis ka näitab min ja max temperatuure.Mul juba paar kuud on juhe aknast väljas mille otsas on ds18b20 + siis arduino ja 2x16 lcd.Töötab-toimib.

              Comment


                Vs: Keegi Arduino'ga ka tegeleb?

                Aga äkki kirjutad ise?
                Kontrollid hetke näitu tmax ja tmin näitudega.
                Kui hetke näit temp on suurem kui tmax siis kirjutad tmax -i üle, ning kui hetke temperatuur on väiksem kui tmin kirjutad tmin -i üle.
                Lisaks pead tekitama tmin ja tmax i kuvamise ja nullimise.
                MINULE EI MEELDI KUI MÕNINGAD ISIKUD MINU POSTITUSI MUUDAVAD,
                KUI POSTITUS EI SOBI SIIS PALUKS SEE KUSTUTADA !

                Comment


                  Vs: Keegi Arduino'ga ka tegeleb?

                  Äkki postitad praeguse kood siia, siis oleks hea min max sinna juurde kirjutada.
                  MINULE EI MEELDI KUI MÕNINGAD ISIKUD MINU POSTITUSI MUUDAVAD,
                  KUI POSTITUS EI SOBI SIIS PALUKS SEE KUSTUTADA !

                  Comment


                    Vs: Keegi Arduino'ga ka tegeleb?

                    // LCD Thermostat
                    // www.hacktronics.com


                    #include <OneWire.h>
                    #include <LiquidCrystal.h>


                    // Connections:
                    // rs (LCD pin 4) to Arduino pin 12
                    // rw (LCD pin 5) to Arduino pin 11
                    // enable (LCD pin 6) to Arduino pin 10
                    // LCD pin 15 to Arduino pin 13
                    // LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2
                    LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
                    int backLight = 13; // pin 13 will control the backlight


                    OneWire ds(8); // ds18b20 pin #2 (middle pin) to Arduino pin 8


                    byte i;
                    byte present = 0;
                    byte data[12];
                    byte addr[8];

                    int HighByte, LowByte, SignBit, Whole, Fract, TReading, Tc_100, FWhole;


                    void setup(void) {
                    pinMode(backLight, OUTPUT);
                    digitalWrite(backLight, HIGH); // turn backlight on. Replace 'HIGH' with 'LOW' to turn it off.
                    lcd.begin(2,16); // rows, columns. use 2,16 for a 2x16 LCD, etc.
                    lcd.clear(); // start with a blank screen
                    lcd.setCursor(0,0); // set cursor to column 0, row 0

                    if ( !ds.search(addr)) {
                    lcd.clear(); lcd.print("No more addrs");
                    delay(1000);
                    ds.reset_search();
                    return;
                    }


                    if ( OneWire::crc8( addr, 7) != addr[7]) {
                    lcd.clear(); lcd.print("CRC not valid!");
                    delay(1000);
                    return;
                    }
                    }


                    void getTemp() {
                    int foo, bar;

                    ds.reset();
                    ds.select(addr);
                    ds.write(0x44,1);

                    present = ds.reset();
                    ds.select(addr);
                    ds.write(0xBE);


                    for ( i = 0; i < 9; i++) {
                    data[i] = ds.read();
                    }

                    LowByte = data[0];
                    HighByte = data[1];
                    TReading = (HighByte << 8) + LowByte;
                    SignBit = TReading & 0x8000; // test most sig bit

                    if (SignBit) {
                    TReading = -TReading;
                    }
                    Tc_100 = (6 * TReading) + TReading / 4; // multiply by (100 * 0.0625) or 6.25
                    Whole = Tc_100 / 100; // separate off the whole and fractional portions
                    Fract = Tc_100 % 100;
                    if (Fract > 49) {
                    if (SignBit) {
                    --Whole;
                    } else {
                    ++Whole;
                    }
                    }


                    if (SignBit) {
                    bar = -1;
                    } else {
                    bar = 1;
                    }
                    foo = ((Whole * bar) * 18); // celsius to fahrenheit conversion section
                    FWhole = (((Whole * bar) * 18) / 10) + 32;
                    if ((foo % 10) > 4) { // round up if needed
                    ++FWhole;
                    }
                    }


                    void printTemp(void) {
                    lcd.clear();
                    lcd.setCursor(0,0);
                    lcd.print("Temp is: ");
                    lcd.setCursor(0,1);

                    if (SignBit) {
                    lcd.print("-");
                    }
                    lcd.print(Whole);
                    lcd.print(" C / ");
                    lcd.print(FWhole);
                    lcd.print(" F");
                    }


                    void loop(void) {
                    getTemp();
                    printTemp();
                    delay(1000);
                    }


                    Olen üritanud midagi kirjutada aga noh............... Kujutan ette kuidas peaks asi töötama aga sellest teha ka töötavat asja? Ei tule välja......hetkel küll mitte.

                    Comment


                      Vs: Keegi Arduino'ga ka tegeleb?

                      Rohkem valmisteeke pole tahtnud kasutada või soovidki ise käsipidi koodis sees olla?
                      nt. http://www.milesburton.com/Dallas_Te...ontrol_Library on vähe mugavam kasutada.

                      Siis teed 2 globaalmuutujat tmin ja tmax ning hoiadki eelpoolmainitud viisil nende sees min ja max väärtusi.
                      Kood mis seda teeb tuleb sul panna lihtsalt loop() funktsiooni sisse.
                      Kogu sellise koodi kirjutamiseks ei tohiks rohkem kui 5min kuluda...

                      Comment


                        Vs: Keegi Arduino'ga ka tegeleb?

                        Üritan midagi teha päeval.Kuskil peaks olema venekeelne raamat juhendiks ka olemas vbl.

                        Comment


                          Vs: Keegi Arduino'ga ka tegeleb?

                          Tegin selle koodi ds1820 jaoks sobivaks, kraadi täpsusega juba töötab. Panen ta 0,1 kraadi täpsusega tööle, siis nokitsen min ja max näidud valmis.
                          MINULE EI MEELDI KUI MÕNINGAD ISIKUD MINU POSTITUSI MUUDAVAD,
                          KUI POSTITUS EI SOBI SIIS PALUKS SEE KUSTUTADA !

                          Comment


                            Vs: Keegi Arduino'ga ka tegeleb?

                            Üritasin eila miskit leida kuskilt,et alustuseks oleks midagi aga see mis oli oli tõesti raketiteadus.Mul on põhimõte selge aga teostus on täiesti tume maa.2x16 lcd-le peaks mahtuma 2 ds18b20 koos min ja max tembiga ära aga seda saab pärast. Vaatasin,et 32bit arduino müügis, 49$

                            Comment


                              Vs: Keegi Arduino'ga ka tegeleb?

                              panin selle koodi min ja max näite kuvama ja tegin ds18s20 jaoks ümber.

                              // LCD Thermostat
                              // www.hacktronics.com


                              #include <OneWire.h>
                              #include <LiquidCrystal.h>


                              // Connections:
                              // rs (LCD pin 4) to Arduino pin 12
                              // rw (LCD pin 5) to Arduino pin 11
                              // enable (LCD pin 6) to Arduino pin 10
                              // LCD pin 15 to Arduino pin 13
                              // LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2
                              LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
                              // oli LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
                              // int backLight = 13; // pin 13 will control the backlight
                              const int buttonPin = 7; // the number of the pushbutton pin
                              int buttonState = 0; // variable for reading the pushbutton status



                              OneWire ds(8); // ds1820 pin #2 (middle pin) to Arduino pin 8
                              // toite ja data vahele 4,7 kilooomine takkisti.


                              byte i;
                              byte present = 0;
                              byte data[12];
                              byte addr[8];

                              int HighByte, LowByte, SignBit, Whole, Fract, TReading, Tc_100, FWhole, CountRem;
                              double Temper, Tmax, Tmin; // koma kohtadega muutujad

                              void setup(void) {
                              // pinMode(backLight, OUTPUT);
                              // digitalWrite(backLight, HIGH); // turn backlight on. Replace 'HIGH' with 'LOW' to turn it off.
                              lcd.begin(2,16); // rows, columns. use 2,16 for a 2x16 LCD, etc.
                              lcd.clear(); // start with a blank screen
                              lcd.setCursor(0,0); // set cursor to column 0, row 0

                              // initialize the pushbutton pin as an input:
                              pinMode(buttonPin, INPUT);

                              if ( !ds.search(addr)) {
                              lcd.clear(); lcd.print("No more addrs");
                              delay(1000);
                              ds.reset_search();
                              return;
                              }


                              if ( OneWire::crc8( addr, 7) != addr[7]) {
                              lcd.clear(); lcd.print("CRC not valid!");
                              delay(1000);
                              return;
                              }
                              }


                              void getTemp() {
                              int foo, bar;

                              ds.reset();
                              ds.select(addr);
                              ds.write(0x44,1);

                              present = ds.reset();
                              ds.select(addr);
                              ds.write(0xBE);


                              for ( i = 0; i < 9; i++) {
                              data[i] = ds.read();
                              }

                              LowByte = data[0];
                              HighByte = data[1];
                              CountRem = data[6]; // ds18s20 eripära - seda registrit on vaja lugeda 1/16 kraadi täpsuse saamiseks
                              // CountPer = data[7]; // aga seda pole vaja lugeda, see on alati 10h ehk 16

                              // uus näidu arvestamine
                              SignBit = HighByte & 0x8000; // kas on negatiivne temperatuuri näit?
                              double LowByteH = LowByte;
                              if (SignBit) {
                              double LowByteH = -LowByteH;
                              } else {
                              }
                              double CountRemH = CountRem;
                              double cont = 16 - CountRemH; // võiks nagu int olla, aga miskipärast nii ei tööta.
                              double cont2 = cont / 16;
                              double LowByteH2 = LowByteH / 2;
                              Temper = LowByteH2 - 0.25 + cont2;

                              // max ja min näitude leidmine
                              if (Temper > Tmax) {
                              Tmax = Temper;
                              }
                              else { };

                              if (Temper < Tmin) {
                              Tmin = Temper;
                              }
                              else { };


                              // read the state of the pushbutton value:
                              buttonState = digitalRead(buttonPin);
                              // check if the pushbutton is pressed.
                              // if it is, the buttonState is HIGH:
                              if (buttonState == HIGH) {
                              // kirjutame näidud üle
                              Tmin = Temper;
                              Tmax = Temper;
                              }
                              else {
                              }
                              }


                              void printTemp(void) {
                              lcd.clear();
                              lcd.setCursor(0,0);
                              lcd.print("Temp: ");

                              lcd.print(Temper);
                              lcd.print(" C ");

                              lcd.setCursor(0,1);
                              // lcd.print("min ");
                              lcd.print(Tmin);


                              lcd.print(" <-> ");
                              lcd.print(Tmax);

                              }


                              void loop(void) {
                              getTemp();
                              printTemp();
                              delay(1000);
                              }
                              MINULE EI MEELDI KUI MÕNINGAD ISIKUD MINU POSTITUSI MUUDAVAD,
                              KUI POSTITUS EI SOBI SIIS PALUKS SEE KUSTUTADA !

                              Comment


                                Vs: Keegi Arduino'ga ka tegeleb?

                                milleks see nupp on ja kas peab olema ? Otsin kohe kaabli ja katsetan.

                                Comment

                                Working...
                                X