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!
@IvanSeidel9 жыл бұрын
+Hélvio Albuquerque Obrigado =)
@hodrembucal65255 жыл бұрын
Concordo
@exguru20062 жыл бұрын
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!
@DuduBatera9 жыл бұрын
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.
@olavogazzola26504 жыл бұрын
The best PID tutorial on youtube by far, so easy to understand!
@HugoMaxMTeixeira4 жыл бұрын
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...👏👏
@a330turbinex73 жыл бұрын
O melhor video que já vi sobre PID na prática! Parabéns Ivan! Muito bom! Muito obrigado pelo seu tempo.
@juniortenorio996710 жыл бұрын
Ivan, você tem uma didática excelente! Esses assuntos mais complexos de arduino não são fáceis para os leigos, e você consegue transmitir muito bem! Continue compartilhando esses conhecimentos. Um forte abraço!
@bage12347 жыл бұрын
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...
@EulerAlvarenga110 жыл бұрын
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.
@wandersongomes840510 жыл бұрын
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.
@AutoCoreRobotica9 жыл бұрын
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.
@smartstamp58028 жыл бұрын
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% !
@matheuscaldas7 жыл бұрын
Fiz um período inteiro na faculdade estudando controle e não aprendi de maneira tão direta como funciona o PID! Excelente aula!
@jeffersongeorge25693 жыл бұрын
Muito bom, bem explicado, nem com meus professores entendi tão bem Parabéns....
@mariocgameirodemoura47437 жыл бұрын
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.
@alexandrevenito12152 жыл бұрын
Excelente explicação!!! Obrigado pelo seu tempo e seu trabalho de divulgação de conhecimento.
@flavioflmf8 жыл бұрын
Estou estudando a respeito, estava complicado até achar seus videos, parabéns! Consegue explicar de maneira simples e didática! (y)
@Marcusilv10 жыл бұрын
Parabéns Ivan. Eu precisava muito desse tutorial. Muito bem explicado didática e tecnicamente como sempre. Continue assim, a comunidade arduino agradece.
@EvandroRibeiro7 жыл бұрын
Muito Obrigado Ivan, sua vídeo aula foi muito útil para mim, aliás assisti o primeiro vídeo explicando o básico PID também e achei sensacional, parabéns pelo seu trabalho!!!
@walterp71259 жыл бұрын
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
@IvanSeidel9 жыл бұрын
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 ;)
9 жыл бұрын
Parabéns. Está muito bem explicado. Tão bem que além de aprender PID, também aprendi classe =] Muito obrigado.
@eduardofernandes37647 жыл бұрын
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.
@ruchirlakhani16268 жыл бұрын
Can you add english subtittles please
@GuilhermeEletronica9 жыл бұрын
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?
@gabrielchies67853 жыл бұрын
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.
@Guifer130310 жыл бұрын
Muito bom cara, eu estava tentando entender como funciona o PID na prática, e este vídeo me esclareceu bastante! Parabéns e valeu pelo trabalho!
@jeantoni66557 жыл бұрын
Olá Ivan! Obrigado por compartilhar seu conhecimento conosco. bem explicado! simples e direto. grande abraço
@luizvision4786 жыл бұрын
OLA IVAN , OBRIGADO PELA AULA, VOU ESTUDA-LA, PRINCIPALMENTE A CALASSE ... BACANA . PARABENS LUIZ RJ
@filhote999 жыл бұрын
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
@alexandreshyzuoserrano95248 жыл бұрын
Boa tarde, Ivan está de parabéns, estou fazendo o TCC e funcionou direitinho.
@juloko7 жыл бұрын
Espero um dia ser circundado por pessoas como você que faz a comunidade crescer sem precedentes. Parabéns.
@HungNguyenVan-xn2ms7 жыл бұрын
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?
@girino2n5 жыл бұрын
Excelente tutorial sobre PID! Excellent PID control tutorial!
@AndersonSantos-gw1lq5 жыл бұрын
Em qual parte do código a variável "lastTemperature" está obtendo o valor da temperatura passada? 18:39
@ualifer15 жыл бұрын
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?
@Leo-it9dc4 жыл бұрын
Será que posso uzar ele para fazer trabalhar dois servos para corrigir a posição de um foguete?
@Wolverine8599 жыл бұрын
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
@marcilionocrato11286 жыл бұрын
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....
@robsondonato56905 жыл бұрын
Faltou apenas dividir a parcela derivativa por deltaTime em vez de multiplicar. No mais, é bom vídeo.
@fa.canhizares10 жыл бұрын
Ivan, estamos sentindo falta de seus vídeos!!! Abraços!!!
@guilhermeamorim21549 жыл бұрын
Nossa cara parabéns, muito útil, muito mesmo! Bela explicação, em ambos os vídeos sobre pid.
@rodrigoalexandrepegoli87449 жыл бұрын
Ivan, parabéns cara! Muito bom! Simples fácil e prático! Muito bem explicado!
@germanogomes10978 жыл бұрын
Fazer uma pesquisa nesse assunto é meio complicado, quando você não tem nenhuma referência e todos os trabalhos que você encontra são trabalhos acadêmicos. Sua vídeo-aula mais todo o conteúdo que da pra abstrair dos artigos e trabalhos em geral encontrados na internet deu pra ter uma boa base, mais do que suficiente para começar algum projeto com isso. Muito obrigado pela ajuda. Espero que você continue fazendo mais vídeos e ajudando que ta querendo encontrar uma solução pra pesquisar algo mais futuramente.
@edsonandradepa9 жыл бұрын
Boa noite Ivan. Gostaria de saber como calcular deltaTime sem usar a função millis(). Poderias explicar um pouco mais sobre esse tempo (deltaTime).
@IvanSeidel9 жыл бұрын
+Edson Andrade A função "millis" e "micros" são as únicas que podem ser utilizadas para se receber o tempo de execução desde que foi ligado o microcontrolador... Mais info: www.arduino.cc/en/Reference/Millis
@edsonandradepa9 жыл бұрын
Obrigado.
@Franguitar134 жыл бұрын
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!
@Franguitar134 жыл бұрын
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
@andregomespinheiro45407 жыл бұрын
Ainda não entendi o integrador,a variavel só aumenta e soma sem controle assim tendo uma saida erada....
@nadisonsilva11313 жыл бұрын
Parabéns Mestre!! Excelente vídeo!
@casalmundoafora6 жыл бұрын
Sensasional! Muito obrigado por sua dedicação com essa explicação! Ótimo vídeo!
@jrjpmg8 жыл бұрын
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?
@chiorrimd9 жыл бұрын
Olá Ivan, parabéns pela aula.Gostaria que indicasse um livro para aprender C++..Eu tenho muiya necessidade de saber como criar bibliotecas para usar com simulink e o hardware arduino.Muito obrigado,
@IvanSeidel9 жыл бұрын
+marco chiorri Olá Marco, não aconselho livros, aconselho sites: udacity.com, edx.org e coursera.org ;)
@chiorrimd9 жыл бұрын
+Ivan Seidel ,muito obrigado!
@Piano_Andre4 жыл бұрын
show.....sua didática é muito boa ...parabéns ....
@osmaelcampos14548 жыл бұрын
Amigo, já pensaste em colocar este PID como controlador de temperatura para cervejeiros caseiros. Usamos varias rampas de temperatura onde combina tempo / temperatura. Obrigado
@jhonathanlaurindo66788 жыл бұрын
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
@Pod-MEX6 жыл бұрын
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
@marcosraphael33905 жыл бұрын
Salvou minha vida! Exatamente o que eu precisava saber. Excelente vídeo.
@edustroide9 жыл бұрын
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.
@pedro2023208 жыл бұрын
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 ?
@Eletriclabor8 жыл бұрын
Ivan, está de parabéns, super aula! Muito obrigado
@rodrigorja10 жыл бұрын
Parabéns Ivan seu tutorial ficou show de bola. Obrigado por compartilhar seus conhecimentos.
@joseitojunior17494 жыл бұрын
E quando ocorre overflow em deltaTime?
@felipevaz74399 жыл бұрын
BOM DIA, GOSTARIA DE SABER ESSA IDE QUE VOCÊ ESTA UTILIZANDO, OBRIGADO.
@jrgq5 жыл бұрын
O que é necessário mudar para utilizar com um termopar K ligado na Max6675?
@tuantrananh29677 жыл бұрын
What is the name of a software programmable video content?
@mundodemaluehelo7 жыл бұрын
parabéns, explicou de maneira simples e pratica!
@pedrofonseca3574 жыл бұрын
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?
@fabriciomenezes88539 жыл бұрын
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.
@cristophermarquesdasilva32823 жыл бұрын
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.
@israelgames18316 жыл бұрын
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".
@edulago8 жыл бұрын
O D não deveria dividir pelo delta ao invés de multiplicar? O I não deveria totalizar o erro sem considerar a constante Ki?
@eduardomilianicapelini11879 жыл бұрын
Parabens ae velho por esse e pelo video do tutorial sobre PID, manja muito e explica muito bem!
@GuilhermeEletronica9 жыл бұрын
Ótimo video! Vai ser de grande valia para futuros projetos!
@zeildosoares18883 жыл бұрын
Boatarde, nossa, sua aulo é otima, me tira uma duvida tem como com esse codigo no lugar dosensor de temperatura , colocar um giroscopio?
@andersons2isaque6 жыл бұрын
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 ?
@carlosarthurpetry36748 жыл бұрын
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.
@victormanoel49059 жыл бұрын
Boa noite Ivan, Estou usando o valor de Set Point Ajustavel, porém está demorando muito para atualizar o valor no controle PID, você poderia dar uma ajuda.
@luisgustavoalmeida6838 жыл бұрын
Camarada, ótimo vídeo, mandou muito... Parabéns.
@carlospodest61626 жыл бұрын
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
@a330turbinex73 жыл бұрын
Acho que faltou no setup() fazer o carregamento do setPoint da classe.
@celotron7 жыл бұрын
Ivan, parabens!!! video aula sensacional!!! Ganhou mais um inscrito.
@alansillva93685 жыл бұрын
Eu tô fazendo um pid de controle de nível de tanque e queria a sua ajuda
@slaredo32838 жыл бұрын
Simplesmente show! Parabéns e muito obrigado!!
@marcelodossantoscoutinho49553 жыл бұрын
Ivan, a Classe não poderia ficar em um arquivo separado ? obs: no código faltou o usuário especificar o setpoint. Abç
@alansillva93685 жыл бұрын
Como faço para entrar em contato com vc ?
@Marcusilv9 жыл бұрын
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.
@IvanSeidel9 жыл бұрын
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
@ronilwesley84547 жыл бұрын
Muito boa sua video aula. Tenho uma dúvida, derepente pode me ajudar, no código na parte do calculo da integral, dessa forma como esta escrito, haverá chance de ocorrer o windup no integrador ? Se sim, pode sugerir um código para evitar isso ?
@dodostreetball8 жыл бұрын
Ótima abordagem! Muito prático, obrigado
@customthings30819 жыл бұрын
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!
@acaosaber34549 жыл бұрын
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?
@IvanSeidel9 жыл бұрын
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 ;)
@abimaelviana9 жыл бұрын
Vídeo Muito bom, vou tentar implementar o PID em um CLP.
@icarosilva31377 жыл бұрын
Como eu implemento o ANTI WIND UP neste código seu?
@a330turbinex73 жыл бұрын
Neste video o cálculo do D está errado. não multiplica pelo deltaTime mas divide pelo deltaTime.
@wendel909 жыл бұрын
Boa tarde Ivan! Eu consigo utilizar este PID para controlar um servo?
@victormanoel49059 жыл бұрын
Boa Noite Ivan, poderia fazer um tutorial de como transforma este arquivo numa biblioteca
@diegoalexm8 жыл бұрын
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!
@phelesbao3 жыл бұрын
Esse seu PID não tem efeito anti wind-up?
@marcelodossantoscoutinho49553 жыл бұрын
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;
@imperadorps6 жыл бұрын
cara você tem um artigo sobre controle de nível utilizando o PID???
@gabriel-beserra9 жыл бұрын
Olá, Ivan. Como eu poderia implementar esse código para fazer o controle de velocidade de um motor DC? Obrigado.
@gabrieldepaula5834 жыл бұрын
github.com/gabrieldep/Eris
@_false6 жыл бұрын
Qual IDE você está usando?
@VitorMMoraes109 жыл бұрын
Muito Bom mesmo Ivan. Meus parabens pela excelente aula. Podemos esperar mais algumas aulas de Arduino? Abracos
@IvanSeidel9 жыл бұрын
Com certeza =) Mas costumo fazer aulas de assuntos que não se "acha" pela internet... o que é bem dificil de encontrar haha Abraços