Arduino + PID

Поделиться
HTML-код
  • Опубликовано: 2 окт 2024
  • Já pensou em como implementar PID em C++?
    Assista antes este tutorial sobre PID: • Algoritmo PID: Básico ...
    Código (sem bugs): gist.github.co...

Комментарии • 270

  • @DuduBatera
    @DuduBatera 9 лет назад +7

    Você é meu novo herói Ivan, muito obrigado pela disposição em ensinar esse processo do PID, de fato não encontrei em nenhum lugar uma explicação que chegue próxima a sua. Muito obrigado mesmo, estava procurando isso a muito tempo. Sucesso em seu canal. Ganhou mais um inscrito.

  • @bage1234
    @bage1234 7 лет назад

    Muito boa tua aula.. Trabalho com automação industrial, utilizo CLPs, normalmente uso 20 a 25 laços PIDs em cada máquina, PID é sempre confuso, vc colocou de uma forma didática bem compreensível .....
    Estou começando arduino, estou gostando dos trekinhos...

  • @HelvioAlbuquerque
    @HelvioAlbuquerque 9 лет назад +58

    Em geral quando alguém tenta ensinar PID ou acaba não conseguindo passar os fundamentos corretamente, ou complica tanto que acaba deixando tudo muito confuso. Seus vídeos são muito bons, pois conseguem transmitir esse conhecimento de uma forma bem simples e de fácil assimilação. Parabéns!

  • @robsondonato5690
    @robsondonato5690 5 лет назад +2

    Faltou apenas dividir a parcela derivativa por deltaTime em vez de multiplicar. No mais, é bom vídeo.

  • @eduardofernandes3764
    @eduardofernandes3764 7 лет назад +1

    Ivan,
    Depois que você deixou em formato de classe, onde eu insiro o setPoint? Ou seja, a temperatura que eu quero que fique. Devo inserir dentro da classe ou no void loop?
    Outra dúvida que gostaria de tirar com você é sobre qual tipo de dispositivo eu devo usar pra acionar um circuito de alta voltagem utilizando o PID, já que a saída é pwm não conseguiria utilizar um relé por exemplo, que é só liga-desliga.

  • @diegoalexm
    @diegoalexm 8 лет назад

    Boa noite Ivan, cara não tinha percebido mais teu código possui um erro... A parte do Derivativo você está pegando o valor do erro em relação da saída anterior com a atual... até ai ok... porém se você montar o diagrama de blocos, vai perceber que o "D" fica abaixo do "PI"...
    no entanto a tua saída fica
    pid= P+I-D,
    pois é um controle PI-D...
    Se você estivesse pegando o erro da entrada, aí sim seria um controle PID somado (P+I+D)...
    Você pode confirmar no Ogata - Engenharia de controle moderno 5°ed - pg 542 (figura8.26) você encontrará o diagrama de blocos com o D subtraído.
    Mas parabéns pela explicação, muito bom!

  • @ruchirlakhani1626
    @ruchirlakhani1626 8 лет назад +26

    Can you add english subtittles please

  • @luizvision478
    @luizvision478 6 лет назад

    OLA IVAN , OBRIGADO PELA AULA, VOU ESTUDA-LA, PRINCIPALMENTE A CALASSE ... BACANA . PARABENS
    LUIZ
    RJ

  • @cristophermarquesdasilva3282
    @cristophermarquesdasilva3282 3 года назад

    Oi amigo parabéns pela iniciativa.
    Teria algum projeto prático para implementar PID com Arduíno ?
    Não precisa ser complexo é só para aprender o conceito.

  • @EulerAlvarenga1
    @EulerAlvarenga1 10 лет назад +6

    Ivan muito obrigado por desmistificar o PID da minha mente hahaha, gostei muito da sua forma de ensinar e por fim já estou inscrito no seu canal. Parabéns pelo video.

  • @qpham26
    @qpham26 10 лет назад +8

    English subs please T_T
    You are the only one who did a video about PID =.=

  • @celotron
    @celotron 7 лет назад

    Ivan, parabens!!! video aula sensacional!!! Ganhou mais um inscrito.

  • @HugoMaxMTeixeira
    @HugoMaxMTeixeira 4 года назад +1

    Olá, gostaria de agradecer bastante por sua explicação. Foi o único vídeo em que consegui entender o como funciona o algoritmo PID, já havia assistido outros mas não consegui entender como funcionavam os cálculos. Parabéns pela simplicidade e por ter compartilhado estes conhecimentos com outras pessoas...👏👏

  • @olavogazzola2650
    @olavogazzola2650 3 года назад +1

    The best PID tutorial on youtube by far, so easy to understand!

  • @abimaelviana
    @abimaelviana 9 лет назад +1

    Vídeo Muito bom, vou tentar implementar o PID em um CLP.

  • @carlospodest6162
    @carlospodest6162 6 лет назад

    Oie Ivan, muito obrg pelo teu video. Queria te fazer uma pergunta. Acho que falta uma parte no teu codigo. A variavel de controle co controlePwm = P+I+D + 50... nao esta faltando pasar ela para 0-255, que vai ser a saida analogica PWM? Nao esta faltando um map (controlePwm Min,Max,0,255)? Si estiver certo ..... qual seria entao o MAX e o MIN desa proporcao ? Muito obrg

  • @mariofernandoschettini1343
    @mariofernandoschettini1343 5 лет назад

    Olá Ivan, obrigado pelo trabalho que está disponibilizando para nós, é realmente muito interessante.
    O que eu gostaria de saber é que IDE é esta que você está usando e se é free, gostei muito, Obrigado!

  •  9 лет назад +3

    Parabéns. Está muito bem explicado. Tão bem que além de aprender PID, também aprendi classe =] Muito obrigado.

  • @pedrofonseca357
    @pedrofonseca357 4 года назад +1

    Muito bom o vídeo, didática absurda!
    Tenho uma pergunta, um vez q o 'I' e o 'D' tem essa relação com a variação de tempo, vi outros videos mostrando que seria o valor /detaTime e não *deltaTime (dividido e nao multiplicado). se me puder ajudar ja agradeço, no I e D, divide ou multiplica pelo tempo?

  • @a330turbinex7
    @a330turbinex7 3 года назад +1

    O melhor video que já vi sobre PID na prática! Parabéns Ivan! Muito bom! Muito obrigado pelo seu tempo.

  • @zeildosoares1888
    @zeildosoares1888 2 года назад

    Boatarde, nossa, sua aulo é otima, me tira uma duvida tem como com esse codigo no lugar dosensor de temperatura , colocar um giroscopio?

  • @Rafilskis111
    @Rafilskis111 5 лет назад

    Olá, ótimo video, primeira vez q entendo o que é PID...rsrs...mas ficou uma dúvida quanto as constantes kI kD e kP, há alguma forma de calcula-las ? em meio ao controle de ummotor?

  • @poielgoncalves73
    @poielgoncalves73 10 лет назад +1

    "Já procurou no Google?" Ivan Seidel - 25/06/2014

  • @aparecidasoares9125
    @aparecidasoares9125 3 года назад

    Faz um PID com o controlador dht22 fica bacana.

  • @josestrada5762
    @josestrada5762 9 лет назад +1

    gracias por este tutorial... muy buena explicacion/Obrigado por este tutorial ... muito boa explicação

    • @IvanSeidel
      @IvanSeidel  9 лет назад +1

      gracias +José Manuel Estrada Figueroa =)

  • @walterp7125
    @walterp7125 9 лет назад

    D=Kd *[ d e(t) / dt ] .Remember that PID is a discrete regulator when is executed in a digital system as a processor .It's impossible to reduce the timing near 0 because you call it every cycle time or in itnerrupt timer where the timing is always more then zero .Pratically the derivative is the angular coefficient of the rect which is tangent to the curve between two cycle ....

  • @efraimraizer
    @efraimraizer 2 года назад

    Mto legal. Parabéns e obrigado.

  • @GuilhermeEletronica
    @GuilhermeEletronica 9 лет назад

    Ola *****! Gostaria de saber como faço para testar essa rotina PID. Pois estou testando ele aqui no Proteus através do simulador para o Arduino e nao estou obtento a onda PWM na saida. Pois estou utilizando um potenciômetro para simular meu sensor, setpoint = 20, kp =30 e uma das saidas PWM do uC, mas mesmo assim nao consigo obter a onda, o que poderia ser?

  • @wandersongomes8405
    @wandersongomes8405 10 лет назад +1

    Cara você é muito fera! Ainda não entendo que tem gente que ainda não gosta. Você é 10. Cara queria fazer um pedido: continue com suas vídeo aulas cara, ajuda muito mesmo.

  • @marcilionocrato1128
    @marcilionocrato1128 6 лет назад

    Cara boa noite! estou tendo controlar um um sistema de irrigação por PID mas não estou conseguindo acionar a bomba....poderia ver o que falta no meu código? preciso apresentar esse trabalha na sexta a noite dia 15/06/2018...estou desesperado....estou usando um Arduíno, ponte H, sensor de umidade e bomba de 5v. Por favor me ajude....

  • @gabriel-beserra
    @gabriel-beserra 9 лет назад +3

    Olá, Ivan.
    Como eu poderia implementar esse código para fazer o controle de velocidade de um motor DC?
    Obrigado.

  • @marcelodossantoscoutinho4955
    @marcelodossantoscoutinho4955 3 года назад

    Outra coisa, descobri um erro: aonde está D = (lastSample - sample) * kD / deltaTime;
    lastSample = sample; na verdade deve ser D = (lastSample - error) * kD / deltaTime;
    lastSample = error;

  • @AndersonSantos-gw1lq
    @AndersonSantos-gw1lq 5 лет назад

    Em qual parte do código a variável "lastTemperature" está obtendo o valor da temperatura passada? 18:39

  • @alexandrevenito1215
    @alexandrevenito1215 2 года назад

    Excelente explicação!!! Obrigado pelo seu tempo e seu trabalho de divulgação de conhecimento.

  • @jrjpmg
    @jrjpmg 8 лет назад

    Olá, Ivan. Baixei sua classe PID para utilizar num projeto, mas ao chamar meuPid.process() este só retorna "nan".
    Fui tentando descobrir o problema e acho que o motivo é a primeira chamada da classe. Na parte I, o I depende de um I anterior, que ainda não recebeu qualquer valor, só foi instanciado. No caso da parte D ela precisa da lastSample, que ainda não existe também na primeira chamada. Como a parte e I e D são variações, só faz sentido chamar a partir da segunda amostra pelo menos, certo? Como posso corrigir isso?

  • @fabriciomenezes8853
    @fabriciomenezes8853 9 лет назад

    Caro Ivan, parabéns véi, mas dá uma força aí ? com eu faço pra controlar a velocidade de um motor dc usando PID e o arduino, sensor optico e encoder, parecido com o controle que vc faz com o robô Bob no primeiro vídeo que explica o que é PID ???
    na vdd que usar ainda o labview junto ao arduino e os demais componentes, mas fazer isso usando só o arduino ja é um grande avanço.

  • @RoyALRiBBoN
    @RoyALRiBBoN 9 лет назад

    i dont understand......can u make the video in english...many useful information...but yet i dont understand..

  • @marcelodossantoscoutinho4955
    @marcelodossantoscoutinho4955 3 года назад

    Ivan, a Classe não poderia ficar em um arquivo separado ? obs: no código faltou o usuário especificar o setpoint. Abç

  • @fallenmoon483
    @fallenmoon483 4 года назад

    O loop executa 10000 vezes por segundo, gostei do vídeo. Fiquei em duvida com a derivada, vi alguns artigos dizendo que era a variação do erro multiplicado pela constante e você apenas tirou a diferença entre a leitura atual e a ultima. É isso mesmo?

  • @edustroide
    @edustroide 9 лет назад

    Boa tarde Ivan,Estou tentando utilizar o seu código com um giroscópio, e estou tendo muitas dificuldades, vc conseguiria me ajudar?O meu giro se fixa em 89°, e tbm fiquei em duvida aonde eu devo seta o meu set point.

  • @walterp7125
    @walterp7125 9 лет назад

    ahahaha , try to come in europe , in winter and then you will feel what is cool .San Paolo es muito perigosa cidade ;)

  • @jeffersongeorge2569
    @jeffersongeorge2569 2 года назад

    Muito bom, bem explicado, nem com meus professores entendi tão bem
    Parabéns....

  • @mariocgameirodemoura4743
    @mariocgameirodemoura4743 7 лет назад

    Gostaria de cumprimenta-lo pela clareza e simplicidade pra apresentação dos conceitos. Contudo fiquei na dúvida quanto a correção do derivativo pois a ação de correção é maior quanto mais rápida for a variação do erro, o que não consegui entender na equação proposta.

  • @Wolverine859
    @Wolverine859 9 лет назад

    Ola, Estou pegando a manha agora de arduino e tentando e fazendo alguns projetos. No momento eu ainda estou brincando com leds e gostaria de saber como fazer um programa para um cubo 4*4*4 porque eu ja baixei alguns, mas gostaria de fazer o meu proprio projeto, como fazer obrigado

  • @andersons2isaque
    @andersons2isaque 6 лет назад

    Boa noite , tenho um trabalho para TCC na faculdade que preciso programar um PID no arduíno uno para controle de temperatura tendo um sinal de entrada de 0 a 20 ma e preciso enviar um sinal de saída de 0 a 20ma, alguém poderia me ajudar ?

  • @guilhermeamorim2154
    @guilhermeamorim2154 9 лет назад +1

    Nossa cara parabéns, muito útil, muito mesmo! Bela explicação, em ambos os vídeos sobre pid.

  • @HungNguyenVan-xn2ms
    @HungNguyenVan-xn2ms 7 лет назад

    Can you help me! When simulated on proteus, there are not enough parameters to find the transfer function, such as motor DC encoder, what do you do?

  • @pedro202320
    @pedro202320 8 лет назад

    esse código pode ser usado em qualquer tipo de controle, no caso só mudaria as variáveis? estou tentando fazer um controlador para um imã eletromagnético poderia usa essa estrutura de código ?

  • @ualifer1
    @ualifer1 5 лет назад

    Uma dúvida: a derivada não seria a variação do erro dividido pela variação do tempo? Meio que o contrário da Integral, q é o somatório do erro vezes o tempo?

  • @jhonathanlaurindo6678
    @jhonathanlaurindo6678 8 лет назад

    Ivan seidel muito boa videoaula mias poderia me tirar uma duvida estou fazendo um drone quadricóptero e queria aplica pid na programação esse escript q vc fez serviria como base pra um escript pra um quadricóptero, caso n , poderia me da uma ajuda ??? agradeceria sua resposta

  • @walterp7125
    @walterp7125 9 лет назад

    ciao Ivan
    If you want to regulate a slow system as a temperature in a long inertial answer , you can do what are you doing .But don't forget , PID has to be called everytime for a fixed time .In my esperience I have used always PID control from interrupt handler to get sincronous controls .My job is to develop and write PLC program for industrial automation and control system .After more then 15 years in this sector I can tell you that there are different ways to control but if you want to get a good and stable regulation you must to call PID in a fixed time.I saw you get deltatime by millis() , but this valure changes every cycle ;)
    Where do you live exactly in Brasil ? I was in POA , Caxias,Garibaldi ...more or less 10 years ago , for work .....I saw Gramado , Canela ...I love RS

    • @IvanSeidel
      @IvanSeidel  9 лет назад

      Walter Porcellini Nice!
      I live in São Paulo, but I'm from Espírito Santo. RS is too cold! Consider visiting a warmer city next time =)
      Best,

  • @walterp7125
    @walterp7125 9 лет назад

    error = setpoint - measured_value
    integral = integral + error*dt
    derivative = (error - previous_error)/dt
    output = Kp*error + Ki*integral + Kd*derivative
    previous_error = error
    Normally for a temperature regulation is enough the P.I. regulation because the derivative may produces noise and bad regulation .The derivative is used for fast regulation for example each 10 mS to regulate flow or positioning ect
    Try this code and you will see that is not the mesma coisa ;)
    Saudos de Italia

    • @IvanSeidel
      @IvanSeidel  9 лет назад

      Walter Porcellini Hi Walter (again) rs,
      Check out the final version of the code posted in the description. It is bug-free.
      I use to record the video, and forget things during it. That's why I usually "fix" and post the code separatedly. The video is to explain the working thing, the code, to support the understanding..
      Saudos do Brasil

  • @lookatsampaio
    @lookatsampaio 8 лет назад +4

    Ivan, não sei se alguém te falou isso e não tenho total certeza se estou certo,porque estou começando agora no arduino. As leituras dos sensores analógico não são de 0 até 1023, sendo assim tendo 1024 "estados" ?

    • @IvanSeidel
      @IvanSeidel  8 лет назад +2

      Isso mesmo, são 10 bits. 2^10 = 1024 estados possíveis, indo de 0 até 1023! Abraços

    • @anarktv8098
      @anarktv8098 8 лет назад

      Não assiste o vídeo todo ainda, mas você errou no inicio ..a porta analógica vai de 0 - 1023

    • @gcrozatti
      @gcrozatti 7 лет назад +8

      Não entendo porque as pessoas assistem os vídeos procurando erros e não em aprender a função.
      O "erro" que você cita esta como forma de comentário, e nem pode se dizer um erro, e sim um engano, acontece.
      No código esta perfeitamente certo.

    • @guilherme7973
      @guilherme7973 7 лет назад +1

      0 é um estado, são 1023 + 1 (no caso 0 ) estados, logo 1024.

  • @gabrielchies6785
    @gabrielchies6785 3 года назад

    Acredito que para a derivada, termo D, se divide pelo tempo entre as duas leituras e não multiplica, visto que o conceito de derivada é taxa de variação.

  • @walterp7125
    @walterp7125 9 лет назад

    ciao Ivan , just some considerations ..... if you want to get a P.I.D. controls which works in a right way you have to implement it in a interrupt routine handler function
    You have to set a timer to have for example 100 mS of time to regulate a temperature or more , it depends by the inertial of the system you want to regulate.The derivative component is the variation of the error between now and the last cycle and not between the last temperature and the actual temperature .For the integral part is important to call the pid at same time because the integral as you know is the area calculated as sum of each small rectangle with base 100mS in this case .Anyway in your case you just call the PID in your project but if I have other job to do it means the deltatime will be different eac cycle because it depends by the proram flow .Finally you made a good job , just I would like to say it's possible to increase the professionality ;) saudos

    • @IvanSeidel
      @IvanSeidel  9 лет назад

      Walter Porcellini Hello Walter,
      Thanks for the tips, but actually, Using a timer is just a way to regulate the dT value, so that each step has an equal ammount of weight on the PID. In the video, as you can see (actually, the code without bugs posted in the description), that we regulate the Derivative and the Integral with the Delta Time. In this way, we don't actually have to set an very specific timing for the PID, and it will just work even if we increase/decrease the time step.
      The reason why I did this, is mainly because you can't count with the dT being fixed, and if it varies then kD and kI would have to change depending on the interval...
      Best, and saudos ;)

  • @a330turbinex7
    @a330turbinex7 3 года назад

    Acho que faltou no setup() fazer o carregamento do setPoint da classe.

  • @Felipe.N.Martins
    @Felipe.N.Martins 4 года назад

    Ivan! Vi seu vídeo de novo hoje (pra “roubar” sua explicação pra minha aula de PID 😜) e acabei percebendo um errinho: a parte de geração do termo derivativo (D, no seu código) deveria ser divida por deltaTime, e não multiplicada. É a derivada do erro no tempo: kD*d(error)/dt. Fora isso, excelente explicação e ótimo vídeo! Grande abraço!

    • @IvanSeidel
      @IvanSeidel  4 года назад

      Felipe! isso é vdd, algumas pessoas me falaram isso quando fiz upload e acabei inserindo um texto flutuante por cima do video porem ele foi removido como feature do youtube, dai deixei o código de exemplo na descrição e um comentario dizendo que está errado haha é um erro que vai me assombrar pra sempre rs

  • @a330turbinex7
    @a330turbinex7 3 года назад

    Neste video o cálculo do D está errado. não multiplica pelo deltaTime mas divide pelo deltaTime.

  • @Leo-it9dc
    @Leo-it9dc 4 года назад

    Será que posso uzar ele para fazer trabalhar dois servos para corrigir a posição de um foguete?

  • @francoisrochefort5759
    @francoisrochefort5759 3 года назад

    Very good video; helped me a lot. Can you do one about Karman filter please?

  • @dysproghoul
    @dysproghoul 2 года назад

    pinchi madre redo this in ENGLISH please

  • @israelgames1831
    @israelgames1831 6 лет назад

    vlw por compartilhar, sabe onde consigo apostila ou livro pra consegui programa arduino+pid+temperatura+lcd+rele, nao tenho achado nada sobre o assunto 0800. ou me da uma luz sobre é feito, fiz um projeto que faz a leitura sem pid mas nao ficou bom por causa da temperatura nao fica estável "aceitável".

  • @marcilionocrato1128
    @marcilionocrato1128 6 лет назад

    #define pinSensorA A0
    int IN3 = 10 ;
    int IN4 = 9 ;
    void setup() {
    pinMode(pinSensorA, INPUT);
    Serial.begin(9600);
    pinMode(IN3,OUTPUT);
    pinMode(IN4,OUTPUT);
    analogWrite(IN4, 0);
    }
    void loop() {
    Serial.println(pinSensorA);
    float ki;
    float kd;

    ki=0;
    kd=0;
    float kp;
    kp=0.25;
    float leitura;
    leitura = analogRead(A0);
    float erroAnterior;
    float erro;
    float setpoint;
    float tempoAnterior,tempoAtual, dt, de,d,i;
    setpoint= 600;
    erroAnterior = erro;
    erro = setpoint - leitura;
    float p = kp*erro;

    tempoAnterior = tempoAtual;
    tempoAtual = millis();
    dt = tempoAtual - tempoAnterior;

    i = i+ki*erro*dt;

    de= erro-erroAnterior;
    d = kd*de/dt;
    Serial.println(d);

    if (i>80) i=80;
    if (i 255) velocidade=255;
    if (velocidade < 0) velocidade=0;
    Serial.println(velocidade);
    analogWrite(IN3,velocidade);


    }
    Sou Leigo em programação :(

  • @2tom
    @2tom 10 лет назад

    Please take in mind that the derivative portion should be divided by the sample time instead of multiplied. Furthermore the 'lastSample' should be subtracted from the 'sample' instead of vice versa. Since e' = de/dt ≈ Δe/Δt = (e - e_last)/dt

    • @IvanSeidel
      @IvanSeidel  10 лет назад

      Hi Tom! Yes... Someone pointed me that too! I added a note to the video fixing that.
      About the lastSample-sample, it is only a matter of changing the constants (-1, 1..) But will add another note too! Thanks

  • @felipevaz7439
    @felipevaz7439 9 лет назад

    BOM DIA, GOSTARIA DE SABER ESSA IDE QUE VOCÊ ESTA UTILIZANDO, OBRIGADO.

  • @andregomespinheiro4540
    @andregomespinheiro4540 7 лет назад

    Ainda não entendi o integrador,a variavel só aumenta e soma sem controle assim tendo uma saida erada....

  • @tuantrananh2967
    @tuantrananh2967 7 лет назад

    What is the name of a software programmable video content?

  • @eildosoares2757
    @eildosoares2757 2 года назад

    muito bem expicado parabens. fa um desses com um sensor ultrasonico gostaria de entender

  • @AutoCoreRobotica
    @AutoCoreRobotica 9 лет назад

    PARABÉNS, IVAN. Cara nunca mais fez mais videos, ele são muito importantes, vc tem uma boa didática e sabe passar com transparência o assunto, aprendi muito com seus video, eu realmente espero que vc continue.

  • @customthings3081
    @customthings3081 9 лет назад

    Ivan, tenho uma dúvida sobre sintonia.
    Pesquisando na internet eu cheguei ao método Ziegler e nichols.
    Porém os resultados de TI e TD ficaram com TI=440 e TD=79. Nesta situação onde acontecem estes valores de tempo altos, como eu implemento no seu algoritmo ?
    OBS: chamada a cada 1 segundo travado!

  • @Franguitar13
    @Franguitar13 4 года назад

    Amigo, o vídeo é muito instrutivo e me ajudou muito, parabéns! Todavia, queria apontar que a equação da derivativa está errada! Primeiro que não se trata da variação do sample (Sampleatual - SampleAnterior) e sim da variação do ERRO (ErrorAtual - ErrorAnterior). Segundo, a fórmula da derivativa é DIVIDIDA pelo deltaTime e não multiplicada. Bom, espero poder ajudar a você e a todos que pretendem programar um controlador PID na plataforma Arduino!

    • @Franguitar13
      @Franguitar13 4 года назад

      Corrigindo, a primeira pode ser utilizada o sample SIM! E esqueci de frisar um terceiro ponto: a equação do PID também está errada, a correta é PID = P + kP*I + kP*D

  • @exguru2006
    @exguru2006 Год назад

    Muito bom! Explicou as entranhas básicas, aritméticas, do controle PID sem jogar código enrolado e sem fazer uso de 'libraries' pré-montadas (como as PID_**.h). Parabéns!

  • @JhonnyYang
    @JhonnyYang 3 года назад

    The d time seems not correct. You multiply but i see the math need divite the delta time

  • @filhote99
    @filhote99 9 лет назад

    muito legal, como sugestão talvez colocar o set point como uma entrada analógica para esclarecer a duvida do pessoal que tem problemas co o set point, pelo demais muito bom, parabens

  • @Marcusilv
    @Marcusilv 9 лет назад

    Ivan;
    Poderia falar sobre a comunicação entre arduino e Software SCADA (Indosoft ou SCADABR) usando o protocolo Modbus e rede RS-485. O que acha?
    Seria de grande ajuda.
    Grande Abraço.

    • @IvanSeidel
      @IvanSeidel  9 лет назад +1

      Marcus Aurélio Silva Pereira Bacana! Está na lista... preciso de tempo livre, e tédio em casa para fazer o próximo vídeo, os dois eu até tenho, mas juntos é dificil rsAbraços

  • @WillianSantosCanal
    @WillianSantosCanal 9 лет назад

    Olá Ivan você pode me falar qual e esse programador que você esta usando para digitar o código para Arduino ?

    • @IvanSeidel
      @IvanSeidel  9 лет назад +2

      Olá Willian, o nome é "Sublime Text", e o plugin para o Arduino se chama "Stino"

  • @charlesufpa
    @charlesufpa 3 года назад

    sim..qual é a IDE?

  • @nadisonsilva1131
    @nadisonsilva1131 2 года назад

    Parabéns Mestre!! Excelente vídeo!

  • @Pod-MEX
    @Pod-MEX 5 лет назад

    muito, muito bom Ivan. gostei muito da sua didatica. desconfio que vou aprender logica fuzzy em arduino com vc. ja esto procurando os videos. rsrs

  • @alansillva9368
    @alansillva9368 5 лет назад

    Eu tô fazendo um pid de controle de nível de tanque e queria a sua ajuda

  • @jhonathanlaurindo6678
    @jhonathanlaurindo6678 4 года назад

    gostei muito do seu video será que você poderia me dar uma ajuda com um codigo ??

  • @lourivalbarreto
    @lourivalbarreto 7 лет назад

    Ivan, parabéns pelo vídeo e pela forma simples que vocês explicou o PID. Gostaria de utilizar sua biblioteca, porém o link gist.github.com/ivanseidel/b1693a3be7bb38ff3b63 não está funcionando. Poderia fornecer um novo link para biblioteca do PID por favor?

  • @juliocesarortiz6097
    @juliocesarortiz6097 9 лет назад

    qual o melhor arduino para se trabalhar mega-yun-uno?

  • @karistonalves7357
    @karistonalves7357 7 лет назад

    Primeiramente, parabéns pelo vídeo. Você explica muito bem. Gostaria de lhe perguntar, se tens algum código de auto sintonia do PID, como PSO, por exemplo? Se tiver, ficaria muito grato se pudesse compartilhar. Kariston.alves@gmail.com

  • @jrgq
    @jrgq 5 лет назад

    O que é necessário mudar para utilizar com um termopar K ligado na Max6675?

  • @alexandreshyzuoserrano9524
    @alexandreshyzuoserrano9524 8 лет назад +1

    Boa tarde, Ivan
    está de parabéns, estou fazendo o TCC e funcionou direitinho.

  • @mequifaztutoriais7438
    @mequifaztutoriais7438 8 лет назад

    Ivan, ví alguns vídeos q demonstravam uma aplicação de PID para seguidor de linha, mas como eu sei quanto vale meu erro em um seguidor de linha ?

  • @smartstamp5802
    @smartstamp5802 8 лет назад

    Olá vi o vídeo pela primeira vez, não tinha intendido muita coisa, mais após estudar e rever o vídeo, hoje consegui implementar meu código com sucesso para controle de estufa, valeu ! Funcionando 100% !

  • @joseitojunior1749
    @joseitojunior1749 4 года назад

    E quando ocorre overflow em deltaTime?

  • @phelesbao
    @phelesbao 3 года назад

    Esse seu PID não tem efeito anti wind-up?

  • @jandersondonascimentoalexa8331
    @jandersondonascimentoalexa8331 7 лет назад

    Ola amigo vc poderia responder qual o nome desse site que vc falou que hospedaria esse código desde já agradeço.

  • @charlesufpa
    @charlesufpa 3 года назад

    Derivada é taxa de variação, não a variação...

  • @ezeicom1
    @ezeicom1 8 лет назад

    cara quanto vc cobra pra escrever um codigo pra min??

  • @carlosarthurpetry3674
    @carlosarthurpetry3674 8 лет назад

    Olá Ivan, Muito bom o video. Acredito que faria mais sentido processar o sample já dentro da função addNewSample. Desta forma não é necessário array de samples e o valor não se perde caso não seja processado, e com isso ter uma função que apenas retorne o valor de PID, ou mesmo um atributo.

  • @TheThiaguw
    @TheThiaguw 9 лет назад

    Qual programa você está usando para escrever o código? Se for o software do arduino, você poderia me passar as configurações? Está bem mais eficiente.

    • @IvanSeidel
      @IvanSeidel  9 лет назад +1

      bfx Cabral o nome é SublimeText. Ele é apenas um BOM editor de texto, específico para Programação. Se instalar o plugin "Stino", ele também suporta o upload do código pela própria IDE, sem necessitar do software padrão do Arduino

  • @_false
    @_false 6 лет назад

    Qual IDE você está usando?

  • @Anderson1985S
    @Anderson1985S 9 лет назад +1

    Pode me mandar um e-mail de contato para tirar um duvida ?

  • @gabrielvigiano
    @gabrielvigiano 3 года назад

    Amigo... apenas um comentário sugestivo... eh necessário um filtro digital na parte derivativa para não amplificar os erros provenientes de um sinal que tem uma variação rápida ou para eventual descontinuidade...

    • @gabrielvigiano
      @gabrielvigiano 3 года назад

      Isso evita aquelas “tremidas” na prática

  • @Piano_Andre
    @Piano_Andre 4 года назад

    show.....sua didática é muito boa ...parabéns ....

  • @acaosaber3454
    @acaosaber3454 8 лет назад

    Eu gostei bastante da explicação, mas no seu exemplo somente foi utilizado o erro para a tomada da temperatura. Sendo que a derivada e a integral estão inutilizadas pela inicialização da constante. Para esta situação a temperatura não estaria "quicando" a cada tomada, já que o PID é justamente para evitar isso?

    • @IvanSeidel
      @IvanSeidel  8 лет назад

      Olá +Acao Saber, o vídeo mostrou a forma de "implementar" o PID. Até expliquei como se faz para "tunar" ou "ajustar" ele de maneira bem rápida, mas minha intenção era o de mostrar o funcionamento. Quanto a ficar "Quicando", isso vai depender MUITO do atuador e também do sensor. Proporcionalmente, sensor + lento e atuador + lento = + "quiques", mas isso não é constante ;)