PID temperature controller DIY Arduino

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 พ.ค. 2024
  • Best & Fast Prototype ($2 for 10 PCBs): www.jlcpcb.com
    Thanks to JLCPCB for supporting this video.
    Learn how a PID controller for temperature works. We use a K type thermocouple and read real temperature values with the MAX6675 breakout board. SPI connected to the Arduino which will create the PID and control a MOSFET with PWM signal and the power for a DC heater.
    my Q&A page: electronoobs.com/eng_preguntas...
    Help me on Patreon : www.patreon.com/user?u=4854866
    Canal en Español: / electronoobs en español
    🔬PRINTERS FDM
    -------------------------------------
    Artillery Sidewinderr X1 (364€ Aliexpress): s.click.aliexpress.com/e/_9y9haI
    Artillery GENIUS (307€ Aliexpress): s.click.aliexpress.com/e/_A9SvG2
    Creality3D Ender 3 Pro (230€ Aliexpress): s.click.aliexpress.com/e/_APcCa2
    Anycubic Mega S (206€ Aliexpress): s.click.aliexpress.com/e/_ALcTLs
    ELEGOO NEPTUNE 2 (186€ Aliexpress): s.click.aliexpress.com/e/_AM2y7c
    Prusa i3 MK3S Clone (393€ Aliexpress): s.click.aliexpress.com/e/_ASNXyi
    Creality CR-10 V3 (480€ Aliexpress): s.click.aliexpress.com/e/_AnycCO
    🔅PRINTERS RESIN
    -------------------------------------
    ELEGOO Mars Pro (208€ Aliexpress): s.click.aliexpress.com/e/_A0nVFY
    ELEGOO Saturn MSLA (480€ Aliexpress): s.click.aliexpress.com/e/_AKxJim
    Anycubic Photon Mono (199€ Aliexpress): s.click.aliexpress.com/e/_9ulv4K
    Creality HALOT ONE (275€ Aliexpress): s.click.aliexpress.com/e/_Ak7jBC
    LINKS
    ________________________________________________________
    Tutorial webpage: www.electronoobs.com/eng_ardui...
    Part list: www.electronoobs.com/eng_ardui...
    Schematic thermocouple: www.electronoobs.com/eng_ardui...
    Final schematic: www.electronoobs.com/eng_ardui...
    Code (thermocouple read example): www.electronoobs.com/eng_ardui...
    Code (PID NO rotary encoder): www.electronoobs.com/eng_ardui...
    Code (FINAL PID): www.electronoobs.com/eng_ardui...
    Please, like, share and subscribe in order to motivate me for moe videos like this one. Thank you!
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 421

  • @asswipe3079
    @asswipe3079 5 ปีที่แล้ว +84

    On behalf of all mechanical engineering students, thank you so much for breaking this process down into something we can understand!

  • @marcus_w0
    @marcus_w0 6 ปีที่แล้ว +10

    I really love your enthusiasm. You're getting better and better. As a viewer right from your first few videos it's amazing to see your progress. Keep on!

  • @j3s0n
    @j3s0n 3 ปีที่แล้ว +14

    The heating element can be represented by a first-order transfer function if you apply a step input (e.g 5 V or 12 V or whatever the supply voltage is). Plot the transient behaviour as the temperature raises and settles about a value (sample at regular intervals though). This will fit the equation K/(s(tau)+1). K is the gain so that will be the maximum temperature of the plot. Tau is the time constant and this will be the time it takes for the element to reach about 63% of its maximum temperature. You can either simulate this in Simulink and play with the PID values (make sure you use the z-domain rather than the s-domain though.
    If you don't want to use simulink then just use a tuning method like ziegler nichols

  • @hippie-io7225
    @hippie-io7225 6 ปีที่แล้ว +84

    One of the best PID explanations I've seen. You are an excellent educator. Thanks!

    • @LM-uz4pr
      @LM-uz4pr 4 ปีที่แล้ว +2

      Going to make some rosin with this info? lol

    • @mohammedalshrief532
      @mohammedalshrief532 2 ปีที่แล้ว +2

      Pidth-cam.com/video/NwuY7qbs2Dkp/w-d-xo.htmlidpid pid line follower robot

    • @embeddedsystemsiotprojects2055
      @embeddedsystemsiotprojects2055 2 ปีที่แล้ว

      @@mohammedalshrief532 thankes

  • @belenhedderich3330
    @belenhedderich3330 6 ปีที่แล้ว +9

    cant wait to see the recycling extruder project. Thank you! Amazing project!

  • @VasilisKarastergios
    @VasilisKarastergios 6 ปีที่แล้ว +26

    Thanks for all the time and effort you put in to this video, very well explained!

  • @Meatlove
    @Meatlove 5 ปีที่แล้ว

    This might be the basis for a new barbecue controller project. Thanks for the effort in making such a clear and complete tutorial.

  • @anonrider8870
    @anonrider8870 5 ปีที่แล้ว

    man you have one of the best electronics projects channel on TH-cam!!!
    good job!

  • @lericode
    @lericode 6 ปีที่แล้ว +3

    Siento que la calidad de los vídeos es cada vez mejor, felicitaciones, como siempre increíble.

  • @kyanjenkins5932
    @kyanjenkins5932 5 ปีที่แล้ว

    Great explanation! I'm what you could call a beginner in grade 10 at school but I've picked up on the basics really quickly and have decided to do a project for in the house. I am going to use a PID to control the temperature for an espresso machine. This explanation was really useful, but still alot of research to do!

  • @RossOCarroll3301
    @RossOCarroll3301 ปีที่แล้ว +1

    This is incredible. I am an MD doing research in neuroscience trying to make an in-line heater for live-cell imaging. This video is exactly what I needed. absolutely stunning!!! :D :D

    • @emoryolsoff96
      @emoryolsoff96 2 หลายเดือนก่อน

      How did it work out?

  • @demesisx
    @demesisx 9 หลายเดือนก่อน

    Great job. Everyone else is launching rockets and having us use PID for telemetry. Thanks for simplifying it and making it accessible.

  • @sarahgutierrez8196
    @sarahgutierrez8196 3 ปีที่แล้ว

    SO HELPFUL! Learning so much from your explanations through the code and each piece of electronic, thank you so much

  • @Johann75
    @Johann75 2 ปีที่แล้ว

    This is what I have been looking for my pastry proofer. Thank you very much Sir.

  • @guansun1571
    @guansun1571 4 ปีที่แล้ว

    Thank you so much for sharing Sir . I am trying to make my own soldering station by myself recently.

  • @MCsCreations
    @MCsCreations 6 ปีที่แล้ว +9

    Really nice, man! Great job! 😊

  • @adabill295
    @adabill295 6 ปีที่แล้ว +1

    I've been trying to do a PID with Arduino for Sous Vide cooking. The tuning of the PID is the most difficult process for me. The key is to have the patience and good data collection to adjust the various parameters correctly. I tried to doo it with a Crock Pot but there isn't any circulation in a crock pot and I couldn't get the temp deviations down to an acceptable level..
    Very good video with good starter information.

    • @raffaysajjad
      @raffaysajjad 4 ปีที่แล้ว

      Can you share your thoughts about how you brought the temperature deviations down to an acceptable level?

  • @martinhavshjsrensen253
    @martinhavshjsrensen253 6 ปีที่แล้ว

    Ahh... How nice with a video without JLC commercials! ;)

  • @mohammedalshrief532
    @mohammedalshrief532 2 ปีที่แล้ว +1

    I made my machine learning pid iron station and i made pid code by helping your videos great man

    • @mohammedalshrief532
      @mohammedalshrief532 2 ปีที่แล้ว +1

      And mad pid line follower 🙂❤👌pidth-cam.com/video/NwuY7qbs2Dkl/w-d-xo.htmlinefollowerpid

  • @21mejia25
    @21mejia25 2 ปีที่แล้ว

    Great video. You inspired me to build a fan for my smoker to control temps for long cooks.

  • @AhmedAmer-he1de
    @AhmedAmer-he1de 3 ปีที่แล้ว

    this is litterely what i needed for a school project and this helped a lot

  • @steveeb00
    @steveeb00 4 ปีที่แล้ว

    I haven't even watched the video and I gave you a Thumbs Up. I hope this is exactly what I need to control my burnout oven.

  • @dalecallaham4847
    @dalecallaham4847 3 ปีที่แล้ว

    Very nice and clear! You set a high standard.Thanks!

  • @sunilbelsare5697
    @sunilbelsare5697 4 ปีที่แล้ว +1

    Great informative video, very nicely and deeply explained about each and every aspect of PID controller's functionality using Arduino. You are great explainer, this skill of yours will educate needy learners.

  • @joao2010
    @joao2010 4 ปีที่แล้ว

    It's excelent! Best explanation I've seen as well. Thank you so much!!!

  • @victorclaros8967
    @victorclaros8967 6 ปีที่แล้ว +1

    Amazing work !!!!! thank you for your effort and passion !!!

  • @neogabo123
    @neogabo123 4 ปีที่แล้ว

    Guys why is it that there is a diode on the protoboard for the part that controls the heater ? i dont see it in schematic (min 6:52). Truly one the greatest PID explanations on youtube! Thanks you guys! Keep at it!! :D

  • @andrezsa23
    @andrezsa23 6 ปีที่แล้ว +2

    Exelente control pid lo usaré para modificar un horno para soldar smd ojalá lo hubieras hecho en español

  • @rohandhankani3962
    @rohandhankani3962 5 ปีที่แล้ว

    Brilliant this is what I was looking for
    Thank you very much

  • @jamescullins2709
    @jamescullins2709 5 ปีที่แล้ว

    well done, I like the way you did not use libs but wrote the code yourself, it is easier to see what you are doing.

  • @zaprodk
    @zaprodk 6 ปีที่แล้ว +1

    Nice explanation of how PID works. Keep up the good work! - Btw. is that soldering iron only 24 Watts? I would think it would be 40 or 50 watts by looking at the size.

  • @aizukhalid9776
    @aizukhalid9776 4 ปีที่แล้ว

    the best explanations ever, thank you for the detail

  • @mouradmokeddem6467
    @mouradmokeddem6467 2 ปีที่แล้ว

    Appreciate you efforts. much easy for students . Thank you

  • @allanminers1662
    @allanminers1662 2 ปีที่แล้ว

    A great presentation. congratulations on a real contribution to education.
    On process control

  • @hemantmundhe6662
    @hemantmundhe6662 6 ปีที่แล้ว +2

    Thanks to you because those subject to handle to you.I am using hakko 907 temperature control iron (clone).your nest video very useful for me and my temperature control iron 907.Thanks

  •  5 ปีที่แล้ว

    eres genial. gracias por tu aporte, estuve buscando esto durante mucho tiempo.

  • @theflyingdutchman787
    @theflyingdutchman787 5 ปีที่แล้ว

    Exactly what I was looking for! A+ Teacher!!!!

  • @hebrewhammer1000
    @hebrewhammer1000 6 ปีที่แล้ว

    Thank you for sharing! I learned a lot.

  • @DavDoubleOSeven
    @DavDoubleOSeven ปีที่แล้ว

    I can easily understand your english, it’s very good

  • @shehryarshaheen7115
    @shehryarshaheen7115 6 ปีที่แล้ว +4

    Thinx for your amazing video

  • @AsankaLakmalMorawaka
    @AsankaLakmalMorawaka 4 ปีที่แล้ว

    Great explanation, easy to understand..

  • @karlmozey1412
    @karlmozey1412 6 ปีที่แล้ว +2

    No PID filtering this time ha..... Am just kidding.I really enjoy your tutorials.Thanks a lot.

  • @isettech
    @isettech 5 ปีที่แล้ว

    May need elaboration for more advanced engineers on the thermocouple. They DO NOT put out a voltage based on temperature. They work on a difference in temperature between a hot junction and a cold junction. The example video is OK for an elevated temperature in a temperature stable room, but would not work to control the temperature of the room because the cold and hot junctions would be at the same temperature. Great introduction, and a good place for more advanced students to learn about the hot and cold junctions and temperature measurement of the cold junction to get accurate values for the hot junction. The more advanced students and engineers can locate the cold junction in this example.

  • @fromtheflightdeck252
    @fromtheflightdeck252 4 ปีที่แล้ว

    Very good video...easy and concise

  • @MAA567000
    @MAA567000 2 ปีที่แล้ว

    Very useful and understable video .. Thank you very much for your effort

  • @zeeshanejaz3044
    @zeeshanejaz3044 2 ปีที่แล้ว

    really helpful for Mechatronics engineers

  • @diazpty
    @diazpty 6 ปีที่แล้ว

    Super awesome presentation thanks!

  • @andrewmorgan5541
    @andrewmorgan5541 4 ปีที่แล้ว

    Awesome work, thank you for sharing the code! I have numerous arduino projects I have waned to complete involving PID control but could not find any PID code.

  • @ahmedladhibi6893
    @ahmedladhibi6893 2 ปีที่แล้ว

    Thank you for your good explanation !

  • @firefoxik75
    @firefoxik75 6 ปีที่แล้ว

    Nice work! Just saying.. most of those industrial PID has also option to control solid state relay with PWM, so it will work flawlessly with any resistive heating element...

  • @wilvanham8911
    @wilvanham8911 ปีที่แล้ว

    hi..
    thank you for the good explanation about the PID .... it seems there is a 2 degree difference ( higher ) then the set temp...
    now im analyse where this offset comes from.

  • @mohammadyaseenhamidi1422
    @mohammadyaseenhamidi1422 6 ปีที่แล้ว +3

    Hi dear sir please kindly share which model nano Oscilloscope you use ... if its possible please share the link of that Oscilloscope which you use

  • @paulhendrix8599
    @paulhendrix8599 6 ปีที่แล้ว +2

    Amazing quality!

  • @J_OBODAI
    @J_OBODAI 6 ปีที่แล้ว

    You never disappoint.

  • @johannienel1
    @johannienel1 2 ปีที่แล้ว

    Liked and subscribed! Great job

  • @andresmao2230
    @andresmao2230 6 ปีที่แล้ว

    gracias por tu video, quisiera preguntarte, necesito controlar la temperatura de una resistencia industrial para un proyecto ¿que pwm puedo usar? ya que la resistencia va conectada a AC!

  • @konturgestalter
    @konturgestalter 5 ปีที่แล้ว

    excellent videos!!! more of it please!!

  • @Rov-qc2ti
    @Rov-qc2ti 6 ปีที่แล้ว

    Great tutorial Man....!
    Im Waiting other great video...

  • @nasirmahmood6764
    @nasirmahmood6764 3 ปีที่แล้ว

    excellent explanation man!

  • @marco1903ful
    @marco1903ful 5 ปีที่แล้ว +2

    Hey dude!
    I have a question, I a want to use a timer of 15 minutes for hold the temperature of 121 C°, after these time I want put the element heating off, how can do it?

  • @Stratix91
    @Stratix91 6 ปีที่แล้ว

    nice nice nice, youre a real maker and im a fan:D

  • @giorsoros1135
    @giorsoros1135 5 ปีที่แล้ว

    hey one question, is mosfet or triac the best control signal amplifier ?
    or do you have a list of another choices?

  • @ersinerel97
    @ersinerel97 4 ปีที่แล้ว +1

    may i ask why did you use -3 and +3 range in the integral part?
    Andwhat would happen if we use bigger range or smaller range?

  • @ibrahimkhadraoui7736
    @ibrahimkhadraoui7736 5 ปีที่แล้ว

    Thank you very much dude, I really appreciate this video ♥ please can you make a video about a line follower with PID

  • @Bianchi77
    @Bianchi77 2 ปีที่แล้ว

    Nice video, thanks for sharing :)

  • @KTZTheProteinMan
    @KTZTheProteinMan 3 หลายเดือนก่อน

    If I am using two of the same heaters in this videos could I used the average of the the two for the PID portion of the code? Essentially I am try to heat up one item in a sandwich style configuration with one heater on top and the other on the bottom.

  • @raymondmichael4987
    @raymondmichael4987 6 ปีที่แล้ว +10

    With such explanations,
    Please make tutorials on controlling a stepper motor using arduino, as I want to open/ close a box's window depending on the temperature inside a box.
    Lm35 as a temperature sensor

    • @ultraidtech8250
      @ultraidtech8250 5 ปีที่แล้ว

      th-cam.com/video/Eba4Ufz1o40/w-d-xo.html

    • @TheRebornRJ
      @TheRebornRJ 5 ปีที่แล้ว +1

      Hey! Have u got an idea of controlling the steppermotor based on the temperature? Its for my thesis :(

    • @MrIsuru007
      @MrIsuru007 4 ปีที่แล้ว

      @@TheRebornRJ ahaha take the pid value and make a condition to powerup the motor by a signal

    • @henryrollins9177
      @henryrollins9177 3 ปีที่แล้ว

      @@ultraidtech8250 "video not available"

    • @mohammedalshrief532
      @mohammedalshrief532 2 ปีที่แล้ว

      th-cam.com/video/NwuY7qbs2Dk/w-d-xo.html

  • @arikspaude1690
    @arikspaude1690 2 ปีที่แล้ว

    Absolute legend thank you sir

  • @attamuhammad1229
    @attamuhammad1229 5 ปีที่แล้ว

    Good Video. Is there a way to calculate accurate P,I & D variables instead of hit and trial method?

  • @nielslarsen1094
    @nielslarsen1094 6 ปีที่แล้ว

    I like this video.
    From many years of experience i will advise you to have a function on your coming
    soldering station controller, where it enters sleep mode, reducing temperature when not being active
    soldering.
    This is due to the fact that soldering tips are " burning out ", when standing idle with high temperature.
    Also the nickel layer is thin, especially on the chinese iron tips you are going to use as per your video..
    Kind rgds.

    • @oscargr_
      @oscargr_ 6 ปีที่แล้ว

      niels larsen.
      A lot of the burning of tips is due to the fact these soldering irons do *not* have a temperature controller.
      In order to not be too cold when they are working (touching new cold wire and melting tin) they are getting slightly too much power.
      Basically, in rest the temperature goes up because nothing cools it down.
      I agree it is a nice feature to add.

  • @javierbravo5020
    @javierbravo5020 6 ปีที่แล้ว +1

    good job, congrats

  • @ifindev
    @ifindev 6 ปีที่แล้ว

    Thank you!!! This is really great!!!!!!!!!!

  • @user-zo2jo3cc9p
    @user-zo2jo3cc9p 9 หลายเดือนก่อน

    excellent video.

  • @ismailoztas7052
    @ismailoztas7052 4 ปีที่แล้ว +2

    Hi, Excellent study, clear explanation. thanks for sharing. I have a question. I wanted to control the 220V AC heater with SSR. I tried to do but I couldn't drive SSR with PWM. and Is banana required for the circuit? :)

  • @gogogowa
    @gogogowa 3 ปีที่แล้ว +1

    Great video. About how long would it take to boil 4 cups of water using this?

  • @KidNombre
    @KidNombre 2 ปีที่แล้ว

    Hi There. Do you know if its possible to use a thermometer that communicates over I2C with the standard PID libraries?

  • @guru253
    @guru253 4 ปีที่แล้ว

    Hello! Excellent video. What accuracy can we attain using this given room temperature conditions? Is 0.1 degree C doable?

  • @maxm301
    @maxm301 5 ปีที่แล้ว

    Hi there, in your code what's the meaning of PCMSK0 scan? and is there significance of the PWM frequency being roughly 1000 Hz? thanks

  • @adamcollier3095
    @adamcollier3095 5 ปีที่แล้ว

    I need to do this exact thing but it must be much smaller, can you recommend smaller products to create this same type of PID heater control?

  • @supernoob2542
    @supernoob2542 2 ปีที่แล้ว

    Hi for building soldering iron + hot air gun do i need the MAX6675 or can i build it without it ?

  • @duckandflea
    @duckandflea 2 ปีที่แล้ว

    My understanding is that the PWM should vary the voltage going to the ceramic heater? Is that right? Or does it just switch it on and off quickly using the PWM duty cycle to vary it? I'm finding my heater is always getting full voltage and doesn't shut off. Your circuit diagram is different to what you show in the vid as there is an extra component there - is this what I am missing? Any idea why my heater isn't shutting off, even when the PID value says it should be. I'm replicating this on a raspberry pi but other than that the heating circuit is the same as your diagram as far as I can tell. I'm assuming the red lines you have marked 12V are the positive 12V supply and the rest go to ground. I'm driving the BJT with a PWM signal and using the PID_value to change the duty cycle of the PWM.

  • @abdelaleem4026
    @abdelaleem4026 3 ปีที่แล้ว

    Excellent video, one thing I haven't grasped clearly is the conversion between units in the code: if I read a temperature value in say celcius from the sensor feedback, and output a current value (0-2.5 A) to the hardware that drives the process; how do I convert between the two units?

  • @HackingInfo
    @HackingInfo ปีที่แล้ว

    if I use that encoader module then those 10k resistor won't required which showed in schematic right?

  • @brandon3002
    @brandon3002 3 ปีที่แล้ว

    What did you use for the 12V power supply for the heaters?

  • @ryancoulson2081
    @ryancoulson2081 5 ปีที่แล้ว +1

    @Electronoobs can you explain why you decided to use a BJT to activate the MOSFET? I'm a novice when it comes to electronics, so I'm not saying you're wrong, I'm just curious what purpose it serves.

  • @rez8839
    @rez8839 ปีที่แล้ว

    can you other video that controlls the blower that gives wind to the fire on the burner with this application?

  • @wi_zeus6798
    @wi_zeus6798 6 ปีที่แล้ว +2

    Wohooo, I predicted it! ;)

  • @xavieralpha2174
    @xavieralpha2174 11 หลายเดือนก่อน

    is it possible to use two inputs for setting PID for example temperature and humidity as inputs?

  • @bitsurfer0101
    @bitsurfer0101 2 ปีที่แล้ว

    Could you explain how you adjust each parameter? Do you simply adjust the P constant until the desired ramp up speed to temperature is reached for example? Once you have that determined, the D value then becomes the error constant and need to find the happy medium for that (i.e it lands on the right value and doesn't take too long to reach final value)?

  • @igrewold
    @igrewold 3 ปีที่แล้ว

    Thanks man.
    So PID control(er) stablized something, in this case it's temp(heat...)
    Interestin' probably now I know the concept behind STAC

  • @niklaskonig218
    @niklaskonig218 4 ปีที่แล้ว +1

    Very nice Video! I've got one question. Is it possible to use a Mosfet Modul (D4184) instead of the Mosfet in your Video?

  • @william84293
    @william84293 5 ปีที่แล้ว

    Estoy llevando un curso de control clásico y me gustaría saber como hiciste el análisis en lazo cerrado del sistema para que pudieras generar el controlador digital, saludos.

  • @celtichongy
    @celtichongy 5 ปีที่แล้ว

    Well done, thank you.

  • @johnsiddle9782
    @johnsiddle9782 4 ปีที่แล้ว

    Hi Mate, I was wondering if it would be possible to modify the code and schematic to include an output when the heater gets up to the required temp. Sadly I am not clever enough to be able to modify the the code. I plan on using this to control the heater temperature in a scrap 3D printer filament recycler..

  • @HSRMF
    @HSRMF 5 ปีที่แล้ว

    dear.... you are a treasure....keep it up..

  • @dr.ayadianis_embeddedsyste3883
    @dr.ayadianis_embeddedsyste3883 5 ปีที่แล้ว

    think very much , very useful video for prctice project

  • @stevestickland1706
    @stevestickland1706 3 ปีที่แล้ว +1

    Hi Electronoobs, Thanks for this excellent tutorial/demo. I have a question though - At 7:46 in your video there are several parts of the wiring that are not in your final schematic. It looks like you've added a diode on the "source" side of the Mosfet (is this connecting source to gate??, but I also see you have a negative (black) jumper looped behind the mosfet - what is that connecting to? I can't see what pin you've connected this to because the mosfet is in the way.

    • @RossOCarroll3301
      @RossOCarroll3301 ปีที่แล้ว

      I would also love to know this. Have you figured it out?? Would appreciate some info if you had! :D

  • @lensonchian7134
    @lensonchian7134 4 ปีที่แล้ว

    WOW!! Really nice !! Hmmm, what other heating element i can used? my project is to heat water and maintain its temperature.

  • @djajaproject6837
    @djajaproject6837 3 ปีที่แล้ว

    Its very helpfull...
    do you have any idea if the heater used is operating with AC current and controlled by arduino ?

  • @alf3071
    @alf3071 ปีที่แล้ว

    Is it okay to use a motor driver like l298n for the heating element or the mosfet is better?, I tried with l298n but it seems to get pretty hot so I stopped it because it may burn out