So uma correção, a lâmpada não é o atuador do processo e sim a planta, pois sua saída (luminosidade) é lida pelo sensor. Atuador é o elemento com capacidade de alterar a planta, que nesse caso podemos entender como o transistor.
Meu irmaooooo, pq não achei esse video antes? Kkk professor, quero dar os parabéns pela didática empregada. Até hoje foi o vídeo q melhor explicou o PID. Parabéns.
Ótimos vídeos, esse overshoot é tão rápido que não vejo grandes problemas. Muito didático e com a prática aplicada. Parabéns, ganhou um humilde seguidor. rsrsrs
Simplesmente incrível, tinha desistido de tentar implementar em meus projetos por não entender nada, mas essas aulas me esclareceram muito, que didática incrível
Olá professor muito bom o conteúdo, tentei recriar o sistema, porem eu não tinha um mosfet então eu coloquei um led, porem o input não segue a referencia, ja revi o código e esta igual, troquei as constantes e nem isso solucionou o problema, parece que quando troca as constantes não afeta o sistema, teria alguma ideia de que poderia ser? As curvas estão todas separadas
Bruno, excelente aula, parabens No seu vídeo vc fala de uma aula na qual vc ensina a mudar aresolução do PWM no arduino UNO (>255). por favor, qual é essa aula e onde a acho. Desde já obrigado
Material excelente 👍 parabéns professor pelo conteúdo. Tava precisando de um material como esse que postou. Vai me ajudar bastante. Já estou no aguardo do próximo vídeo parâmetros Kp, Ki e Kd. Professor! Tira uma dúvida por favor. No caso a variável de saída é a variável controlada que é sensor LDR? E a variável de entrada é a variável Manipulada que no caso é o PWN da luz?
professor quero implementar um PID para um servo motor, porem quero quero uma modulação apenas de 0° a 90 °. PODE ME DAR ALGUMAS DICAS DE IMPLEMENTAÇÃO DO PID?
Nesse momento não estou recordando exatamente das funções da biblioteca, mas tem uma em que vc pode definir a os valores mínimo e máximo de saída. Defina esses para os ângulos (0 e 90). Aí é só pegar o valor de saída do PID e jogar para o servo.
Essa lâmpada de 60w será alimentada pela rede elétrica, sendo assim, tensão alternada. Nesse caso você precisaria utilizar um TRIAC ao invés do MOSFET e implemetar um sistema pra controlar o angulo de disparo do pulso no TRIAC. É um pouco mais complicado, mas a parte do PID é exatamente a mesma
Esse é o codigo. nao sei se esta certo. comentem, como eu nao estou conectado no arduino eu coloquei setpoit e inPut para gerar aleatoriamente. #include #define pwmPin 3 #define pinoPulsos 2 double Setpoint, Input, Output; double Kp = 0.9, Ki = 0.5, Kd = 0; // Ajuste esses valores conforme necessário PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT); unsigned long ultimoTempo = 0; //**************************************************************************************************************************** void setup() { pinMode(pwmPin, OUTPUT); pinMode(pinoPulsos, INPUT_PULLUP); Serial.begin(9600); myPID.SetMode(AUTOMATIC); // Define o PID para o modo automático myPID.SetOutputLimits(0, 255); // Define os limites de saída do PID para o intervalo correto myPID.SetSampleTime(75); // Define o tempo updateSetpoint(); } //**************************************************************************************************************************** void loop() { //Input = map(pulseIn(pinoPulsos, HIGH), 0, 150, 0, 256); // Leitura do pino calculo do tempo e normalização myPID.Compute(); // Cálculo do PID //Output = map(Output, 0, 255, 0, 255); analogWrite(pwmPin, Output); // Saída do PID controla a velocidade do motor através do PWM Serial.print(Setpoint); Serial.print(" "); //Serial.print(Input); //Serial.print(" "); Serial.print(Output); Serial.println(" "); if (millis() - ultimoTempo >= 3000) // Verifica se é hora de alterar o setpoint { updateSetpoint(); ultimoTempo = millis(); // Reinicia o contador de intervalo } } //**************************************************************************************************************************** void updateSetpoint() { Setpoint = random(0, 600); Input = random(0, 600); } //---------------------------------------------------------------------------
É isso que a gente precisa aqui no Brasil, mais vídeos com conteúdo aprofundado.
Uma didática diferenciada.
Essa serie de vídeos esta' espetacular, obrigado pelas dicas e PARABENS.
Tive que voltar aqui, meu que material sensacional!!! To estudando a implementação de um controle PID num carrinho seguidor de linha
So uma correção, a lâmpada não é o atuador do processo e sim a planta, pois sua saída (luminosidade) é lida pelo sensor. Atuador é o elemento com capacidade de alterar a planta, que nesse caso podemos entender como o transistor.
Sensacional explicação ! Obrigado !! Bora pro vídeo #3 ...
Parabens pela didatica, e que coisa linda olhando o grafico!!
Excelente explicação, simples e funcional. Parabéns pela sua didática, Obrigado pelas dicas.👋👋
Meu irmaooooo, pq não achei esse video antes? Kkk professor, quero dar os parabéns pela didática empregada. Até hoje foi o vídeo q melhor explicou o PID. Parabéns.
Obrigado, Eduardo! Espero que esse vídeo chegue a todo mundo que precise aprender PID
Gostei demais do seu vídeo anterior
Muito bom!
Ótimos vídeos, esse overshoot é tão rápido que não vejo grandes problemas. Muito didático e com a prática aplicada. Parabéns, ganhou um humilde seguidor. rsrsrs
Ótimo vídeo
Bem detalhado
👏👏👏
Simplesmente incrível, tinha desistido de tentar implementar em meus projetos por não entender nada, mas essas aulas me esclareceram muito, que didática incrível
Muito obrigado! Fico muito contente que esse meu vídeo te ajudou, desejo sucesso em seus projetos!
PARABÉNS PROFESSOR VOCÊ É FERA , OBRIGADO POR DIVIDIR O SEU CONECIMENTO!
Parabens pelo video, voce sabe me dizer como achar a função de transferencia desse circuito?
Com ela eu poderia aplicar algum metodo de sintonia.
Ótimo video, parabèns!!
Shooow demais, professor!!!
Aguardando o próximo vídeo. :D
Mto bom professor, depois vou estudar direitinho.
Olá professor muito bom o conteúdo, tentei recriar o sistema, porem eu não tinha um mosfet então eu coloquei um led, porem o input não segue a referencia, ja revi o código e esta igual, troquei as constantes e nem isso solucionou o problema, parece que quando troca as constantes não afeta o sistema, teria alguma ideia de que poderia ser? As curvas estão todas separadas
Espetacular!
TU É O CARA!
Excelente aula!!!
Muito bom professor
Muito bom.
prof, para implementar isso para controle de temperatura para estação de solda e parecido ou totalmente diferente ??
Bruno, excelente aula, parabens
No seu vídeo vc fala de uma aula na qual vc ensina a mudar aresolução do PWM no arduino UNO (>255). por favor, qual é essa aula e onde a acho.
Desde já obrigado
ruclips.net/video/M46uVDxuKsI/видео.html
Foda demais!
Uma pergunta: como assim um algoritmo PID em um microcontrolador de 8 BITs ?
Material excelente 👍 parabéns professor pelo conteúdo.
Tava precisando de um material como esse que postou. Vai me ajudar bastante. Já estou no aguardo do próximo vídeo parâmetros Kp, Ki e Kd.
Professor! Tira uma dúvida por favor. No caso a variável de saída é a variável controlada que é sensor LDR? E a variável de entrada é a variável Manipulada que no caso é o PWN da luz?
Vlw William! Sim a PV é a entrada, ou seja, a leitura do LDR e a MV é a saída, o sinal de PWM para o MOSFET.
Obrigado pelo retorno professor. O conteúdo não fácil mas o professor consegue explicar de forma simples e objetiva. Parabéns
Legal !!!!!
professor quero implementar um PID para um servo motor, porem quero quero uma modulação apenas de 0° a 90 °. PODE ME DAR ALGUMAS DICAS DE IMPLEMENTAÇÃO DO PID?
Nesse momento não estou recordando exatamente das funções da biblioteca, mas tem uma em que vc pode definir a os valores mínimo e máximo de saída. Defina esses para os ângulos (0 e 90).
Aí é só pegar o valor de saída do PID e jogar para o servo.
@@prof_brunoraniere onde posso encontrar essa biblioteca?
Professor, essa biblioteca também pode ser utilizada com o ESP32?
Provavelmente sim, mas eu ainda não cheguei a testar
@@prof_brunoraniere faz um video com o esp32 que esse exemplo nao copila para o esp32
Outra dúvida professor! Posso usar uma lâmpada de 60W , essas comum em casa, para reproduzir o projeto?
Essa lâmpada de 60w será alimentada pela rede elétrica, sendo assim, tensão alternada. Nesse caso você precisaria utilizar um TRIAC ao invés do MOSFET e implemetar um sistema pra controlar o angulo de disparo do pulso no TRIAC. É um pouco mais complicado, mas a parte do PID é exatamente a mesma
Entendi, vou adquirir os mesmos componentes. Obrigado pelo retorno
Usa um diodo em um dos terminais da lampada
Fala bruno blz? Vc tem disponibilidade para ajudar com o meu projeto? Envolve PID tbm.
Tenho sim, vamos conversar sobre. Me chama no direct do insta @prof_brunoraniere
noss q top
nao da pra fazer em ladder no arduino
Olha, até daria para tentar implemetar em ladder, mas seria um trabalho grande! O app PLC Ladder Simulator não tem PID implementado
Esse é o codigo. nao sei se esta certo. comentem,
como eu nao estou conectado no arduino eu coloquei setpoit e inPut para gerar aleatoriamente.
#include
#define pwmPin 3
#define pinoPulsos 2
double Setpoint, Input, Output;
double Kp = 0.9, Ki = 0.5, Kd = 0; // Ajuste esses valores conforme necessário
PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT);
unsigned long ultimoTempo = 0;
//****************************************************************************************************************************
void setup()
{
pinMode(pwmPin, OUTPUT);
pinMode(pinoPulsos, INPUT_PULLUP);
Serial.begin(9600);
myPID.SetMode(AUTOMATIC); // Define o PID para o modo automático
myPID.SetOutputLimits(0, 255); // Define os limites de saída do PID para o intervalo correto
myPID.SetSampleTime(75); // Define o tempo
updateSetpoint();
}
//****************************************************************************************************************************
void loop()
{
//Input = map(pulseIn(pinoPulsos, HIGH), 0, 150, 0, 256); // Leitura do pino calculo do tempo e normalização
myPID.Compute(); // Cálculo do PID
//Output = map(Output, 0, 255, 0, 255);
analogWrite(pwmPin, Output); // Saída do PID controla a velocidade do motor através do PWM
Serial.print(Setpoint);
Serial.print(" ");
//Serial.print(Input);
//Serial.print(" ");
Serial.print(Output);
Serial.println(" ");
if (millis() - ultimoTempo >= 3000) // Verifica se é hora de alterar o setpoint
{
updateSetpoint();
ultimoTempo = millis(); // Reinicia o contador de intervalo
}
}
//****************************************************************************************************************************
void updateSetpoint()
{
Setpoint = random(0, 600);
Input = random(0, 600);
}
//---------------------------------------------------------------------------