Close

rehot79

Vytvořené odpovědi

Aktuálně je na stránce zobrazeno 16 příspěvků - 1. až 16. (celkem z 16)
  • Autor
    Příspěvky
  • rehot79
    Účastník

    Ešte taká blbá otázka. Akú záťaž na to dávaš, nejakú žiarovku alebo ventilátor akého výkonu? Aj to môže mať vplyv na funkčnosť. Skúsil by som asi ako on na videu neaku takú záťaž. uvidíme čo ti odpíše

    rehot79
    Účastník

    A kupoval si ten čo som dal link ja? Alebo ty.

    rehot79
    Účastník

    Tiež sa tam píše DIMMING LEVEL CONTROL VIA PWM SIGNAL OR VOLTAGE LEVEL .skúsil by som ešte ho ovládať nie pwm ale analog výstupom reguláciou napätia, len tak ma to napadlo

    rehot79
    Účastník

    Pozerám práve na to A píše tam že je plne kompatibilný s arduino, je tam aj schéma zapojenia na arduino. …hmmm ale píše aj ak máte neake otázky kontaktujte ma. .skúsil by som mu napísať

    rehot79
    Účastník
    rehot79
    Účastník

    Pozerám na neho ale V info O výrobku je napísané NOT for controlling via PWM signal! Len kukal som nižšie A tam je jaj pwm ac light dimmer A ten by už mal fungovať. Ešte raz ďakujem

    rehot79
    Účastník

    Ďakujem za ďalší nápad,

    rehot79
    Účastník

    Pekné riešenie ale možno som našiel niečo jednoduchšie , bez potrebnej vedomosti o elektrotechnike aj keď ja som elektrotechnik, ale na čo si komplikovať život no nie? a cenovo dostupne na Ebay cca 3Eur. Volá sa to ssr-40da relé,je galvanicky oddelene,ovládane už od 3 volt DC .Pridávam link na YouTube
    Klik sem Pevne verím že toto pomôže veľa ľudom s touto problematikou .

    odpověď na: Max6675 #10458
    rehot79
    Účastník

    Knihovne som sťahoval V správe knižníc som napísal vo vyhladavaci max6675 našlo knihovnu A len som klik instal. ArduinoIDE používam 1.8.1 A hlavne veľa čítal vseliake example A kde tu čo sa my hodilo som vybral A skúsil zakomponovať do svojho kódu s neakov drobnou úpravou aby vyhovovalo mne. Prakticky to všetko je len zlepenec napr. Oled som orezal Z demo orginal knižnice urobil neake rámčeky okolo čísel atď. Pid zase vybral z example na arduino.cc len som pridal analogread potenciometer na nastavenie set point. A tak sa to Neako zlepilo dokopy. Ak tam vydis niečo na zlepšenie tak kľudne do mňa. …Ďakujem hlavne bez prvej reakcie na môj príspevok by tento code nevznikol. Všetko si skúšam na stole s pt100, malí oled A malé servo. Ešte raz ďakujem tomuto fóru za príjemne zabitý deň hihihi A zas som O čosi múdrejší.

    odpověď na: Max6675 #10456
    rehot79
    Účastník

    Netuším v čom to je ale asi že mám po dlhej dobe volný víkend , prikladám code už aj s PID reguláciou a nastavením Set-point pomocou potenciometru .

    
    ////Vsetky kniznice nacitane cez ArduinoIDE spravca kniznic.
    #include <PID_v1.h>
    #include "max6675.h"
    #include <Servo.h>
    Servo myservo;
    #include <SPI.h>
    #include <Wire.h>
    #include <Adafruit_GFX.h>
    #include <Adafruit_SSD1306.h>
    #define OLED_RESET 4
    Adafruit_SSD1306 display(OLED_RESET);
    #if (SSD1306_LCDHEIGHT != 32)
    #error("Height incorrect, please fix Adafruit_SSD1306.h!");
    #endif
    
    //Definicia pin
    
    int thermoSO = 6;   
    int thermoCS = 5;   
    int thermoSCK = 4;  
    MAX6675 thermocouple(thermoSCK, thermoCS, thermoSO);
    int vccPin = 3; //Napajanie + pre max6675 modul z digitalneho pinu
    int gndPin = 2; //Napajanie - pre max6675 modul z digitalneho pinu
    int val;
    int poloha;  
    const int pot = A0;
    //Define Variables we'll be connecting to
    
    //Define Variables we'll be connecting to
    double Setpoint, Input, Output;
    
    //Define the aggressive and conservative Tuning Parameters
    double aggKp=5, aggKi=0.7, aggKd=1;
    double consKp=1, consKi=0.1, consKd=0.5;
    
    //Specify the links and initial tuning parameters
    PID myPID(&Input, &Output, &Setpoint, consKp, consKi, consKd, DIRECT);
    
    void setup()
    {
        
      // definicia napajacich pinou 
      pinMode(vccPin, OUTPUT); digitalWrite(vccPin, HIGH);
      pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW);   
      
      ////definicia servo pinu
      myservo.attach(9);
      
      //initialize the variables we're linked to
      Input = thermocouple.readCelsius();
      Setpoint = map(analogRead(pot), 0, 1024, 0, 500);
    
      //turn the PID on
      myPID.SetMode(AUTOMATIC);
    
    //////////////////////Oled////////////
      // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
      display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C (for the 128x32)
      // init done
      // Vycisti logo
      display.clearDisplay();
      //uvod email
      display.setTextSize(2);
      display.setTextColor(WHITE);
      display.setCursor(10,0);
      display.println("M.Jakab29@Gmail.com");   
      display.display();
      delay(5000);
      display.clearDisplay();
    
    }
    
    void loop()
    {
      Setpoint = map(analogRead(pot), 0, 1024, 0, 500); ;
      Input = thermocouple.readCelsius(); 
      double gap = abs(Setpoint-Input); //distance away from setpoint
      if(gap<20)
      {  //we're close to setpoint, use conservative tuning parameters
            myPID.SetTunings(consKp, consKi, consKd);
      }
      else
      {
         //we're far from setpoint, use aggressive tuning parameters
         myPID.SetTunings(aggKp, aggKi, aggKd);
      }
    
      myPID.Compute();
      Output = map(Output, 0, 255, 0, 170);
      myservo.write(Output);
      poloha = myservo.read();
      poloha= map(poloha, 0, 180, 0, 100); 
               
                val = Input;
                // text display text
               display.drawLine(0, 13, 0, display.height()-1, WHITE);
               display.drawLine(300, 32, 0, display.height()-1, WHITE);
               display.drawLine(300, 13, 0, display.height()-20, WHITE);
               display.drawLine(127, 13, 127, display.height() -1, WHITE);
               display.drawLine(42, 13, 42, display.height() -1, WHITE);
               display.drawLine(84, 13, 84, display.height() -1, WHITE);
               display.setTextSize(1);
               display.setTextColor(WHITE);
               display.setCursor(6,2);
               display.println("Tep.   Poz.%   Set.");   
               display.setTextSize(2);
               display.setCursor(4,16);
               display.println(val);   
               display.setTextSize(2);
               display.setCursor(47,16);
               display.println(poloha);   
               display.setTextSize(2);
               display.setCursor(89,16);
               display.println(Setpoint); 
               display.display();
               display.clearDisplay();
    delay(5000);  
    
    }
    odpověď na: Max6675 #10448
    rehot79
    Účastník

    Ešte foto dyspleja prikladám

    odpověď na: Max6675 #10446
    rehot79
    Účastník

    Tak prikladám znova s úpravami kode.

    
    
    //M.jakab29@gmail.com
    
    //Vsetky kniznice nacitane v arduinoIDE spravca kniznic ///// 
    #include "max6675.h"
    //Servo
    #include <Servo.h>
    Servo myservo;
    //Oled ///////////////////
    #include <SPI.h>
    #include <Wire.h>
    #include <Adafruit_GFX.h>
    #include <Adafruit_SSD1306.h>
    #define OLED_RESET 4
    Adafruit_SSD1306 display(OLED_RESET);
    #if (SSD1306_LCDHEIGHT != 32)
    #error("Height incorrect, please fix Adafruit_SSD1306.h!");
    #endif
    /////////////
    
    //Definicia pin
    
    int thermoSO = 6;   
    int thermoCS = 5;   
    int thermoSCK = 4;  
    MAX6675 thermocouple(thermoSCK, thermoCS, thermoSO);
    int vccPin = 3; //Napajanie + pre max6675 modul z digitalneho pinu
    int gndPin = 2; //Napajanie - pre max6675 modul z digitalneho pinu
    int val;
    int poloha;  
    void setup() {
      
      
      // definicia napajacich pinou 
      pinMode(vccPin, OUTPUT); digitalWrite(vccPin, HIGH);
      pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW);   
      ////definicia servo pinu
      myservo.attach(9);
     
      //////////////////////Oled////////////
      // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
      display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C (for the 128x32)
      // init done
      // Vycisti logo
      display.clearDisplay();
      //uvod email
      display.setTextSize(2);
      display.setTextColor(WHITE);
      display.setCursor(10,0);
      display.println("M.Jakab29@Gmail.com");   
      display.display();
      delay(5000);
      display.clearDisplay();
    }
    
    void loop() {
         // Nacitanie teploty
         val = thermocouple.readCelsius()-2;
           
        // text display text
      display.drawLine(0, 13, 0, display.height()-1, WHITE);
      display.drawLine(300, 32, 0, display.height()-1, WHITE);
      display.drawLine(300, 13, 0, display.height()-20, WHITE);
      display.drawLine(127, 13, 127, display.height() -1, WHITE);
      display.drawLine(62, 13, 62, display.height() -1, WHITE);
      display.setTextSize(1);
      display.setTextColor(WHITE);
      display.setCursor(3,2);
      display.println("Teplota    Poloha%");   
      display.setTextSize(2);
      display.setCursor(10,16);
      display.println(val);   
      
       val = map(val, 0, 600, 0, 180);     
       myservo.write(val);                      
       poloha = myservo.read();
       poloha= map(poloha, 0, 180, 0, 100); 
      
               display.setTextSize(2);
               display.setCursor(70,16);
               display.println(poloha);   
               display.display();
               delay(5000);
               display.clearDisplay();
    
    }
    

    Tu už vypisuje aj polohu serva na Display .

    odpověď na: Max6675 #10442
    rehot79
    Účastník

    Som tu znova s novými úpravami kódu kde pribudol oled Display. Este raz podotykam ze toto je môj prvý projekt. Ak vydite nejake chyby tak kľudne do mňa . Zatiaľ to funguje.

    
    //M.jakab29@gmail.com
    
    //Vsetky kniznice nacitane v arduinoIDE spravca kniznic ///// 
    #include "max6675.h"
    //Servo
    #include <Servo.h>
    Servo myservo;
    //Oled ///////////////////
    #include <SPI.h>
    #include <Wire.h>
    #include <Adafruit_GFX.h>
    #include <Adafruit_SSD1306.h>
    #define OLED_RESET 4
    Adafruit_SSD1306 display(OLED_RESET);
    #if (SSD1306_LCDHEIGHT != 32)
    #error("Height incorrect, please fix Adafruit_SSD1306.h!");
    #endif
    /////////////
    
    //Definicia pin
    
    int thermoSO = 6;   
    int thermoCS = 5;   
    int thermoSCK = 4;  
    MAX6675 thermocouple(thermoSCK, thermoCS, thermoSO);
    int vccPin = 3; //Napajanie + pre max6675 modul z digitalneho pinu
    int gndPin = 2; //Napajanie - pre max6675 modul z digitalneho pinu
    int val;
    int poloha;  
    void setup() {
      
      
      // definicia napajacich pinou 
      pinMode(vccPin, OUTPUT); digitalWrite(vccPin, HIGH);
      pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW);   
      ////definicia servo pinu
      myservo.attach(9);
     
      //////////////////////Oled////////////
      // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
      display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C (for the 128x32)
      // init done
      
      
      // Vycisti logo
      display.clearDisplay();
    }
    void loop() {
    // basic readout test, just print the current temp
      
       val = thermocouple.readCelsius()-2;
       val = map(val, 0, 300, 0, 180);     
       myservo.write(val);                      
       poloha = map(val, 0, 180, 0, 100);
        // text display text
      display.setTextSize(1);
      display.setTextColor(WHITE);
      display.setCursor(0,0);
      display.println("Teplota       Poloha%_____________________");   
      display.display();
      display.setTextSize(2);
      display.setCursor(0,17);
      display.println(thermocouple.readCelsius()-2);   
      display.display();
      display.setTextSize(2);
      display.setCursor(85,17);
      display.println(poloha);   
      display.display();
      delay(3000);
      display.clearDisplay();
    
    }
    
    odpověď na: Max6675 #10441
    rehot79
    Účastník

    Ďakujem za rady. S arduinom pracujem cca asi mesiac s prestávkami A toto je môj prvý vlastný projekt ktorý sám programujem. Určite poupravujem podľa tvojich rád, ešte raz ďakujem. Ps už mám tam aj oled i2c 128×32 ..istotne ešte budem sem zdieľať code Z projektu.

    odpověď na: Max6675 #10439
    rehot79
    Účastník

    Tak som tu zas. Po tvojej rade som skúšal a vyzerá že to funguje.Ešte raz ďakujem a prikladám aj code ak by sa niekomu hodil ,ja s tým chcem ovládať polohu komínovej klapky na kotli na koľko max6675 je až do 1024 stupňov Celzia .Časom pribudne aj oled a wifi na sledovanie kotla na dialku napr. v mobile.

    
    
    //M.jakab29@gmail.com
    
    //Nacitanie knihovni
    #include "max6675.h"
    #include <Servo.h>
    
    Servo myservo;
    
    //Definicia pin
    
    int thermoSO = 6;   
    int thermoCS = 5;   
    int thermoSCK = 4;  
    MAX6675 thermocouple(thermoSCK, thermoCS, thermoSO);
    int vccPin = 3; //Napajanie + pre max6675 modul z digitalneho pinu
    int gndPin = 2; //Napajanie - pre max6675 modul z digitalneho pinu
    int val;
      
    void setup() {
      
      Serial.begin(9600);
      // definicia napajacich pinou 
      pinMode(vccPin, OUTPUT); digitalWrite(vccPin, HIGH);
      pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW);   
      Serial.println("MAX6675 test");
      // cakanie na stabylizaciu max6675 cipu
      delay(500);
    
      myservo.attach(9);
    
    }
    
    void loop() {
      // basic readout test, just print the current temp
      
       Serial.print("C = "); 
       Serial.println(thermocouple.readCelsius());
       
       val = thermocouple.readCelsius();
       val = map(val, 10, 800, 0, 180);     
       myservo.write(val);                  
       delay(15);            
       delay(1000);
    }
    
    odpověď na: Max6675 #10438
    rehot79
    Účastník

    Ďakujem za reakciu na moju tému, túto možnosť som už pozeral aj ju chapem že si číta Z analógového vstupu hodnotu ktorú prepošle na servo, len môj problém je že mám max6675 ktorý nieje napojený na analog ale používa neaky thermocoupule.read() čo neviem ako poslať na servo. Ďakujem za odpoveď A ďalší nápad, idem skúšať

Aktuálně je na stránce zobrazeno 16 příspěvků - 1. až 16. (celkem z 16)