рд╕реЗрдореА-рдкреИрд╕рд┐рд╡ рдХрдВрдкреНрдпреВрдЯрд░ рдкреАрдПрд╕рдпреВ рдХреВрд▓рд┐рдВрдЧ

рдирдорд╕реНрддреЗ! рдпрд╣ рдЙрдкрдХрд░рдг рди рдХреЗрд╡рд▓ рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ PSU рдореЗрдВ рд▓рд╛рдЧреВ рд╣реИ, рдмрд▓реНрдХрд┐ рд╣рдо рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрддреНрдХрд╛рд▓ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ :)



рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рд▓рдЧрд╛рддрд╛рд░ рдХрдо рд╣реЛ рд░рд╣реА рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА рдКрд░реНрдЬрд╛ рдХреА рдЦрдкрдд рднреА рдХрдо рд╣реЛ рд░рд╣реА рд╣реИред рдирд╡реАрдирддрдо рдкреАрдврд╝рд┐рдпреЛрдВ рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рд░реЛрдЬрдорд░реНрд░рд╛ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХ рд╡реАрдбрд┐рдпреЛ рд╕рд┐рд╕реНрдЯрдо рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╡реАрдбрд┐рдпреЛ рдЧреЗрдо рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдмрд╣реБрдд рдорд╛рдВрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдорд╛рдореВрд▓реА рдмрдЬрдЯ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рд╢рд╛рдВрдд рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рднрд╛рд░реА рднрд╛рд░ рдХреЗ рддрд╣рдд рдЖрд╡рд╛рдЬрд╝реЗрдВ рджреЗрдЧрд╛, рдЬреЛ рдЕрдХреНрд╕рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдмрд╛рдж рдЕрд░реНрдз-рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХреВрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрдВрдкреНрдпреВрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдореЗрд░реА рджреГрд╖реНрдЯрд┐ рдЖрддреА рд╣реИред

рдЕрдкрдиреЗ рд▓реЛрдб рдХреЗ рдЪрд░рдо рдкрд░ рдФрд╕рдд рд╕реАрдкреАрдпреВ 65 рд╡рд╛рдЯ рдЧрд░реНрдореА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ BIOS рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗрдЯ рдХрд░рдХреЗ 120-150 рд╡рд╛рдЯ рдХреА рдПрдХ рдмрдбрд╝реА (рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ) рд╢рдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░рдЦрд╛рдиреЗ рдХреВрд▓рд░ рд╕реЗ рдардВрдбрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд╕реНрдкрд┐рди рдХрд░рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдП рдЬрдм 30-40% рд╕реАрдкреАрдпреВ рд▓реЛрдб рд╣реЛ рдЬрд╛рдП рдпрд╛ 40 рдбрд┐рдЧреНрд░реА рд╕реЗрд▓реНрд╕рд┐рдпрд╕ рд╕реЗ рдКрдкрд░ рдХреЗ рддрд╛рдкрдорд╛рди рдкрд░ред

рд╢реЛрд░ рдХрд╛ рдПрдХ рдЕрдиреНрдп рд╕реНрд░реЛрдд рдПрдЪрдбреАрдбреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд░рд▓ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрд╕рдПрд╕рдбреА рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ред

рдПрдХ рдмрд┐рдЬрд▓реА рдЖрдкреВрд░реНрддрд┐ рдкреНрд░рд╢рдВрд╕рдХ рдереА рдЬреЛ рд▓рдЧрд╛рддрд╛рд░ рдШреВрдо рд░рд╣реА рд╣реИред рдЖрдк рд╢реБрд░реВ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдпрд╛ рдЕрд░реНрдз-рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЦрд░реАрдж рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╕рд╡рд╛рд▓ рдХреА рдХреАрдордд рд╣реИ: ($ 150 рд╕реЗ) рд╢рд╛рдпрдж рдпрд╣ рдЗрди рдлрдВрдбреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ?

рдПрдХ рд╕рд╛рдзрд╛рд░рдг, 500 рдбрдмреНрд▓реНрдпреВ рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ ($ 50) рдореЗрдВ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдмрд┐рдЬрд▓реА рдЖрд░рдХреНрд╖рд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкреНрд░рд╢рдВрд╕рдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рднрд╛рд░реА рднрд╛рд░ рдХреЗ рддрд╣рдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди, рд░реЗрдбрд┐рдПрдЯрд░ рдЕрдВрджрд░ 60 рдбрд┐рдЧреНрд░реА рд╕реЗрд▓реНрд╕рд┐рдпрд╕ рд╕реЗ рдКрдкрд░ рдЧрд░реНрдо рд╣реЛрдиреЗ рд▓рдЧреЗ, рдЗрд╕рд▓рд┐рдП рдкрдВрдЦреЗ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдЧрддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рд╡рд┐рднрд┐рдиреНрди рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдбрд┐рдЬрд╝рд╛рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рд╢рд╛рдпрдж рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рд╕реНрдерд┐рд░ рдПрдпрд░рдлрд╝реНрд▓реЛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрдкрдиреЗ рдкреАрдПрд╕рдпреВ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЖрдк рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд╛рдлреА "рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╣рд╛рде" рд╣реИрдВ рдФрд░ рдпрд╣ рдХрд┐ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрди рдЖрдкрдХреЗ рдкреАрдПрд╕рдпреВ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдкрд░ рдкреНрд░рддрд┐рдХреВрд▓ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдбрд╛рд▓реЗрдВрдЧреЗред рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдкреАрдПрд╕рдпреВ рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдпреВрдирд┐рдЯ рдХреА рд╣рд╡рд╛ рдХреЛ рдкрдВрдк рдХрд░рддрд╛ рд╣реИред рдХреЛрдИ рднреА рд╕рдВрд╢реЛрдзрди рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛ рд╕рдХрддрд╛ рд╣реИ!




ATMEGA168PA рдкрд░ рдЖрдзрд╛рд░рд┐рдд Arduino рдиреИрдиреЛ рдХреЛ рдЖрдзрд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреБрдХрдбрд╝реЛрдВ рд╕реЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд╕рдВрдХрд▓рди рдХрд┐рдпрд╛ред



рдЪреВрдВрдХрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рдЗрд╕рд▓рд┐рдП рддрд╛рдкрдорд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдЪрдордХрддреА рдФрд░ рд░рдВрдЧ рдХреЗ рд╕рд╛рде рд╕реНрдорд╛рд░реНрдЯ рдПрд▓рдИрдбреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рддреАрди-рд░рдВрдЧ рдХрд╛ рдПрд▓рдИрдбреА рд╕рдВрдХреЗрддрдХ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



рддрд╛рдкрдорд╛рди DS18B20 рд╕реЗрдВрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдкрдорд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдкрдВрдЦреЗ рдХреА рдЧрддрд┐ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ рдпрд╛ рдШрдЯ рдЬрд╛рддреА рд╣реИред 67 ┬░ C рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░, рдзреНрд╡рдирд┐ рдбрд┐рдЯреЗрдХреНрдЯрд░ рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ - рдЕрдкрдиреЗ рдкреНрд░рд╢рдВрд╕рдХ рдХреЗ рд╡рд░реНрддрдорд╛рди> рд╡рд░реНрддрдорд╛рди рдХреЗ рд╕рд╛рде рдХреЛрдИ рдПрдирдкреАрдПрдиред рдореИрдВрдиреЗ рддреАрди-рддрд╛рд░ рдкрдВрдЦреЗ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░реЛрдХ рдирд╣реАрдВ рд╕рдХрд╛ред

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреАрдбрдмреНрд▓реВрдПрдо рдЖрд╡реГрддреНрддрд┐ (448.28 рд╣рд░реНрдЯреНрдЬ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХрдо рдЧрддрд┐ рдкрд░ рдХреВрд▓рд░ рдиреЗ рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд░рд┐рдВрдЧрд┐рдВрдЧ рдмрдирд╛рдИ, рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдореВрдХ рд╢реАрддрд▓рди рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреАред рдЗрд╕рд▓рд┐рдП, PWM рдХрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдлреНрд░реАрдХреНрд╡реЗрдВрд╕реА 25 kHz рддрдХ рдмрдврд╝рд╛ рджреА рдЬрд╛рддреА рд╣реИред рд╕рдмрд╕реЗ рдХрдо рдХреНрд░рд╛рдВрддрд┐рдпреЛрдВ рдкрд░, рдкреНрд░рд╢рдВрд╕рдХ рддреБрд░рдВрдд рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реЗ рджреЛ рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рдХрддрдо рдХреНрд░рд╛рдВрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрд╡реЗрдЧ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд░рд╛рдВрддрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВред

рдпрд╣рд╛рдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╡реАрдбрд┐рдпреЛ рд╣реИред



рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рд╕реНрдХреЗрдЪ, рдореИрдВ рдЖрдкрдХреЛ рдЬреНрдпрд╛рджрд╛ рдХрд┐рдХ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВред рдпрд╣ рдЕрд░реНрдбреБрдЗрдирд╛ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд╕реНрдХреЗрдЪ рд╣реИ :)

рдХреЛрдб рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
// 2 - DS18x20 data // 3 - green LED (a 330 Ohm resistor is necessary) // 5 - orange LED (a 330 Ohm resistor is necessary) // 6 - red LED (a 330 Ohm resistor is necessary) // 9 - PWM Fan // 8 - Buzzer #include <OneWire.h> byte temp; // temperature of sensor byte greenLED = 3; byte orangeLED = 5; byte redLED = 6; byte FanSpeed = 0; int piezoPin = 8; //     byte modes[] = { 0B00000001, //  0B00000101, //  0B00010101, //  0.5  0B01010101, //     0B10101010, //      0B00010101, //      0B01010101 //   (4   ) }; uint32_t ms, ms1 = 0, ms2 = 0, ms3 = 0, ms4 = 0, ms5 = 0; uint8_t blink_loop = 0; uint8_t blink_mode = 0; uint8_t modes_count = 0; bool FirstRun = 0; OneWire ds(2); // on pin 10 (a 4.7K resistor is necessary) void analogWrite25k(int pin, int value) { switch (pin) { case 9: OCR1A = value; break; case 10: OCR1B = value; break; default: // no other pin will work break; } } void setup(void) { pinMode(redLED, OUTPUT); pinMode(greenLED, OUTPUT); pinMode(orangeLED, OUTPUT); pinMode(9, OUTPUT); modes_count = 1; blink_mode = modes[modes_count]; TCCR1A = 0; // undo the configuration done by... TCCR1B = 0; // ...the Arduino core library TCNT1 = 0; // reset timer TCCR1A = _BV(COM1A1) // non-inverted PWM on ch. A | _BV(COM1B1) // same on ch; B | _BV(WGM11); // mode 10: ph. correct PWM, TOP = ICR1 TCCR1B = _BV(WGM13) // ditto | _BV(CS10); // prescaler = 1 ICR1 = 200; // TOP = 320 // Serial.begin(9600); } void loop() { byte i; byte present = 0; byte type_s; byte data[12]; byte addr[8]; float celsius; if ( ( ms - ms3 ) > 1000 || ms < ms3 ){ ms3 = ms; if ( !ds.search(addr)) { // Serial.println("No more addresses."); // Serial.println(); ds.reset_search(); if ( ( ms - ms4 ) > 250 || ms < ms4 ){ ms4 = ms; //delay(250); return; } } // Serial.print("ROM ="); for( i = 0; i < 8; i++) { // Serial.write(' '); // Serial.print(addr[i], HEX); } if (OneWire::crc8(addr, 7) != addr[7]) { // Serial.println("CRC is not valid!"); return; } // Serial.println(); // the first ROM byte indicates which chip switch (addr[0]) { case 0x10: Serial.println(" Chip = DS18S20"); // or old DS1820 type_s = 1; break; case 0x28: Serial.println(" Chip = DS18B20"); type_s = 0; break; case 0x22: Serial.println(" Chip = DS1822"); type_s = 0; break; default: Serial.println("Device is not a DS18x20 family device."); return; } ds.reset(); ds.select(addr); ds.write(0x44, 1); // start conversion, with parasite power on at the end } //delay(1000); // maybe 750ms is enough, maybe not // we might do a ds.depower() here, but the reset will take care of it. if ( ( ms - ms2 ) > 900 || ms < ms2 ){ ms2 = ms; present = ds.reset(); ds.select(addr); ds.write(0xBE); // Read Scratchpad for ( i = 0; i < 9; i++) { // we need 9 bytes data[i] = ds.read(); } // Convert the data to actual temperature // because the result is a 16 bit signed integer, it should // be stored to an "int16_t" type, which is always 16 bits // even when compiled on a 32 bit processor. int16_t raw = (data[1] << 8) | data[0]; if (type_s) { raw = raw << 3; // 9 bit resolution default if (data[7] == 0x10) { // "count remain" gives full 12 bit resolution raw = (raw & 0xFFF0) + 12 - data[6]; } } else { byte cfg = (data[4] & 0x60); // at lower res, the low bits are undefined, so let's zero them if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms //// default is 12 bit resolution, 750 ms conversion time } celsius = (float)raw / 16.0; temp = celsius; // Serial.println("TEMPERATURE IS:"); // Serial.println(temp); } ms = millis(); //    125  if( ( ms - ms1 ) > 125|| ms < ms1 ){ ms1 = ms; //       if ( temp <= 50 ) { digitalWrite(orangeLED, LOW); digitalWrite(redLED, LOW); if( blink_mode & 1<<(blink_loop&0x07) ) digitalWrite(greenLED, HIGH); else digitalWrite(greenLED, LOW); blink_loop++; if ( temp <= 40 ) { blink_mode = modes[0]; analogWrite25k ( 9, 0); FirstRun = 0; } if ( temp >= 41 && temp <= 45 ) { blink_mode = modes[1]; // Make a push impulse for starting fan (1 sec) if ( FirstRun == 0 ) { ms5 = ms; FirstRun = 1; } if (FirstRun == 1 && (2000 > (ms - ms5))) { analogWrite25k ( 9, 33); // Fan start impulse } if (FirstRun == 1 && (2000 < (ms - ms5))) { analogWrite25k ( 9, 28); // first speed } } if ( temp >= 46 && temp <= 50 && FirstRun == 1) { blink_mode = modes[2]; analogWrite25k ( 9, 29); } } if ( temp >= 51 && temp <= 61 ) { digitalWrite(greenLED, LOW); digitalWrite(redLED, LOW); if( blink_mode & 1<<(blink_loop&0x07) ) digitalWrite(orangeLED, HIGH); else digitalWrite(orangeLED, LOW); blink_loop++; if ( temp >= 51 && temp <= 54 ) { blink_mode = modes[0]; analogWrite25k ( 9, 30); } else if ( temp >= 55 && temp <= 58 ) { blink_mode = modes[1]; analogWrite25k ( 9, 31); } else if ( temp >= 59 && temp <= 61) { blink_mode = modes[2]; analogWrite25k ( 9, 32); } } if ( temp >= 62 && temp <= 120 ) { digitalWrite(greenLED, LOW); digitalWrite(orangeLED, LOW); if( blink_mode & 1<<(blink_loop&0x07) ) digitalWrite(redLED, HIGH); else digitalWrite(redLED, LOW); blink_loop++; if ( temp >= 62 && temp <= 66 ) { blink_mode = modes[0]; analogWrite25k ( 9, 33); } if ( temp >= 67 && temp <= 70 ) { blink_mode = modes[1]; analogWrite25k ( 9, 34); } if ( temp >= 71 && temp <= 120) { blink_mode = modes[2]; analogWrite25k ( 9, 50); tone(piezoPin, 2500, 30); } } } } 

Source: https://habr.com/ru/post/hi421267/


All Articles