Close

malor123

Vytvořené odpovědi

Aktuálně je na stránce zobrazeno 30 příspěvků - 2,491. až 2,520. (celkem z 2,760)
  • Autor
    Příspěvky
  • odpověď na: Jak dlouhé vodiče k čidlům #4680
    MartinCE
    Účastník

    Dobrý den,
    nedávno jsem také řešil podobný problém.
    Čidla pracují se sběrnicí One-wire. Na jednom webu jsem se dozvěděl, že maximum je 100m na jiném 60m.
    Na delší vzdálenost bych doporučil kroucenou dvoulinku a galvanické oddělení…
    Na svém projektu jsem si vystačil s 1m dlouhým kabelem, který byl u čidel.

    Martin

    odpověď na: CaravanControlCenter #4673
    BlindP
    Účastník

    Ahoj, zkus použít funkci Millis pro časování viz příklad „BlinkWithoutDelay“.

    
    const int ledPin =  13;
    const int tlac = 7;      
    unsigned long previousMillis = 0; 
    const long interval = 5000;
               
    void setup() {
      
      pinMode(ledPin, OUTPUT);
      pinMode(tlac, INPUT);
    }
    
    void loop()
    {
      if(digitalRead(tlac) == LOW) {
        previousMillis = millis();
        digitalWrite(ledPin, HIGH);
      
      }
      
      unsigned long currentMillis = millis();
      if(currentMillis - previousMillis >= interval) {
          digitalWrite(ledPin, LOW);
      }
    }
    

    Po stisknutí tlačítka sepne led a po 5 vteřinách zhasne.
    B.

    odpověď na: ATTINY85 s DS18B20 #4561
    Boban
    Účastník

    Ahoj mohl by si prosim poskytnout odkaz na knihovnu OneWire co pouzivas? mam v planu k Attiny pripojit to same cidlo a jeste modul 433MHz a pak to posilat do UNA a teplotu zobrazovat na displeji. Pripadne kdyby si sem moch dat tvuj kod pro inspiraci bylo by to fajn. Diky Boban

    odpověď na: dcf time – rušení #4510
    staricek
    Účastník

    Mám stejný problém. Našel jsi nějaké řešení?
    Používám stejný modul, stejnou lib

    odpověď na: RGB LED Table s TLC5940 #4506
    qmax
    Účastník

    Ano, to je muj problem. Teda asi spis byl. Zjistil jsem ze to blikani asi zpusobuji nestinene vodice k diodam(pouzivam ploche kabely a jsou polozene pres sebe). Kdyz k sobe ty kabely pritlacim tak to zacne blikat, kdyz je dam od sebe tak to sviti vpohode.

    odpověď na: Dopravníkový pás MERKUR #4505
    tibordoma
    Účastník

    Kolega mi poradil, že keďže podľa tých obrázkov na Merkur board je vždy 5V v strede, tak keď to dám aj opačne, tak to nezhorí. Tak som skúsil obidve kombinácie a jedna z nich fungovala.

    Takže teraz som sa pustil do rozbehávania senzora – http://oi59.tinypic.com/34j7vw4.jpg – hore na dopravníku na červenej vodorovnej „tyči“. Tu je označený ako QRDx1 – http://i.snag.gy/Su8QI.jpg . Pripojil som to na Arduino na analógový port a sledoval výstup senzora. Predpokladám, že by to mal byť RGB senzor, nakoľko v popise dopravníka je toto „Set obsahuje mechanické části a je vybaven infa čidly, RGB senzorem, řídící elektronikou a displejem 4×20 mm.“ Ale ako rozoznávať farby, na to som neprišiel, ani som si nevšimol nejaké zmeny vo výstupe pri rozdielnych farbách. Skôr sa mi zdá, že reaguje všeobecne na svetlo. Možno to nesprávne používam. Skúsim vypýtať od Merkuru datasheet k tomu senzoru.

    odpověď na: Které Arduino #4503
    Zbyšek Voda
    Účastník

    V pohodě.
    Buď si koupíte nějaký relé shield a pak jednotlivá relé ovládáte třeba tak, že je zapínáte/vypínáte LOW/HIGH na pinu, nebo si koupíte relé, připojíte k němu nějaký budič (třeba ULN2003a) a ovládáte je pomocí něho.

    odpověď na: Které Arduino #4502
    krokodile
    Účastník

    Super, díky za odpověď. Jak se potom řeší to napojení na relé? Omlouvám se za hloupé dotazy, ale nejsem problematikou se moc nezabývám…

    odpověď na: Které Arduino #4492
    Zbyšek Voda
    Účastník

    Tohle zvládne jakékoliv Arduino 🙂 Klidně Nano, UNO…
    Ještě bych k tomu přidal nějaký modul reálného času (RTC) pro lepší přehled v čase.

    odpověď na: LCD s I2C převodníkem #4467
    Zbyšek Voda
    Účastník

    Jsem rád, že se problém vyřešil 🙂

    odpověď na: LCD s I2C převodníkem #4464
    Decadics
    Účastník

    Tak už jsem to vyřešil. Chyběla mi zem na pinu RW u LCD displeje. Nicméně teď budu řešit problém, jak to rozchodit přes ten I2C převodník, u kterého se mi to chovalo stejně. každopádně jsem rád, že LCD je v pořádku a příště si nejprve pořádně překontroluju zapojení, než budu někam něco psát. Díky za Váš čas. 😉

    odpověď na: Arduino UNO – seknutí #4463
    Pidrman
    Účastník

    Dobrý den

    Tak jsem program upravil. Snad dobře.

    #include <LiquidCrystal.h>
    #include <TimerOne.h>

    // buttons code
    #define btnRIGHT 0
    #define btnUP 1
    #define btnDOWN 2
    #define btnLEFT 3
    #define btnSELECT 4
    #define btnNONE 5

    // directions
    #define FORWARD HIGH
    #define BACKWARD LOW

    // debounce time (milliseconds)
    #define DEBOUNCE_TIME 200

    // PINs for Pololu controller
    #define PIN_STEP 2
    #define PIN_DIR 3

    // lookup table speed – ticks (interrupts)
    const int speed_ticks[] = {-1, 600, 300, 200, 150, 120, 100, 86, 75, 67, 60, 55, 50, 46, 43};

    // global variables
    LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

    int actual_speed;
    int actual_direction;

    int ticks;
    unsigned long tick_count;

    int button;
    boolean debounce;
    int previous_time;

    // custom LCD square symbol for progress bar
    byte square_symbol[8] = {
    B11111,
    B11111,
    B11111,
    B11111,
    B11111,
    B11111,
    B11111,
    };

    // string constants
    char forward_arrow[] = „->“;
    char backward_arrow[] = „<-„;

    void setup() {

    // init the timer1, interrupt every 0.1ms
    Timer1.initialize(100);
    Timer1.attachInterrupt(timerIsr);

    // init LCD and custom symbol
    lcd.begin(16, 2);
    lcd.setCursor(0,0);
    lcd.createChar(0, square_symbol);

    // pins direction
    pinMode(PIN_STEP, OUTPUT);
    pinMode(PIN_DIR, OUTPUT);

    // initial values
    actual_speed = 0;
    actual_direction = FORWARD;
    tick_count = 0;
    ticks = -1;
    debounce = false;

    digitalWrite(PIN_DIR, actual_direction);
    updateLCD();
    }

    void loop() {

    // check if debounce active
    if(debounce) {
    button = btnNONE;
    if(millis() > previous_time + DEBOUNCE_TIME) debounce = false;
    } else button = read_buttons();

    // if a button is pressed, start debounce time
    if(button != btnNONE) {

    previous_time = millis();
    debounce = true;
    }

    // check which button was pressed
    switch(button) {

    case btnUP:
    increase_speed();
    break;
    case btnDOWN:
    decrease_speed();
    break;
    case btnLEFT:
    change_direction(BACKWARD);
    break;
    case btnRIGHT:
    change_direction(FORWARD);
    break;
    case btnSELECT:
    emergency_stop();
    break;
    }

    // finally update the LCD
    updateLCD();
    }

    // increase speed if it’s below the max (70)
    void increase_speed() {

    if(actual_speed < 70) {
    actual_speed += 5;
    tick_count = 0;
    ticks = speed_ticks[actual_speed / 5];
    }
    }

    // decrease speed if it’s above the min (0)
    void decrease_speed() {

    if(actual_speed > 0) {
    actual_speed -= 5;
    tick_count = 0;
    ticks = speed_ticks[actual_speed / 5];
    }
    }

    // change direction if needed
    void change_direction(int new_direction) {

    if(actual_direction != new_direction) {
    actual_direction = new_direction;
    digitalWrite(PIN_DIR, actual_direction);
    }
    }

    // emergency stop: speed 0
    void emergency_stop() {
    actual_speed = 0;
    tick_count = 0;
    ticks = speed_ticks[actual_speed / 5];
    }

    // update LCD
    void updateLCD() {

    // print first line:
    // Speed: xxxRPM -> (or <-)
    lcd.setCursor(0,0);
    lcd.print(„SPEED: „);
    lcd.print(actual_speed);
    lcd.print(„RPM „);

    lcd.setCursor(13,0);
    if(actual_direction == FORWARD) lcd.print(forward_arrow);
    else lcd.print(backward_arrow);

    // print second line:
    // progress bar [##### ]
    // 15 speed steps: 0 – 5 – 10 – … – 70
    lcd.setCursor(0,1);
    lcd.print(„[„);

    for(int i = 1; i <= 14; i++) {

    if(actual_speed > (5 * i) – 1) lcd.write(byte(0));
    else lcd.print(“ „);
    }

    lcd.print(„]“);
    }

    // timer1 interrupt function
    void timerIsr() {

    if(actual_speed == 0) return;

    tick_count++;

    if(tick_count == ticks) {

    // make a step
    digitalWrite(PIN_STEP, HIGH);
    digitalWrite(PIN_STEP, LOW);

    tick_count = 0;
    }
    }

    // read buttons connected to a single analog pin
    int read_buttons() {

    int adc_key_in = analogRead(0);

    if (adc_key_in > 1000) return btnNONE;
    if (adc_key_in < 50) return btnRIGHT;
    if (adc_key_in < 195) return btnUP;
    if (adc_key_in < 380) return btnDOWN;
    if (adc_key_in < 555) return btnLEFT;
    if (adc_key_in < 790) return btnSELECT;
    }

    Ale problém přetrvává 🙁

    odpověď na: novinky pro nepřihlášené #4462
    Zbyšek Voda
    Účastník

    Dobrý den,

    to rozhodně schválně není. Vaše chyba je ale podivná. Zkoušel jsem ji reprodukovat ve více prohlížečích, ale všude mi zobrazování funguje správně (ať už stránkování na úvodní stránce, nebo v Novinky).

    Když půjdete třeba sem: https://bastlirna.hwkitchen.cz/page/3/, zobrazí se vám třetí stránka novinek, nebo úvodní stránka?

    odpověď na: Arduino UNO – seknutí #4460
    Zbyšek Voda
    Účastník

    Dobrý den,

    když tak zběžně koukám na váš program, napadá mě jedna věc. Snad to bude ono.

    Na začátku máte:

     
    Timer1.initialize(100);
    Timer1.attachInterrupt(timerIsr);
    

    což zapříčiní, že se bude funkce timerIsr volat každých 100µs.

    Funci timerIsr máte definovanou jako

    
    void timerIsr() {
      if(actual_speed == 0) return;
      tick_count++;
      if(tick_count == ticks) {  
        // make a step
        digitalWrite(PIN_STEP, HIGH);
        digitalWrite(PIN_STEP, LOW);
        tick_count = 0;
      }
    }
    

    čili každých 100µs se proměnná tick_count zvýší o jednu (pokud neplatí speciální podmínky – ty teď ale přeskočme). Proměnná tick_count je typu int.

    
    int tick_count;
    

    a to by mohl být ten problém. Proměnné typu int mohou uchovávat čísla od -32.768 do 32.767. Vy ale nemáte nijak pojištěno, co se stane, když vám tick_count přeteče.

    Jako první krok zkuste použít jiný typ – například unsigned long, který může mít rozsah od 0 do 4.294.967.295.

    
    unsigned long tick_count;
    

    Pokud se problém vyřeší (respektive se o hodně odloží), budeme mít jistotu, že to byl skutečně problém použitého datového typu.

    Poté můžete zkusit dodělat detekci přetečení proměnné. Jelikož ale při zvýšení každých 100µs „vydrží“ tato proměnná počítat asi pět dní, neviděl bych to jako nutnost 🙂

    odpověď na: RGB LED Table s TLC5940 #4459
    Zbyšek Voda
    Účastník

    Dobrý den,

    problémem v rychlosti myslíte to, že se řádky rozsvěcují moc pomalu a nevznikne pak dojem, že svítí všechny naráz?

    Zkuste nám sem poslat váš program, to by také mohlo pomoci.

    odpověď na: ATTINY85 s DS18B20 #4450
    Dan
    Účastník

    Odpovím si tedy sám, na anglickém fóru mi poradili v mžiku. Attiny85 musím provozovat na 8Mhz a výš. Přepnul jsem obvod na vnitřní oscilátor 8 MHz a vše začalo fungovat k naprosté spokojenosti. 🙂

    odpověď na: Ovládání a ochrany zesilovače #4387
    HadrDisk
    Účastník

    Trošku upravená verze 0.0002 :))

    int soft = 7; //zapnutí trafa přes odpor
    int tr = 8; //zapnutí trafa bez odporu
    int repro = 9; //zpožděné připojení repro + ochrana před DC
    int buttonPin = 10; //Tlačítko power
    int led = 13; //Kontrolka (při DC na výstupu zesilovače bliká do resetu obvodu)
    int DC1 = analogRead(A0); //ochrana L kanálu
    int DC2 = analogRead(A1); //ochrana P kanálu

    boolean currentState = LOW;//stroage for current button state
    boolean lastState = LOW;//storage for last button state
    boolean ledState = LOW;//storage for the current state of the LED (off/on)

    void setup() {
    pinMode(buttonPin, INPUT);//this time we will set the pin as INPUT
    pinMode(repro, OUTPUT);
    pinMode(soft, OUTPUT);
    pinMode(tr, OUTPUT);
    pinMode(led, OUTPUT);
    Serial.begin(9600);

    }

    void loop() {
    int DC1 = analogRead(A0);
    int DC2 = analogRead(A1);
    Serial.println(DC2); //informace pro nastavení napětí
    delay(100);

    currentState = digitalRead(buttonPin);

    while ((DC1 > 800 && lastState < 800)) {
    digitalWrite(tr, LOW);
    digitalWrite(soft, LOW);
    digitalWrite(repro, LOW);
    digitalWrite(led, HIGH);
    delay(200);
    digitalWrite(led, LOW);
    delay(200);
    }

    while (DC2 > 800 && lastState < 800) {
    digitalWrite(tr, LOW);
    digitalWrite(soft, LOW);
    digitalWrite(repro, LOW);
    digitalWrite(led, HIGH);
    delay(200);
    digitalWrite(led, LOW);
    delay(200);
    }

    if (currentState == HIGH && lastState == LOW) {
    delay(10);//crude form of button debouncing
    if (ledState == HIGH) {
    digitalWrite(repro, LOW);
    delay(200);
    digitalWrite(soft, LOW);
    digitalWrite(led, LOW);
    digitalWrite(tr, LOW);
    ledState = LOW;
    } else {
    digitalWrite(led, HIGH);
    digitalWrite(soft, HIGH);
    delay(1000);
    digitalWrite(tr, HIGH);
    delay(60);
    digitalWrite(soft, LOW);
    delay(3000);
    digitalWrite(repro, HIGH);
    ledState = HIGH;
    }
    }
    lastState = currentState;
    }

    Ocením nějaké návrhy na zjednodušení a případný reset blikající LEDky dlouhým stiskem tlačítka :))

    Předem díky za nápady :))

    odpověď na: LCD s I2C převodníkem #4338
    Decadics
    Účastník

    Děkuji za rady, mrknu, jestli je vše, co jste popsal v pořádku. Pokud ano, koupím raději nový a originální arduino displej. Hzeký den. 🙂

    odpověď na: LCD s I2C převodníkem #4337
    Zbyšek Voda
    Účastník

    Program bude v pořádku. Mě tohle normálně fungovalo.
    Nabízí se tedy hledat problém někde jinde. Koukal jsem třeba sem: http://stackoverflow.com/questions/9217084/arduino-lcd-only-showing-black-boxes-on-bottom-row

    Nabízí tam vícero tipů.

    • Zkontrolovat zapojení – jestli nemáte nějaký vadný vodič.
    • Zkontrolovat, jestli jsou piny dobře připájené k LCD.
    • Před lcd.begin() dát delay(1000) – display by mohl potřebovat čas na naběhnutí
    • Ujistěte se, jestli se program skutečně nahrál do Arduina (zkuste třeba nahrát blikání LEDkou a pak zase zpět na LCD hello world)

    Takhle na dálku mě nenapadá nic dalšího.

    odpověď na: LCD s I2C převodníkem #4336
    Decadics
    Účastník

    Děje. Při otáčení poťákem se mění kontrast. Od svetlého do nejtmavšího. Regulací kontrastu to asi nebude. Na netu jsem našel vícero lidí, kteří měli stejný problém. Jen se to na těch fórech nikdy nedořešilo do konce. Takže se jedná o obvyklý problém, ale neznám řešení. Možná bude něco špatného v kódu, nebo bude špatná knihovna?

    odpověď na: LCD s I2C převodníkem #4335
    Zbyšek Voda
    Účastník

    Takže když točíte kontrastním potenciometrem, tak se nic neděje?
    Přijde mi, že toto dělá displej, když má nastavený maximální kontrast.

    odpověď na: LCD s I2C převodníkem #4330
    Decadics
    Účastník

    Dobrý den,

    zařízení jsem již rozebral a oddělil jsem I2C převodník od LCD s tím, že se pokusím o klasické zapojení bez I2C převodníku abych vyloučil jeho poškození. Bohužel, problém přetrvává i bez I2C převodníku. Displej zobrazuje to samé, co předtím. Z I2C modulu jsem použil jen potenciometr abych mohl štelovat kontrast.

    Foto: http://decadics.rajce.idnes.cz/ARDUINO_-_LCD_PROBLEM#ARDUINO2.jpg

    Zdroják:

    /*
    LiquidCrystal Library – Hello World

    Demonstrates the use a 16×2 LCD display. The LiquidCrystal
    library works with all LCD displays that are compatible with the
    Hitachi HD44780 driver. There are many of them out there, and you
    can usually tell them by the 16-pin interface.

    This sketch prints „Hello World!“ to the LCD
    and shows the time.

    The circuit:
    * LCD RS pin to digital pin 12
    * LCD Enable pin to digital pin 11
    * LCD D4 pin to digital pin 5
    * LCD D5 pin to digital pin 4
    * LCD D6 pin to digital pin 3
    * LCD D7 pin to digital pin 2
    * LCD R/W pin to ground
    * 10K resistor:
    * ends to +5V and ground
    * wiper to LCD VO pin (pin 3)

    Library originally added 18 Apr 2008
    by David A. Mellis
    library modified 5 Jul 2009
    by Limor Fried (http://www.ladyada.net)
    example added 9 Jul 2009
    by Tom Igoe
    modified 22 Nov 2010
    by Tom Igoe

    This example code is in the public domain.

    http://www.arduino.cc/en/Tutorial/LiquidCrystal
    */

    // include the library code:
    #include <LiquidCrystal.h>

    // initialize the library with the numbers of the interface pins
    LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

    void setup() {
    // set up the LCD’s number of columns and rows:
    lcd.begin(16, 2);
    // Print a message to the LCD.
    lcd.print(„hello, world!“);
    }

    void loop() {
    // set the cursor to column 0, line 1
    // (note: line 1 is the second row, since counting begins with 0):
    lcd.setCursor(0, 1);

    odpověď na: LCD s I2C převodníkem #4324
    Zbyšek Voda
    Účastník

    Dobrý den, můžete sem postnout fotku vašeho zapojení? 🙂

    odpověď na: mega2560 web i2cLCD16x4 termostat vyvoj #4308
    jurda23
    Účastník

    problem s web byl vyřešen nevšimnul jsem si že používám porty 10, 11, 12, 13 ktere potřebuje ethernet shild

    [code]
    #include <SD.h>
    #include <Ethernet.h>
    #include <SPI.h>
    #include <SoftwareSerial.h>
    #include <MemoryFree.h>
    #include <LCD.h>
    #include <LiquidCrystal.h>
    #include <LiquidCrystal_I2C.h>
    #include <OneWire.h>
    #include <Wire.h>
    #include <DallasTemperature.h>

    float T00;
    float T01;
    float T02;
    //float T03;
    // zde si upravte podle sebe
    byte mac[] = { 0x90, 0xA2, 0xDA, 0x0F, 0xC4, 0x36 };
    // IP adresa

    byte ip[] = { 192, 168, 99, 150 };
    byte gateway[] = { 192, 168, 99, 1 };
    byte subnet[] = { 255, 255, 255, 0 };
    String readString;
    // port
    EthernetServer server(80);
    //RGBLED
    int bluePin1 = 40; //Digital Pin fĂĽr Blaue LED1 in RGB-LED
    int greenPin1 = 41; //Digital Pin fĂĽr GrĂĽne LED1 in RGB-LED
    int redPin1 = 42; //Digital Pin fĂĽr Rote LED1 in RGB-LED

    int redIn1 = 0;
    int greenIn1 = 1;
    int blueIn1 = 2;

    int redVal1;
    int greenVal1;
    int blueVal1;

    int bluePin2 = 4; //Digital Pin fĂĽr Blaue LED2 in RGB-LED
    int greenPin2 = 5; //Digital Pin fĂĽr GrĂĽne LED2 in RGB-LED
    int redPin2 = 6; //Digital Pin fĂĽr Rote LED2 in RGB-LED

    int redIn2 = 3;
    int greenIn2 = 4;
    int blueIn2 = 5;

    int redVal2;
    int greenVal2;
    int blueVal2;

    //Relays
    int relPin1 = 2; //Digital Pin fĂĽr Relay1
    int relPin2 = 3; //Digital Pin fĂĽr Relay2
    int relPin3 = 8; //Digital Pin fĂĽr Relay3
    int relPin10 = 22; //Digital Pin fĂĽr Relay22
    int relPin11 = 24; //Digital Pin fĂĽr Relay24

    int relPin1In = 22;
    int relPin2In = 1;
    int relPin3In = 5;
    int relPin10In = 23;
    int relPin11In = 25;

    int relPin1Val;
    int relPin2Val;
    int relPin3Val;
    int relPin10Val;
    int relPin11Val;
    //Heater Status
    int heiz1Val;
    int heiz2Val;
    //#define WS5200_CS 10
    //#define SDCARD_CS 4
    #define BACKLIGHT_PIN 13
    #define ONE_WIRE_BUS 32
    LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
    OneWire oneWire(ONE_WIRE_BUS);
    DallasTemperature sensors(&oneWire);
    //Adresy CIDEL
    DeviceAddress C = { 0x28, 0xC0, 0x97, 0x8A, 0x06, 0x00, 0x00, 0x74 };
    DeviceAddress Cc = { 0x28, 0x3E, 0x11, 0x8A, 0x06, 0x00, 0x00, 0x42 };
    DeviceAddress Ccc = { 0x28, 0x73, 0x9B, 0x89, 0x06, 0x00, 0x00, 0x83 };
    //DeviceAddress C03 = { 0x28, 0x73, 0x9B, 0x89, 0x06, 0x00, 0x00, 0x83 };
    int backLight = 13; // pin 13 will control the backlight
    int LEDbrightness; //

    void setup() {
    sensors.begin();
    Serial.begin(9600);

    Ethernet.begin(mac, ip, gateway, subnet);

    server.begin();

    sensors.requestTemperatures();
    Serial.print(„server is at „);
    Serial.println(Ethernet.localIP());

    // Velikost slova (bit) 9 10 11 12
    //Rozlišení (°C) 0.5 0.25 0.125 0.0625
    //Doba převodu (ms) 93,75 187,5 375 750
    sensors.setResolution(C, 9);
    sensors.setResolution(Cc, 9);
    sensors.setResolution(Ccc, 9);
    //sensors.setResolution(C03, 9);
    lcd.begin(16, 4);
    lcd.clear(); // initialize the lcd
    lcd.backlight();

    //T03 = sensors.getTempC(C03); //teplota solaru
    pinMode(relPin1, OUTPUT); //Output Mode for Relay1
    pinMode(relPin2, OUTPUT); //Output Mode for Relay2
    pinMode(relPin3, OUTPUT); //Output Mode for Relay3
    pinMode(relPin10, OUTPUT); //Output Mode for Relay2
    pinMode(relPin11, OUTPUT); //Output Mode for Relay3
    // digitalWrite(relPin1, HIGH);
    // digitalWrite(relPin2, HIGH);
    // digitalWrite(relPin3, HIGH);
    // digitalWrite(relPin10, HIGH);
    // digitalWrite(relPin11, HIGH);

    }

    void loop() {

    sensors.requestTemperatures();
    T00 = sensors.getTempC(C); //teplota bazenu
    T01 = sensors.getTempC(Cc); //teplota panelu
    T02 = sensors.getTempC(Ccc); //teplota solaru
    //T03 = sensors.getTempC(C03); //teplota solaru

    lcd.setCursor(0, 0);
    lcd.print(„Bazen: „);
    lcd.print(T00); //teplota venku
    lcd.print(„C“);
    lcd.setCursor(0, 2);
    lcd.print(„Ohrev: „);
    lcd.print(T01); //teplota solaru
    lcd.print(„C“);
    // Serial.println();
    // Serial.print(„T0 „);
    // Serial.print(T00);
    // Serial.println();
    // Serial.print(„T1 „);
    // Serial.print(T01);
    // Serial.println();
    // Serial.print(„T2 „);
    // Serial.print(T02);

    //Je nach Temperatur Farbe der RGB-LED anpassen und Rel 1 schalten
    if(T01 <= 27)
    {
    redVal1 = 0;
    greenVal1 = 0;
    blueVal1 = 150;
    relPin1Val = LOW;
    relPin3Val = LOW;
    lcd.setCursor(0, 1);
    lcd.print(„Topeni: Zap „);
    }
    else if(T01 > 27 && T01 < 29)
    {
    redVal1 = 0;
    greenVal1 = 150;
    blueVal1 = 0;
    relPin1Val = HIGH;
    relPin3Val = LOW;
    lcd.setCursor(0, 1);
    lcd.print(„Topeni: Vyp „);
    }
    else if(T01 > 29)
    {
    redVal1 = 150;
    greenVal1 = 0;
    blueVal1 = 0;
    relPin1Val = HIGH;
    relPin3Val = HIGH;
    lcd.setCursor(0, 1);
    lcd.print(„VÄ›tránĂ­: Vyp „);
    }

    //Je nach Temperatur Farbe der RGB-LED anpassen und Rel 2 schalten
    if(T02 <= 27)
    {
    redVal2 = 0;
    greenVal2 = 0;
    blueVal2 = 255;
    relPin2Val = LOW;
    lcd.setCursor(0, 3);
    lcd.print(„Topeni: Zap „);
    }
    else if(T02 > 27 && T02 < 29)
    {
    redVal2 = 0;
    greenVal2 = 255;
    blueVal2 = 0;
    relPin2Val = HIGH;
    lcd.setCursor(0, 3);
    lcd.print(„Topeni: Vyp „);
    }
    else if(T02 > 29)
    {
    redVal2 = 255;
    greenVal2 = 0;
    blueVal2 = 0;
    relPin2Val = HIGH;
    lcd.setCursor(0, 3);
    lcd.print(„Topeni: Vyp „);
    }
    {

    analogWrite(redPin1, redVal1);
    analogWrite(greenPin1, greenVal1);
    analogWrite(bluePin1, blueVal1);
    analogWrite(redPin2, redVal2);
    analogWrite(greenPin2, greenVal2);
    analogWrite(bluePin2, blueVal2);
    digitalWrite(relPin1, relPin1Val);
    digitalWrite(relPin2, relPin2Val);
    digitalWrite(relPin3, relPin3Val);
    digitalWrite(relPin10, relPin10Val);
    digitalWrite(relPin11, relPin11Val);

    }

    Serial.println();
    Serial.print(„Locating devices…“);
    Serial.print(„Found „);
    Serial.print(sensors.getDeviceCount(), DEC);
    Serial.println(“ devices.“);
    //Serial.print(„Free Memory = „);
    //Serial.println(getFreeMemory());
    // když je připojen klient, zjistíme, zda jsou odeslána data
    // od klienta směrem k nám
    EthernetClient client = server.available();
    String buffer = „“;

    // dokud je klient připojen
    while (client.connected()) {
    // čti data od něj dokud nenarazíš na znak nového řádku

    if (client.available()) {
    char c = client.read();
    buffer = buffer + c;
    if (c == ‚\n‘) {

    if(buffer.indexOf(„rele1=1“)>=0)
    digitalWrite(2,HIGH);

    else if(buffer.indexOf(„rele1=0“)>=0)
    digitalWrite(2,LOW);

    if (buffer.indexOf(„rele2=1“) >= 0)
    digitalWrite(3, HIGH);
    else if (buffer.indexOf(„rele2=0“) >= 0)
    digitalWrite(3, LOW);

    if (buffer.indexOf(„rele10=1“) >= 0)
    digitalWrite(22, HIGH);

    else if (buffer.indexOf(„rele10=0“) >= 0)
    digitalWrite(22, LOW);

    if (buffer.indexOf(„rele11=1“) >= 0)
    digitalWrite(24, HIGH);

    else if (buffer.indexOf(„rele11=0“) >= 0)
    digitalWrite(24, LOW);

    // delay(1);
    // odešle klasickou hlavičku HTML stránky
    client.println F ((„HTTP/1.1 200 OK“));
    client.println F ((„Content-Type: text/html“));
    client.println F ((„Connection: close“));

    client.println ();
    client.println F ((„<!DOCTYPE HTML>“));

    // zde již klasická html data
    client.println F ((„<html>“));
    client.println F ((„<head>“));
    // Název stránky
    client.println F ((„<title>Arduinio Server – Rele control</title>“));
    client.println F ((„</head>“));
    client.println F ((„<body>“));
    client.print F ((„<h3 align=center>Program pro ovladani rele</h3>“));
    client.println F ((„</br>“));

    // vygeneruje formulář

    if (digitalRead(2)) {
    client.print F ((„<button style=’background:red;width:20%;height:30px‘>RELE 1 VYPNUTO</button>“));
    } else {
    client.print F ((„<button style=’background:green;width:20%;height:30px‘>RELE 1</button>“));
    }
    client.println F ( (“        test“));
    client.println F ((„</br>“));

    if (digitalRead(3)) {
    client.print F ((„<button style=’background:red;width:20%;height:30px‘>RELE 2 VYPNUTO</button>“));
    } else {
    client.print F ((„<button style=’background:green;width:20%;height:30px‘>RELE 2</button>“));
    }
    client.println F ((“        svetlo“));
    client.println F ((„</br>“));

    if (digitalRead(22)) {
    client.print F ((„<button style=’background:red;width:20%;height:30px‘>RELE 3 VYPNUTO</button>“));
    } else {
    client.print F ((„<button style=’background:green;width:20%;height:30px‘>RELE 3</button>“));

    client.println F ((“        filtrace“));
    client.println F ((„</br>“));

    if (digitalRead(24)) {
    client.print F ((„<button style=’background:red;width:20%;height:30px‘>RELE 4 VYPNUTO</button>“));
    } else {
    client.print F ((„<button style=’background:green;width:20%;height:30px‘>RELE 4</button>“));
    }
    client.println F ((“        tlacitko pro kotel 4″));

    client.println F ((„</br>“));
    client.println F ((„</br>“));
    client.println („</br>“);

    client.println („Teplota0“);

    client.println (T00);
    client.println („</br>“);
    client.println („Teplota1:“);

    client.println (T01);
    client.println („</br>“);
    client.println („Teplota2:“);

    client.println (T02);
    client.println („</br>“);

    client.print („<meta http-equiv=\“refresh\“ content=\“5\“>“); //stránka se naÄŤte automaticky jednou za 3 s
    client.println („</body>“);
    client.println („</html>“);

    Serial.println(buffer);

    delay(1); //dáme klientovi čas na zpracování
    //ukončí přenos
    client.stop();
    } }
    }
    } }

    [/code]

    odpověď na: UNO R3 16u2 nejde do DFU #4289
    jaracim
    Účastník

    Problém je vyřešen, dík.

    odpověď na: mega2560 web i2cLCD16x4 termostat vyvoj #4288
    Zbyšek Voda
    Účastník

    Pokud jsem kód dobře pochopil, přijde mi, že sice máte zobrazená tlačítka, ale nemáte k nim obslužný kód.
    Předpokládám, že chcete, aby po kliknutí na tlačítko program odeslal požadavek s informacemi o stavu relé.

    Dalo by se to udělat třeba tak, že z tlačítek uděláte odkazy vedoucí na určitou URL s přidanými parametry za url. Jak přidat URL ke tlačítku řeší třeba zde.

    Arduino pak bude zpracovávat HTTP požadavek, ze kterého si vybere požadované informace z parametru.

    Jak na to jsem psal například tady nebo tady.

    odpověď na: mega2560 web i2cLCD16x4 termostat vyvoj #4287
    jurda23
    Účastník

    no momentalně vše zkouším metodou pokus-omyl potřebuji aby to fungovalo jako termostat na třech zavislostech,spinalo dvě rele, vše nastavitelné přes web
    1.pokud je čas který nasavím (cca 9:00-17:00hod) bude seple rele1
    2.teplota čidla1 dle nasavení ovlada rele2 za podmínky že teplota čidla2 neni menší než ktera bude nastavena
    3.I2C displejna kterem budou rotovat dokola teploty z cca 6čidel a stavy relatek topení,oběh
    Jedná se mi o to vytvořit automatiku která bude hlídat ohřev bazenu přes tep.vyměník ze zasobníku tepelného čerpadla ve kterem nesmí poklesnout teplota pod cca 40stupnu jinak se spustí příhřev topnou spirálou cca9KW čemuž chci zabránit,muj sen je aby to časem vypadalo stejně jako zde https://www.youtube.com/watch?v=ef9fpolMtxA

    jsem na začátku a potýkám se s tím že se nerozjede webserver ping na adresu jde,když už se rozjede občas tak mi nefunguji stavy rele a ovladaní. a netuším jak udělat podmínku na bod 1a2,modul realneho času je na cestě a nevímjak sinchronizovat čas přes NTP vše chci něák velmi jednoduše. Ještě tvořím jeden system,naplatformě cubieboard ten již funguje na adrese teblomer.juricekpavel.net:81
    na arduinu jsem nováček tak se snažím lepit kod z toho co najdu na netu.

    odpověď na: mega2560 web i2cLCD16x4 termostat vyvoj #4286
    jurda23
    Účastník

    no momentalně vše zkouším metodou pokus-omyl potřebuji aby to fungovalo jako termostat na třech zavislostech,spinalo dvě rele, vše nastavitelné přes web
    1.pokud je čas který nasavím (cca 9:00-17:00hod) bude seple rele1
    2.teplota čidla1 dle nasavení ovlada rele2 za podmínky že teplota čidla2 neni menší než ktera bude nastavena
    3.I2C displejna kterem budou rotovat dokola teploty z cca 6čidel a stavy relatek topení,oběh
    Jedná se mi o to vytvořit automatiku která bude hlídat ohřev bazenu přes tep.vyměník ze zasobníku tepelného čerpadla ve kterem nesmí poklesnout teplota pod cca 40stupnu jinak se spustí příhřev topnou spirálou cca9KW čemuž chci zabránit,muj sen je aby to časem vypadalo stejně jako zde https://www.youtube.com/watch?v=ef9fpolMtxA

    jsem na začátku a potýkám se s tím že se nerozjede webserver ping na adresu jde,když už se rozjede občas tak mi nefunguji stavy rele a ovladaní. a netuším jak udělat podmínku na bod 1a2,modul realneho času je na cestě a nevímjak sinchronizovat čas přes NTP vše chci něák velmi jednoduše. Ještě tvořím jeden system,naplatformě cubieboard ten již funguje na adrese teblomer.juricekpavel.net:81
    na arduinu jsem nováček tak se snažím lepit kod z toho co najdu na netu.

    odpověď na: mega2560 web i2cLCD16x4 termostat vyvoj #4284
    Zbyšek Voda
    Účastník

    Dobrý den,

    můžete prosím popsat, co konkrétně vám nefunguje?

    Taky by se hodil popis projektu – co to má dělat, jak to funguje…

    odpověď na: Nejdou mi nainstalovat ovladače Arduino UNO #4283
    Zbyšek Voda
    Účastník

    V Arduino IDE v nabídce Tools v Ports vyberte COM5

Aktuálně je na stránce zobrazeno 30 příspěvků - 2,491. až 2,520. (celkem z 2,760)