PWM: ເຮັດຕາມກະແສຄ້າຍຄືກັນກັບກະດານ Arduino ຂອງທ່ານ

ສັນຍານ PWM

ດ້ວຍເຂັມດິຈິຕອນແລະອະນາລັອກ, ເຊິ່ງທ່ານສາມາດໃຊ້ໃນກະດານ Arduino ຂອງທ່ານ, ທ່ານສາມາດຮັບຫລືສົ່ງສັນຍານໄຟຟ້າເພື່ອຄວບຄຸມຫຼືເອົາຂໍ້ມູນຈາກໂຄງການອີເລັກໂທຣນິກຂອງທ່ານ. ນອກຈາກນັ້ນ, ຍັງມີສັນຍານທີ່ ໜ້າ ສົນໃຈອື່ນໆອີກໃນແຜ່ນປະເພດນີ້, ແລະນັ້ນແມ່ນເຄື່ອງ ໝາຍ PWM, ທີ່ສາມາດເຮັດຕາມຕົວສັນຍານປຽບທຽບໂດຍບໍ່ມີຕົວຕົນປຽບທຽບ. ນັ້ນແມ່ນ, ພວກມັນແມ່ນເຂັມດິຈິຕອນທີ່ສາມາດປະຕິບັດໃນແບບທີ່ຄ້າຍຄືກັນ (ບໍ່ຄືກັນ) ເປັນສັນຍານອະນາລັອກ.

ສັນຍານປະເພດເຫຼົ່ານີ້ແມ່ນໃຊ້ໄດ້ຫຼາຍໃນເວລາທີ່ທ່ານບໍ່ພຽງແຕ່ຕ້ອງການໃຊ້ສັນຍານດິຈິຕອນ HIGH ແລະ LOW, ນັ້ນແມ່ນ, 1 ຫຼື 0, ON ແລະ OFF, ແຕ່ທ່ານຕ້ອງການທີ່ຈະໄປຕໍ່ໄປແລະອະທິບາຍຕື່ມອີກ ສັນຍານທີ່ສັບສົນຫລາຍສົມຄວນ. ຍົກຕົວຢ່າງ, ມັນສາມາດດັດແປງຄວາມໄວຂອງ a ມໍເຕີ DC, ຫຼືຄວາມຮຸນແຮງຂອງແສງສະຫວ່າງ, ສຳ ລັບສານຊືມເຊື້ອ, ແລະອື່ນໆ.

ລະບົບດິຈິຕອນປຽບທຽບ

ສັນຍານດິຈິຕອນ Analog vs

ວົງຈອນເອເລັກໂຕຣນິກສາມາດແບ່ງອອກເປັນສອງຄອບຄົວໃຫຍ່ຫລື ໝວດ ໝູ່: ດິຈິຕອນແລະການປຽບທຽບ. ເມື່ອເວົ້າເຖິງເອເລັກໂຕຣນິກດິຈິຕອນ, ພວກເຮົາ ກຳ ລັງ ນຳ ໃຊ້ປະລິມານທີ່ມີຄ່າທີ່ແຕກຕ່າງ, ນັ້ນແມ່ນລະບົບຖານສອງທີ່ເປັນຕົວແທນໂດຍສັນຍານໄຟຟ້າຂອງແຮງດັນໄຟຟ້າຕ່ ຳ ຫລືສູງເພື່ອຕີຄວາມ ໝາຍ ສະຖານະຂອງບິດທີ່ຖືກຈັດການ. ໃນທາງກົງກັນຂ້າມ, ເມື່ອເວົ້າເຖິງວົງຈອນອະນາລັອກ, ປະລິມານທີ່ມີຄ່າຕໍ່ເນື່ອງແມ່ນຖືກ ນຳ ໃຊ້.

ພາຍໃນລະບົບດີຈີຕອລສາມາດພົບໄດ້ໃນທາງກັບກັນ ປະເພດການປະສົມປະສານແລະປະເພດ ລຳ ດັບ. ນັ້ນແມ່ນ, ອະດີດແມ່ນຜູ້ທີ່ຜົນໄດ້ຮັບຂອງລະບົບພຽງແຕ່ຂື້ນກັບສະພາບຂອງການປ້ອນຂໍ້ມູນ. ໃນທາງກົງກັນຂ້າມ, ໃນບັນດາ ລຳ ດັບ, ອົງປະກອບຄວາມ ຈຳ ຖືກລວມເຂົ້າ, ແລະຜົນຜະລິດຈະຂຶ້ນກັບສະພາບປັດຈຸບັນຂອງວັດສະດຸປ້ອນແລະສະຖານະກ່ອນ ໜ້າ ທີ່ເກັບໄວ້.

ໃນກໍລະນີຂອງການປຽບທຽບບໍ່ມີສອງກຸ່ມໃຫຍ່ຫລືຕົວປ່ຽນແປງເຫຼົ່ານີ້, ເພາະວ່າໃນທີ່ນີ້ພວກມັນແມ່ນສັນຍານຕໍ່ເນື່ອງເຊິ່ງຈະຂື້ນກັບສະ ເໝີ ສັນຍານ ລະບົບປະຈຸບັນ. ຍົກຕົວຢ່າງ, ໃນເຄື່ອງ ລຳ ໂພງ, ເຄື່ອງສັນຍານທີ່ສະ ໜອງ ໃຫ້ມັນຈະຂື້ນກັບສຽງທີ່ທ່ານຕ້ອງການສືບພັນ. ດຽວກັນກັບໄມໂຄຣໂຟນ, ເຊິ່ງຈະສ້າງສັນຍານອະນາລັອກຂື້ນຢູ່ກັບສຽງທີ່ມັນ ກຳ ລັງຮັບ. ແນ່ນອນທ່ານຍັງໄດ້ເຫັນມັນດ້ວຍເຊັນເຊີອື່ນໆອີກຫຼາຍຢ່າງທີ່ພວກເຮົາໄດ້ອະທິບາຍໄວ້ໃນ blog ນີ້ແລະທີ່ປະຕິບັດກັບສັນຍານແບບອະນາລັອກ (ແລະດັ່ງນັ້ນ, ສູດຕ້ອງໄດ້ຖືກສ້າງຂື້ນເພື່ອວ່າຕໍ່ມາຄຸນຄ່າຈະສາມາດຄິດໄລ່ໄດ້ຫຼືມີເງື່ອນໄຂໃນຮູບ Arduino IDE sketches ) ...

ຄຸນລັກສະນະເຫຼົ່ານີ້ຂອງ ໜຶ່ງ ແລະອື່ນໆເຮັດໃຫ້ບາງຄົນມີຂອງມັນ ຂໍ້ດີແລະຂໍ້ເສຍ, ຕາມປົກກະຕິໃນເກືອບທຸກຢ່າງ. ຕົວຢ່າງ, ດິຈິຕອນມີແນວໂນ້ມທີ່ຈະມີລາຄາຖືກກວ່າ, ໄວກວ່າ, ພັດທະນາງ່າຍຂຶ້ນ, ຂໍ້ມູນສາມາດເກັບຮັກສາໄດ້ງ່າຍ, ພວກເຂົາມີຄວາມຖືກຕ້ອງຫຼາຍຂື້ນ, ພວກມັນສາມາດມີໂຄງການ, ພວກມັນບໍ່ມີຄວາມສ່ຽງຕໍ່ຜົນກະທົບຂອງສິ່ງລົບກວນ. ແຕ່ມັນກໍ່ແມ່ນຄວາມຈິງທີ່ວ່າມີການປຽບທຽບທີ່ທ່ານສາມາດປະຕິບັດງານດ້ວຍສັນຍານທີ່ສັບສົນຫຼາຍ.

por ejemplo, ເຊັນເຊີ effect effect ແບບປະເພດດິຈິຕອນສາມາດກວດພົບວ່າມີຫຼືບໍ່ມີສະ ໜາມ ແມ່ເຫຼັກທີ່ຢູ່ໃກ້ຄຽງເທົ່ານັ້ນ. ແທນທີ່ຈະ, ຕົວເຊັນເຊີ Hall effect ແບບອະນາລັອກສາມາດເຮັດໄດ້ແລະຍັງສາມາດ ກຳ ນົດຄວາມ ໜາ ແໜ້ນ ຂອງສະ ໜາມ ແມ່ເຫຼັກທີ່ກ່າວເຖິງຍ້ອນສັນຍານອະນາລັອກທີ່ມັນສ້າງຢູ່ທີ່ຜົນຜະລິດ ການຮູ້ຈັກຕີຄວາມ ໝາຍ ຂອງສັນຍານແຮງດັນໄຟຟ້າທີ່ໃຫຍ່ກວ່າຫຼື ໜ້ອຍ ກວ່າ, ທ່ານສາມາດຮູ້ຂະ ໜາດ ນັ້ນໄດ້ຢ່າງງ່າຍດາຍ. ຕົວຢ່າງອື່ນໆທີ່ທ່ານມີໃນຄວາມຫຼາກຫຼາຍຂອງ ທຳ ມະຊາດທີ່ທ່ານສາມາດວັດປະລິມານດ້ວຍລະບົບປຽບທຽບເຊັ່ນ: ອຸນຫະພູມ, ເວລາ, ຄວາມກົດດັນ, ໄລຍະທາງ, ສຽງ, ແລະອື່ນໆ.

ສັນຍານດິຈິຕອນ Analog vs

ທີ່ຖືກເວົ້າວ່າ, ກ ສັນຍານອະນາລັອກ ມັນຈະແມ່ນກະແສໄຟຟ້າຫລືກະແສໄຟຟ້າທີ່ມີການປ່ຽນແປງຕາມເວລາແລະຕໍ່ເນື່ອງ. ຖ້າຖືກຈັບ, ສັນຍານອະນາລັອກຈະເປັນຄື້ນຊີນດຽວ.

ເປັນສໍາລັບການ ສັນຍານດິຈິຕອນ, ແມ່ນແຮງດັນໄຟຟ້າທີ່ມີຄວາມແຕກຕ່າງກັນໄປຕາມແນວທາງທີ່ກ່ຽວຂ້ອງກັບເວລາ. ນັ້ນແມ່ນ, ຖ້າມັນຖືກສະແດງຢູ່ໃນເສັ້ນສະແດງ, ມັນຈະເປັນສັນຍານຂັ້ນຕອນທີ່ບໍ່ແຕກຕ່າງກັນຢ່າງຕໍ່ເນື່ອງ, ແຕ່ການປ່ຽນແປງໃນຂັ້ນຕອນຫຼືການເພີ່ມຂື້ນທີ່ແຕກຕ່າງກັນ.

ທ່ານຄວນຮູ້ວ່າມີວົງຈອນທີ່ຈະໄປຈາກສັນຍານອະນາລັອກໄປຫາດິຈິຕອນ ໜຶ່ງ ຫຼືໃນທາງກັບກັນ. ເຫຼົ່ານີ້ ເຄື່ອງປ່ຽນ ພວກເຂົາມີຊື່ວ່າ DAC (Digital-to-Analog Converter) ແລະ ADC (Analog-to-Digital Converter). ແລະມັນເປັນສິ່ງທີ່ພົບເຫັນຫຼາຍໃນຫລາຍອຸປະກອນທີ່ພວກເຮົາໃຊ້ໃນປະຈຸບັນເຊັ່ນ: ໂທລະພາບ, ຄອມພິວເຕີ້, ແລະອື່ນໆ. ກັບພວກເຂົາເຈົ້າສາມາດປ່ຽນສັນຍານດິຈິຕອນທີ່ໃຊ້ໂດຍອຸປະກອນເຫລົ່ານີ້ໃນລະດັບເອເລັກໂຕຣນິກເພື່ອເຮັດວຽກກັບອຸປະກອນເສີມອື່ນໆຫລືຊິ້ນສ່ວນຕ່າງໆທີ່ເຮັດວຽກຄ້າຍຄືກັນ.

por ejemplo, ລຳ ໂພງຫລືໄມໂຄຣໂຟນທີ່ມີສັນຍານອະນາລັອກທີ່ເຮັດວຽກດ້ວຍບັດສຽງ, ຫລືບັດກາຟິກດິຈິຕອນທີ່ມີຊິບ RAMDAC ທີ່ມີຊື່ສຽງ ສຳ ລັບພອດ port Monitor ອະນາລັອກ ... ໃນ Arduino ເຄື່ອງປ່ຽນປະເພດນີ້ຍັງຖືກໃຊ້ ສຳ ລັບຫລາຍໆໂຄງການ, ດັ່ງທີ່ພວກເຮົາຈະເຫັນ ...

PWM ແມ່ນຫຍັງ?

ວົງຈອນພາສີກາຟິກ

ເຖິງແມ່ນວ່າ PWM (Module Pulse-Width Modulation), ຫຼືການ ກຳ ນົດຄວາມກວ້າງຂອງ ກຳ ມະຈອນ, ມີພື້ນຖານດີຈີຕອນ, ຮູບຮ່າງຂອງສັນຍານຂອງມັນຄ້າຍກັບສັນຍານອະນາລັອກຄ້າຍໆ "ຮຽບຮ້ອຍ". ມັນອະນຸຍາດໃຫ້ໂດຍໃຊ້ ກຳ ມະຈອນດິຈິຕອນໂດຍປ່ຽນແປງສັນຍານເພື່ອເຮັດຕາມລະບົບປຽບທຽບດັ່ງທີ່ຂ້ອຍໄດ້ໃຫ້ ຄຳ ເຫັນກ່ອນ ໜ້າ ນີ້. ໃນຄວາມເປັນຈິງ, ຖ້າທ່ານເບິ່ງຊື່, ມັນໄດ້ໃຫ້ຂໍ້ຄຶດແກ່ທ່ານແລ້ວກ່ຽວກັບສິ່ງທີ່ມັນເຮັດ, ຜ່ານຄວາມກວ້າງຂອງ ກຳ ມະຈອນດິຈິຕອນ.

ນີ້ແມ່ນຜົນປະໂຫຍດ ສຳ ລັບ Arduino ນັບຕັ້ງແຕ່ມີອັດຕະໂນມັດຫຼາຍຫຼືສ່ວນປະກອບເອເລັກໂຕຣນິກທີ່ທ່ານສາມາດເພີ່ມເຂົ້າໃນໂຄງການຂອງທ່ານແລະນັ້ນ ບໍ່ມີຄວາມສາມາດໃນການໃຫ້ສັນຍານອະນາລັອກທີ່ແທ້ຈິງ, ແຕ່ພວກເຂົາໃຊ້ PWM ນີ້ເພື່ອປະຕິບັດງານ. ພວກເຂົາຍັງບໍ່ສາມາດໃຊ້ສັນຍານອະນາລັອກທີ່ຖືກຕັດອອກ, ນັ້ນກໍ່ຄືວ່າໄປຫາແຮງດັນໄຟຟ້າເພື່ອຄ້າຍຄືກັບດິຈິຕອນ. ສິ່ງທີ່ພວກເຂົາສາມາດເຮັດໄດ້ແມ່ນໃຊ້ຜົນຜະລິດດີຈີຕອນ -Vcc ຫຼື Vcc ຂອງປະເພດດິຈິຕອນເພື່ອສ້າງສັນຍານອັນແປກໆນີ້ ...

ສະນັ້ນ, PWM ແມ່ນປະເພດ "ກົນລະຍຸດ" ທີ່ Arduino ແລະລະບົບອື່ນໆສາມາດພົວພັນກັບສັນຍານປະເພດນີ້ທີ່ ພວກມັນບໍ່ກາຍເປັນດິຈິຕອນຄ້າຍຄືກັນຫລືດິຈິຕອນ ທຳ ມະດາ. ເພື່ອເຮັດໃຫ້ມັນເປັນໄປໄດ້, ພວກເຂົາຮັກສາຜົນຜະລິດດິຈິຕອນໃຫ້ມີການເຄື່ອນໄຫວໃນໄລຍະເວລາທີ່ແນ່ນອນຫຼືປິດ, ອີງຕາມຄວາມສົນໃຈຕະຫຼອດເວລາ. ນີ້ແມ່ນໄກຈາກສິ່ງທີ່ຈະເປັນໂມງດິຈິຕອນຫລືສັນຍານລະຫັດໄບນາລີ, ເຊິ່ງ ກຳ ມະຈອນຂອງມັນມີຄວາມກວ້າງເທົ່າກັນ.

ໃນບັນດາໂຄງການຂອງທ່ານກັບ Arduino ທ່ານສາມາດກວດສອບສັນຍານ PWM ແບບນີ້ເຊິ່ງຄວາມຖີ່ຂອງ ກຳ ມະຈອນຄົງທີ່ຖືກຮັກສາໄວ້ເປັນໄລຍະ, ແຕ່ວ່າ ຄວາມກວ້າງຂອງ ກຳ ມະຈອນເຫລົ່ານີ້ແມ່ນແຕກຕ່າງກັນ. ໃນຄວາມເປັນຈິງ, ມັນຖືກເອີ້ນວ່າ Duty Cycle ໃນເວລາທີ່ສັນຍານໄດ້ຖືກຮັກສາໄວ້ໃນລະດັບສູງທີ່ກ່ຽວຂ້ອງກັບຈໍານວນທັງຫມົດຂອງວົງຈອນ. ເພາະສະນັ້ນ, Duty Cycle ແມ່ນໃຫ້ເປັນ%.

ຈົ່ງຈື່ໄວ້ວ່າໃນ PWM ທ່ານບໍ່ໄດ້ເຮັດວຽກຄືກັບສັນຍານອະນາລັອກ, ລະຫວ່າງຄ່າແຮງດັນໄຟຟ້າຫຼາຍໆຕົວແລະມັນກໍ່ຈະ ເໜັງ ຕີງລະຫວ່າງພວກມັນ. ໃນກໍລະນີຂອງ PWM ມັນແມ່ນສັນຍານສີ່ຫລ່ຽມໃນແບບດິຈິຕອນແລະ ເຊິ່ງມູນຄ່າສູງສຸດແມ່ນ Vcc. ຕົວຢ່າງ: ຖ້າທ່ານເຮັດວຽກກັບການສະ ໜອງ ພະລັງງານ 3V, ທ່ານສາມາດໃຫ້ ກຳ ມະຈອນເຕັ້ນ 3V ຫຼື 0V, ແຕ່ບໍ່ແມ່ນ 1V ຫຼືມູນຄ່າປານກາງອື່ນໆທີ່ຈະເກີດຂື້ນໃນຕົວຄ້າຍຄືກັນ. ສິ່ງທີ່ຈະແຕກຕ່າງກັນໃນກໍລະນີນັ້ນແມ່ນຄວາມກວ້າງຂອງ ກຳ ມະຈອນ, ເຊິ່ງພວກເຮົາສາມາດຮັກສາ 30% ໃນມູນຄ່າ Vcc ສູງນັ້ນ, ຫຼື 60% ເພື່ອໃຫ້ພະລັງງານເພີ່ມເຕີມ, ອື່ນໆ.

ແຕ່ຕ້ອງລະວັງ, ເພາະວ່າຖ້າອຸປະກອນໃດ ໜຶ່ງ ຮອງຮັບການ ຈຳ ກັດ Vcc ແລະເກີນ PWM, ມັນກໍ່ອາດຈະເສຍຫາຍໄດ້. ສະນັ້ນມັນ ຈຳ ເປັນທີ່ຈະຕ້ອງເຄົາລົບຄຸນຄ່າຂອງຊຸດຂໍ້ມູນທີ່ຜູ້ຜະລິດສະ ໜອງ ໃຫ້. ເຊັ່ນດຽວກັນ, ໃນບາງອຸປະກອນເຊັ່ນ: ມໍເຕີ DC, ການສົ່ງຕໍ່, ໄຟຟ້າ, ແລະອື່ນໆ, ການຖອດກະແສໄຟຟ້າຫຼັງຈາກວົງຈອນ ໜ້າ ທີ່ສາມາດ ໝາຍ ຄວາມວ່າການໂຫຼດພາຍໃນສາມາດສ້າງຄວາມເສຍຫາຍໄດ້. ນັ້ນແມ່ນເຫດຜົນທີ່ວ່າ ການປົກປ້ອງ ທັນເວລາ.

PWM ກ່ຽວກັບ Arduino

ລົດເມ Arduino I2C

ໃນປັດຈຸບັນທີ່ທ່ານຮູ້ວິທີມັນເຮັດວຽກ, ໃຫ້ພວກເຮົາເບິ່ງກໍລະນີສະເພາະຂອງ PWM ພາຍໃນໂລກ Arduino ...

PWM: ການຄົ້ນຫາ Arduino

ໃນກະດານ Arduino ທ່ານສາມາດຊອກຫາເຂັມຫຼາຍອັນທີ່ປະຕິບັດຮາດແວ PWM. ທ່ານສາມາດລະບຸພວກມັນຢູ່ໃນ PCB ຕົວຂອງມັນເອງເພາະວ່າພວກມັນມີ ສັນຍາລັກ ~ (ຫົວນ້ອຍ) ພ້ອມດ້ວຍລະຫັດ PIN. ມັນຍັງສາມາດເຮັດໄດ້ໂດຍຊອບແວໃນລະຫັດ Arduino, ແຕ່ວ່າມັນຈະເຮັດໃຫ້ຜູ້ຄວບຄຸມ microcontroller ເຮັດວຽກເກີນໄປ, ບາງສິ່ງບາງຢ່າງທີ່ໂງ່ໃນເວລາທີ່ມັນສາມາດເຮັດໄດ້ແບບພື້ນເມືອງແລະໂດຍຮາດແວ ...

  • Arduino UNO, Mini ແລະ Nano- ທ່ານມີ PWM 6 8-bit ຢູ່ pins 3, 5, 6, 9, 10, ແລະ 11 ເຊິ່ງມັນຈະມີສິ່ງນັ້ນ ~ ຢູ່ທາງ ໜ້າ ຈຳ ນວນ.
  • Arduino Mega- ຢູ່ເທິງກະດານ Arduino ທີ່ມີປະສິດທິພາບສູງສຸດນີ້ທ່ານມີ 15 ຜົນຜະລິດ PWM ຂະ ໜາດ 8 2 ບິດ. ພວກມັນຢູ່ໃນເຂັມ 13 ເຖິງ 44 ແລະ 46 ຜ່ານ XNUMX.
  • Arduino ຄົບ ກຳ ນົດ: ໃນກໍລະນີນີ້ມີ 13 ຜົນຜະລິດ PWM 8 2 ບິດ. ພວກມັນຢູ່ໃນເຂັມ 13 ເຖິງ 12, ບວກກັບອີກສອງຜົນຜະລິດທີ່ຄ້າຍຄືກັນທີ່ຖືກຕັດອອກໂດຍ DAC ດ້ວຍຄວາມລະອຽດ XNUMX ບິດ.

ໃນເວລາທີ່ທ່ານເວົ້າກ່ຽວກັບການແກ້ໄຂ 8 ບິດຫລື 12 ບິດ, ແລະອື່ນໆ, ໃນປະເພດຜົນຜະລິດ PWM ນີ້, ທ່ານ ກຳ ລັງອ້າງອີງເຖິງຫ້ອງ ສຳ ລັບການເຄື່ອນໄຫວທີ່ທ່ານມີ. ກັບ 8 ບາດມີ 256 ລະດັບ ລະຫວ່າງສິ່ງທີ່ທ່ານສາມາດແຕກຕ່າງກັນ, ແລະ 12 ບິດຂຶ້ນໄປເຖິງ 4096 ລະດັບ.

ຄວບຄຸມດ້ວຍ Timers

ສຳ ລັບການຄວບຄຸມ Hardware PWM, Arduino ຈະໃຊ້ເຄື່ອງຈັບເວລາ ສຳ ລັບມັນ. Timer ປະຈຸບັນແຕ່ລະຄົນສາມາດຮັບໃຊ້ຜົນຜະລິດ PWM 2 ຫຼື 3. ການລົງທະບຽນການປຽບທຽບ ສຳ ລັບແຕ່ລະຜົນຜະລິດໄດ້ປະກອບລະບົບນີ້ເພື່ອວ່າເມື່ອຮອດເວລາທີ່ມູນຄ່າການລົງທະບຽນ, ລັດຫລືຄຸນຄ່າຂອງຜົນໄດ້ຮັບຖືກປ່ຽນໄປເພື່ອຢຸດວົງຈອນພາສີເຫຼົ່ານັ້ນ. ເຖິງແມ່ນວ່າມີສອງຜົນໄດ້ຮັບທີ່ຄວບຄຸມໂດຍ Timer ດຽວກັນ, ທັງສອງສາມາດມີວົງຈອນ Duty ທີ່ແຕກຕ່າງກັນ, ເຖິງແມ່ນວ່າມັນຈະມີຄວາມຖີ່ດຽວກັນ.

ໃນກໍລະນີຂອງ Timers ທີ່ກ່ຽວຂ້ອງກັບແຕ່ລະ PIN PWM, ມັນຈະແຕກຕ່າງກັນ ຂຶ້ນກັບປະເພດຂອງກະດານ Arduino ທີ່ທ່ານມີ:

  • Arduino UNO, Mini ແລະ Nano:
    • Timer0 - 5 ແລະ 6
    • Timer1 - 9 ແລະ 10
    • Timer2 - 3 ແລະ 11
  • Arduino Mega:
    • Timer0 - 4 ແລະ 13
    • Timer1 - 11 ແລະ 12
    • Timer2 - 9 ແລະ 10
    • Timer3 - 2, 3 ແລະ 5
    • Timer4 - 6, 7 ແລະ 8
    • Timer5 - 44, 45 ແລະ 46

ການລົງທະບຽນທີ່ຖືກລະບຸໄວ້ຈະແບ່ງເວລາໂດຍເລກເຕັມແລະ Timer ເຮັດສ່ວນທີ່ເຫຼືອເພື່ອຄວບຄຸມແຕ່ລະຜົນຜະລິດ PWM ທີ່ກ່ຽວຂ້ອງ. ການປັບປ່ຽນມູນຄ່າການຈົດທະບຽນສາມາດປ່ຽນແປງຄວາມຖີ່ໄດ້. ທ ຄວາມຖີ່ ພວກເຂົາຍັງຈະແຕກຕ່າງກັນຂື້ນກັບ Timer ແລະແຜ່ນ:

  • Arduino UNO, Mini ແລະ Nano:
    • Timer0: ອະນຸຍາດໃຫ້ prescaling ຂອງ 1, 8, 64, 256 ແລະ 1024. ຄວາມຖີ່ແມ່ນ 62.5 Khz.
    • Timer1: ດ້ວຍການຕັ້ງຄ່າກ່ອນ, 1, 8, 64, 256 ແລະ 1024. ດ້ວຍຄວາມຖີ່ຂອງ 31.25 Khz.
    • Timer2: ເທົ່າກັບ Timer1, ມີພຽງແຕ່ມັນເພີ່ມການປ້ອງກັນ 32 ແລະ 128 ນອກ ເໜືອ ຈາກລຸ້ນທີ່ຜ່ານມາ.
  • Arduino Mega:
    • Timer0, 1, 2: ຄືກັນກັບຂ້າງເທິງ.
    • Timer3, 4, ແລະ 5: ດ້ວຍຄວາມຖີ່ຂອງ 31.25 Khz ແລະການປ້ອງກັນ 1, 8, 64, 256 ແລະ 1024.

ຄວາມບໍ່ສອດຄ່ອງແລະຄວາມຂັດແຍ້ງ

The Timer ທີ່ກ່ຽວຂ້ອງກັບຜົນໄດ້ຮັບແມ່ນບໍ່ພຽງແຕ່ ສຳ ລັບ ໜ້າ ທີ່ເທົ່ານັ້ນ, ຍັງຖືກໃຊ້ໂດຍຄົນອື່ນ. ດັ່ງນັ້ນ, ຖ້າພວກມັນຖືກໃຊ້ໂດຍ ໜ້າ ທີ່ອື່ນ, ທ່ານຕ້ອງເລືອກລະຫວ່າງ ໜຶ່ງ ຫຼືອີກອັນ ໜຶ່ງ, ທ່ານບໍ່ສາມາດໃຊ້ທັງສອງຢ່າງໃນເວລາດຽວກັນ. ຍົກຕົວຢ່າງ, ເຫຼົ່ານີ້ແມ່ນບາງສ່ວນຂອງຄວາມບໍ່ເຂົ້າກັນທີ່ທ່ານສາມາດພົບເຫັນໃນໂຄງການຂອງທ່ານ:

  • ຫໍສະ ໝຸດ Servo: ເມື່ອທ່ານໃຊ້ມໍເຕີ້ servo, ມັນເຮັດໃຫ້ມີການໃຊ້ Timers ຢ່າງເຂັ້ມງວດ, ສະນັ້ນມັນສາມາດສ້າງຄວາມຂັດແຍ້ງໄດ້. ໂດຍສະເພາະແມ່ນໃຊ້ Timer1 ສຳ ລັບ UNO, Nano ແລະ Mini, ນັ້ນແມ່ນທ່ານບໍ່ສາມາດໃຊ້ເຂັມ 9 ແລະ 10 ໃນຂະນະທີ່ທ່ານ ກຳ ລັງໃຊ້ຮູບແຕ້ມກັບຫໍສະມຸດນັ້ນ. ໃນ Mega ມັນຈະຂື້ນກັບ ຈຳ ນວນ servos ...
  • SPI: ຖ້າການສື່ສານ SPI ຖືກ ນຳ ໃຊ້ໃນກະດານ Arduino, pin 11 ກຳ ລັງຖືກໃຊ້ ສຳ ລັບ ໜ້າ ທີ່ຂອງ MOSI. ນັ້ນແມ່ນເຫດຜົນທີ່ PIN PWM ບໍ່ສາມາດໃຊ້ໄດ້.
  • tone: ໜ້າ ທີ່ນີ້ໃຊ້ Timer2 ເພື່ອເຮັດວຽກ. ສະນັ້ນຖ້າມັນຖືກໃຊ້, ທ່ານ ກຳ ລັງເຮັດເຂັມ 3 ແລະ 11 (ຫລື 9 ແລະ 10 ສຳ ລັບ Mega) ບໍ່ມີປະໂຫຍດຫຍັງເລີຍ.

ການທົດສອບດ້ວຍມືກັບ Arduino

Arduino PWM ແຕ້ມແບບດ້ວຍໄຟ LED

ຖ້າທ່ານຕ້ອງການເບິ່ງໃນວິທີທີ່ PWM ເຮັດວຽກກ່ຽວກັບ Arduino, ສິ່ງທີ່ດີທີ່ສຸດທີ່ທ່ານສາມາດເຮັດໄດ້ແມ່ນເຊື່ອມຕໍ່ຕົວຊີ້ວັດຂອງ a voltmeter ຫຼື multimeter (ໃນ ໜ້າ ທີ່ໃນການວັດແທກແຮງດັນໄຟຟ້າ) ລະຫວ່າງ PIN PWM ທີ່ທ່ານໄດ້ເລືອກໃຊ້ແລະເຂັມດິນຫລື GND ຂອງກະດານ Arduino. ດ້ວຍວິທີນີ້, ໃນ ໜ້າ ຈໍຂອງອຸປະກອນວັດແທກທ່ານຈະສາມາດເຫັນວ່າແຮງດັນໄຟຟ້າແຕກຕ່າງກັນກັບຜົນຜະລິດໃດ ໜຶ່ງ ທີ່ເປັນດິຈິຕອນຂໍຂອບໃຈກັບເຄັດລັບ PWM ນີ້.

ທ່ານສາມາດທົດແທນ voltmeter / multimeter ດ້ວຍໄຟ LED ເພື່ອເບິ່ງວ່າຄວາມຮຸນແຮງຂອງແສງມີຄວາມແຕກຕ່າງກັນແນວໃດ, ກັບເຄື່ອງຈັກ DC, ຫຼືກັບສ່ວນປະກອບອື່ນໆທີ່ທ່ານຕ້ອງການ. ຂ້ອຍໄດ້ເຮັດແບບງ່າຍໆໃນແຜນວາດກັບ Fritzing ດ້ວຍໄຟ LED ໂດຍບໍ່ຕ້ອງມີອີກຕໍ່ໄປ, ແຕ່ຮູ້ວ່າມັນຍັງສາມາດເປັນຕົວແທນຂອງ ຄຳ ແນະ ນຳ ຂອງ multimeter ...

ຖ້າທ່ານໃຊ້ໄຟ LED, ຈື່ຄວາມຕ້ານທານທີ່ cathode ແລະ GND.

para ລະຫັດແຫຼ່ງຂໍ້ມູນ ເພື່ອຄວບຄຸມ microcontroller board Arduino ເພື່ອເຮັດໃຫ້ທຸກຢ່າງເຮັດວຽກ, ທ່ານຄວນໃສ່ສິ່ງນີ້ເຂົ້າໃນ Arduino IDE (ໃນກໍລະນີນີ້ຂ້ອຍໄດ້ໃຊ້ PWM pin 6 ຂອງ Arduino UNO):

const int analogOutPin = 6;
byte outputValue = 0;  
 
void setup()
{  
   Serial.begin(9600);        
   pinMode(ledPIN , OUTPUT); 
 
   bitSet(DDRB, 5);       // LED o voltímetro
   bitSet(PCICR, PCIE0);       
   bitSet(PCMSK0, PCINT3);     
}
 
void loop() 
{
   if (Serial.available()>0)  
   {
      if(outputValue >= '0' && outputValue <= '9')
      {
         outputValue = Serial.read();   // Leemos la opción
         outputValue -= '0';      // Restamos '0' para convertir a un número
         outputValue *= 25;      // Multiplicamos x25 para pasar a una escala 0 a 250
         analogWrite(ledPIN , outputValue);
      }
   }
}  
 
ISR(PCINT0_vect)
{
   if(bitRead(PINB, 3))
   { 
      bitSet(PORTB, 5);   // LED on 
   }
   else
   { 
      bitClear(PORTB, 5); // LED off  
   } 
} 
ຂ້ອຍແນະ ນຳ ໃຫ້ເຈົ້າຫຼີ້ນກັບຄ່ານິຍົມແລະເບິ່ງ ຜົນໄດ້ຮັບກ່ຽວກັບແສງສະຫວ່າງຫຼື voltmeter ໄດ້. ໂປແກຼມສາມາດໄດ້ຮັບຄ່າຈາກ 0 ເຖິງ 9 ເພື່ອໃຫ້ທ່ານສາມາດເບິ່ງວ່າທຸກຢ່າງແຕກຕ່າງກັນແນວໃດ. ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມ, ຂ້າພະເຈົ້າແນະ ນຳ ທ່ານ ຫລັກສູດ arduino ທີ່ພວກເຮົາມີໃນການດາວໂຫຼດຟຣີ ...

ເນື້ອໃນຂອງບົດຂຽນຍຶດ ໝັ້ນ ຫລັກການຂອງພວກເຮົາ ຈັນຍາບັນຂອງບັນນາທິການ. ເພື່ອລາຍງານການກົດຜິດພາດ ທີ່ນີ້.

ຄໍາເຫັນ, ອອກຈາກທ່ານ

ອອກ ຄຳ ເຫັນຂອງທ່ານ

ທີ່ຢູ່ອີເມວຂອງທ່ານຈະບໍ່ໄດ້ຮັບການຈັດພີມມາ. ທົ່ງນາທີ່ກໍານົດໄວ້ແມ່ນຫມາຍດ້ວຍ *

*

*

  1. ຮັບຜິດຊອບຕໍ່ຂໍ້ມູນ: Miguel ÁngelGatón
  2. ຈຸດປະສົງຂອງຂໍ້ມູນ: ຄວບຄຸມ SPAM, ການຈັດການ ຄຳ ເຫັນ.
  3. ກົດ ໝາຍ: ການຍິນຍອມຂອງທ່ານ
  4. ການສື່ສານຂໍ້ມູນ: ຂໍ້ມູນຈະບໍ່ຖືກສື່ສານກັບພາກສ່ວນທີສາມຍົກເວັ້ນໂດຍພັນທະທາງກົດ ໝາຍ.
  5. ການເກັບຂໍ້ມູນ: ຖານຂໍ້ມູນທີ່ຈັດໂດຍ Occentus Networks (EU)
  6. ສິດ: ໃນທຸກເວລາທີ່ທ່ານສາມາດ ຈຳ ກັດ, ກູ້ຄືນແລະລຶບຂໍ້ມູນຂອງທ່ານ.

  1.   Jose ກ່າວວ່າ

    ສະບາຍດີວັນດີ. ກ່ອນອື່ນ ໝົດ ຂ້າພະເຈົ້າຕ້ອງຂໍຂອບໃຈທ່ານ ສຳ ລັບການອຸທິດເວລາ ສຳ ລັບ ຄຳ ອະທິບາຍນີ້ ສຳ ລັບຄົນ ໃໝ່ ທີ່ສຸດ.
    ຂ້ອຍຢາກໃຫ້ເຈົ້າສອບຖາມ. ຂ້ອຍ ກຳ ລັງພະຍາຍາມ ດຳ ເນີນການລະຫັດກ່ຽວກັບໂປແກຼມ proteus 8 emulator ສຳ ລັບ Arguino Mega. ຂ້ອຍເຊື່ອມຕໍ່ voltmeter ກັບ pin 6, Proteus ແມ່ນເຊື່ອມຕໍ່ກັບພອດ serial, ແຕ່ຂ້ອຍບໍ່ຮູ້ວ່າມັນຈະແຕກຕ່າງກັນແນວໃດເພື່ອວ່າແຮງດັນໄຟຟ້າແຕກຕ່າງກັນແມ່ນຜົນຜະລິດ. ຂ້ອຍຕ້ອງໄດ້ປັບປ່ຽນລະຫັດເລັກໆນ້ອຍໆເພື່ອເຮັດໃຫ້ມັນລວບລວມ. ຂໍ​ຂອບ​ໃຈ​ທ່ານ​ຫຼາຍ​ສໍາ​ລັບ​ການ​ຊ່ວຍ​ເຫຼືອ​ຂອງ​ທ່ານ