ATmega microcontrollers ຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງໃນລະບົບຝັງ ເພາະມັນລວມເອົາຄວາມສາມາດໃນການດໍາເນີນການ, ຄວາມຊົງຈໍາ ແລະ ອຸປະກອນອຸປະກອນໃນຊິບດຽວ. ໂຄງສ້າງທີ່ງ່າຍໆ, ປະສິດທິພາບທີ່ໄວ້ວາງໃຈໄດ້ ແລະ ລະບົບການພັດທະນາທີ່ເຂັ້ມແຂງເຮັດໃຫ້ມັນເຫມາະສົມສໍາລັບການຮຽນຮູ້ແລະສ້າງລະບົບເອເລັກໂຕຣນິກ. ບົດຄວາມນີ້ອະທິບາຍກ່ຽວກັບສະຖາປະນິກ, module ພາຍໃນ, ຂະບວນການຂຽນໂປຣແກຣມ ແລະ ໂປຣແກຣມທົ່ວໄປໃນການອອກແບບທີ່ທັນສະໄຫມ.
ຄ1. ATmega Microcontrollers ແມ່ນຫຍັງ?
ຄ2. ລັກສະນະເດັ່ນຂອງ ATmega Microcontrollers
ຄ3. ATmega Architecture ແລະ Module ພາຍໃນ
ຄ4. ຕັ້ງຄ່າ ATmega Pin
ຄ5. ລະບົບພະລັງງານຂອງ ATmega Microcontrollers
ຄ6. ການຈັດການກັບການຂັດຂວາງໃນ ATmega Microcontrollers
ຄ7. ໂປຣແກຣມ ATmega Microcontrollers
ຄ8. ATmega Development Workflow ແລະ Programming Tools
ຄ9. ໂຄງການ LED ງ່າຍໆ ໂດຍ ໃຊ້ ATmega16
ຄ10. ແບບຢ່າງ ATmega Microcontroller ທົ່ວໄປ
ຄ11. ການນໍາໃຊ້ ATmega Microcontrollers
ຄ12. ATmega vs Microcontrollers ອື່ນໆ
ຄ13. ສະຫລຸບ
ຄ14. ຄໍາຖາມທີ່ຖາມເລື້ອຍໆ [FAQ]

ATmega Microcontrollers ແມ່ນຫຍັງ?
ATmega microcontrollers ເປັນ 8-bit AVR microcontroller chips (ຕົ້ນເດີມຈາກ Atmel, ປັດຈຸບັນຢູ່ພາຍໃຕ້ Microchip Technology) ທີ່ອອກແບບມາສໍາລັບລະບົບຝັງ. ເຂົາເຈົ້າໃຊ້ຊຸດຄໍາສັ່ງ RISC ແລະ ໂຄງສ້າງ Harvard ແລະລວມເອົາຄວາມຊົງຈໍາຂອງໂປຣແກຣມ (Flash), ຄວາມຊົງຈໍາທີ່ເຮັດວຽກ (SRAM), ຄວາມຊົງຈໍາທີ່ບໍ່ປ່ຽນແປງ (EEPROM), ພ້ອມທັງອຸປະກອນທົ່ວໄປ; ເຊັ່ນ: timers, digital I / O, ADC ແລະ serial interface ໃນອຸປະກອນດຽວ.
ລັກສະນະເດັ່ນຂອງ ATmega Microcontrollers
| ລັກສະນະ | ຄໍາອະທິບາຍ |
|---|---|
| 8-bit AVR RISC Architecture | ໃຊ້ການອອກແບບ Reduced Instruction Set Computing (RISC) ທີ່ອະນຸຍາດໃຫ້ຄໍາສັ່ງສ່ວນຫຼາຍດໍາເນີນການໃນວົງຈອນໂມງດຽວ ເຮັດໃຫ້ຂະບວນການດໍາເນີນການໄດ້ໄວແລະມີປະສິດທິພາບ. |
| Harvard Architecture | ຄວາມຊົງຈໍາຂອງໂປຣແກຣມແລະຄວາມຊົງຈໍາຂໍ້ມູນຖືກເກັບໄວ້ຕ່າງຫາກ, ອະນຸຍາດໃຫ້ CPU ເອົາຄໍາສັ່ງແລະເຂົ້າເຖິງຂໍ້ມູນໃນເວລາດຽວກັນ, ຊຶ່ງຈະປັບປຸງປະສິດທິພາບ. |
| On-chip Flash Program Memory | ຄວາມຊົງຈໍາ Flash ທີ່ບໍ່ປ່ຽນແປງຈະເກັບລະຫັດໂປຣແກຣມແລະເກັບໄວ້ເຖິງແມ່ນວ່າຈະຖອດໄຟຟ້າອອກ. ອີງຕາມລຸ້ນ, ຕາມປົກກະຕິແລ້ວຈະມີຂະຫນາດ 4 KB ເຖິງ 256 KB. |
| SRAM (Static RAM) | ໃຊ້ສໍາລັບການເກັບກໍາຂໍ້ມູນຊົ່ວຄາວໃນລະຫວ່າງການດໍາເນີນໂປຣແກຣມ, ລວມທັງຕົວປ່ຽນ, buffers ແລະ stack. |
| EEPROM | Electrically Erasable Programmable Read-Only Memory ໃຊ້ເພື່ອເກັບຂໍ້ມູນທີ່ບໍ່ປ່ຽນແປງເຊັ່ນ ການຕັ້ງຄ່າທີ່ຕ້ອງເກັບຮັກສາໄວ້ຫຼັງຈາກໄຟຟ້າສູນເສຍ. |
| Built-in Timers ແລະ PWM | Hardware timers ແລະ Pulse Width Modulation modules ຖືກໃຊ້ສໍາລັບການດໍາເນີນການເວລາ, ການສ້າງສັນຍານ, ແລະ ການຄວບຄຸມຄວາມສະຫວ່າງຂອງເຄື່ອງຈັກຫຼື LED. |
| ADC 10-bit | Analog-to-Digital Converter ທີ່ສ້າງຂຶ້ນອະນຸຍາດໃຫ້ microcontroller ອ່ານສັນຍານ analog ຈາກ sensor ແລະປ່ຽນເປັນຄຸນຄ່າ digital ສໍາລັບການດໍາເນີນການ. |
| ໂປຣແກຣມ Digital I/O Pins | ຫຼາຍ input/output pins ສາມາດຕັ້ງຄ່າເປັນinput ຫຼື output ເພື່ອຕິດຕໍ່ກັບອຸປະກອນພາຍນອກເຊັ່ນ LED, button ແລະ sensors. |
| ການສື່ສານ | ສະຫນັບສະຫນູນລະບົບການສື່ສານແບບຕໍ່ເນື່ອງທົ່ວໄປລວມທັງ USART, SPI ແລະ I²C ສໍາລັບການເຊື່ອມຕໍ່ກັບ microcontrollers, sensor ແລະ module ອື່ນໆ. |
| ລະບົບນິເວດການພັດທະນາທີ່ເຂັ້ມແຂງ | ໄດ້ຮັບການສະຫນັບສະຫນູນຢ່າງກວ້າງຂວາງໂດຍເຄື່ອງມືພັດທະນາ, ເອກະສານແລະລະບົບຕ່າງໆເຊັ່ນ Arduino, ເຮັດໃຫ້ການຂຽນໂປຣແກຣມ, ການສ້າງແບບຢ່າງແລະການແກ້ໄຂຂໍ້ມູນງ່າຍຂຶ້ນ. |
ATmega Architecture ແລະ Module ພາຍໃນ

ATmega MCUs ໃຊ້ CPU AVR 8-bit ທີ່ມີສະຖາປະນິກຂອງຮາວເວີດ: Flash ເກັບຄໍາສັ່ງ, ໃນຂະນະທີ່ SRAM ເກັບຂໍ້ມູນໃນເວລາແລ່ນ. core ມີ 32 register ທີ່ ທໍາ ງານ ແລະ pipeline ທີ່ ງ່າຍໆ, ດັ່ງນັ້ນ ຄໍາ ແນະນໍາ ຫລາຍ ຢ່າງ ຈຶ່ງ ສໍາ ເລັດ ໃນ ໂມງ ດຽວ. ພາຍໃນ, ຄວາມຊົງຈໍາສາມປະເພດສະຫນັບສະຫນູນຄວາມຕ້ອງການ firmware ທົ່ວໄປ: Flash ສໍາລັບການເກັບໂປຣແກຣມ (ແລະພື້ນທີ່ bootloader ທາງເລືອກ), SRAM ສໍາລັບຕົວປ່ຽນແລະສະກັດ, ແລະ EEPROM ສໍາລັບການຕັ້ງຄ່າທີ່ບໍ່ປ່ຽນແປງ.
ອຸປະກອນຕິດຕໍ່ກັບ CPU ຜ່ານ register I / O ທີ່ວາງແຜນຄວາມຊົງຈໍາ. Port GPIO ຖືກຄວບຄຸມຜ່ານ DDRx (ທິດທາງ), PORTx (output ຫຼື pull-up) ແລະ PINx (ອ່ານ). ລະບົບໂມງທີ່ປັບປ່ຽນໄດ້ (RC ພາຍໃນ ຫຼື ແກ້ວພາຍນອກ) ກໍານົດຄວາມໄວ CPU ແລະ ເວລາກໍານົດເວລາ. Timers / counters (8-bit ແລະ/ຫຼື 16-bit, ຂຶ້ນກັບແບບຢ່າງ) ໃຫ້ການຊັກຊ້າ, ການນັບເຫດການແລະການສ້າງ PWM. ຫຼາຍພາກສ່ວນລວມທັງ multi-channel 10-bit ADC ສໍາລັບ sensor inputs. ຕາມປົກກະຕິແລ້ວ Serial interface ລວມທັງ USART, SPI ແລະ TWI (I²C-compatible) ສໍາລັບການສື່ສານກັບ PC, sensor ແລະ ຄວບຄຸມອື່ນໆ.
ຄວບຄຸມການຂັດຂວາງທີ່ມີຕາຕະລາງເວັກເຕີອະນຸຍາດໃຫ້ອຸປະກອນອຸປະກອນແລະເຂັມພາຍນອກກະຕຸ້ນ firmware ທີ່ເກີດຂຶ້ນ.
ການຕັ້ງຄ່າ ATmega Pin

| Pin Category | Pin Name / Port | ຄໍາອະທິບາຍ / ຫນ້າທີ່ |
|---|---|---|
| ເຂັມໄຟຟ້າ | VCC | volt supply ຫຼັກສໍາລັບ microcontroller. |
| GND | ຂໍ້ອ້າງອີງພື້ນດິນສໍາລັບຫມວດ. | |
| AVCC | ໄຟຟ້າສໍາລັບຫມວດ analog ແລະ ADC. | |
| AREF | แรงดันອ້າງອີງທີ່ໃຊ້ໂດຍ Analog-to-Digital Converter (ADC). | |
| Digital Input/Output Pins | ທ່າເຮືອ A (PA0–PA7) | Digital I / O pins ທີ່ສາມາດເຮັດຫນ້າທີ່ເປັນอินพุต analog ສໍາລັບ ADC. |
| ທ່າເຮືອ B (PB0–PB7) | Digital I / O pins ທີ່ໃຊ້ກັນທົ່ວໄປສໍາລັບການສື່ສານ SPI ແລະ ຫນ້າທີ່ຂອງເວລາ. | |
| ໂປຣແກຣມ C (PC0–PC7) | ເຂັມ I / O digital ທີ່ ມີ ຈຸດປະສົງ ທົ່ວ ໄປ ມັກ ໃຊ້ ສໍາລັບ ສັນຍານ ຄວບ ຄຸມ. | |
| ທ່າເຮືອ D (PD0–PD7) | Digital I/O pins ມັກໃຊ້ສໍາລັບການສື່ສານ USART ແລະ ການຂັດຂວາງພາຍນອກ. | |
| ເຂັມໂມງ | XTAL1 | Input pin ສໍາລັບ oscillator ພາຍນອກ ຫຼື ສັນຍານໂມງ. |
| XTAL2 | pin output ຈາກ ເຄື່ອງ ຂະຫຍາຍ oscillator ພາຍ ໃນ. | |
| Reset Pin | RESET | Active-low reset pin ໃຊ້ເພື່ອເລີ່ມຕົ້ນລະບົບ microcontroller. |
| ເຂັມການສື່ສານ – USART | RXD | ຮັບຂໍ້ມູນຕໍ່ຈາກອຸປະກອນພາຍນອກ. |
| TXD | ສົ່ງຂໍ້ມູນຕໍ່ເນື່ອງໄປອຸປະກອນພາຍນອກ. | |
| ເຂັມການສື່ສານ – SPI | ໂມຊີ | Master Out Slave In – ສາຍຂໍ້ມູນຈາກນາຍໄປຫາອຸປະກອນຂ້າໃຊ້. |
| MISO | Master In Slave Out - ສາຍ ຂໍ້ ມູນ ຈາກ ຂ້າ ທາດ ໄປ ຫາ ອຸປະກອນ master. | |
| SCK | ສັນຍານໂມງແບບຕໍ່ເນື່ອງທີ່ໃຊ້ສໍາລັບການສື່ສານ SPI. | |
| SS | Slave Select pin ທີ່ໃຊ້ເພື່ອເລືອກອຸປະກອນ SPI slave. | |
| ເຂັມການສື່ສານ – TWI (I²C) | SDA | Serial Data line ໃຊ້ສໍາລັບການສື່ສານສອງສາຍ. |
| SCL | Serial Clock line ໃຊ້ສໍາລັບການສື່ສານສອງສາຍ. |
Pinout ແຕກຕ່າງກັນໄປຕາມລຸ້ນ; ຕາຕະລາງນີ້ໃຊ້ ATmega16/32 ເປັນຕົວຢ່າງ.
Power Modes ຂອງ ATmega Microcontrollers

ATmega microcontrollers ສະຫນັບສະຫນູນ mode ການ ໃຊ້ ພະລັງ ຫລາຍ ຢ່າງ ທີ່ ຫລຸດຜ່ອນ ການ ໃຊ້ ພະລັງ ເມື່ອ CPU ບໍ່ ຈໍາ ເປັນ ຕ້ອງ ທໍາ ງານ ຢ່າງ ຕໍ່ ເນື່ອງ. mode ເຫລົ່າ ນີ້ ມີ ປະ ໂຫຍດ ໂດຍ ສະ ເພາະ ໃນ ລະບົບ ຝັງ ທີ່ ໃຊ້ ໄຟ ລົດ ດັ່ງ ເຊັ່ນ ເຄື່ອງ ມື ຖື ແລະ sensor IoT.
Idle Mode
ໃນ Idle mode, CPU ຢຸດປະຕິບັດຄໍາສັ່ງໃນຂະນະທີ່ module ອ້ອມຂ້າງເຊັ່ນ timers, serial communication interface ແລະ interrupts ຍັງດໍາເນີນການຕໍ່ໄປ. ສິ່ງນີ້ອະນຸຍາດໃຫ້ microcontroller ຕື່ນຂຶ້ນຢ່າງໄວເມື່ອມີການຂັດຂວາງ.
โหมดປິດໄຟຟ້າ
Power-off mode ປິດ CPU ແລະ ອຸປະກອນພາຍໃນສ່ວນຫຼາຍເພື່ອໃຫ້ມີການໃຊ້ພະລັງງານຕໍ່າຫຼາຍ. ພຽງແຕ່ການຂັດຂວາງພາຍນອກຫຼືເຫດການເວລາເຝົ້າເບິ່ງເທົ່ານັ້ນທີ່ສາມາດປຸກອຸປະກອນໄດ້. ແບບ ນີ້ ມັກ ໃຊ້ ໃນ ໂປຣເເກຣມ ລໍຖ້າ ເປັນ ເວລາ ດົນ ນານ.
โหมด Standby
Standby mode ກໍ ຄ້າຍຄື ກັນ ກັບ Power-down mode ແຕ່ ຍັງ ເຮັດ ໃຫ້ oscillator ດໍາ ເນີນ ຕໍ່ ໄປ. ເນື່ອງຈາກແຫຼ່ງໂມງຍັງເຮັດວຽກຢູ່, microcontroller ຈຶ່ງສາມາດດໍາເນີນການໄດ້ໄວຂຶ້ນ.
ການຈັດການກັບການຂັດຂວາງໃນ ATmega Microcontrollers
ການຂັດຂວາງອະນຸຍາດໃຫ້ microcontroller ATmega ຕອບສະຫນອງທັນທີຕໍ່ເຫດການທີ່ສໍາຄັນໂດຍບໍ່ຕ້ອງກວດສອບຢ່າງຕໍ່ເນື່ອງໃນວົງຈອນຂອງໂປຣແກຣມຫຼັກ.
ເມື່ອເກີດການຂັດຂວາງ, microcontroller ຈະຢຸດການດໍາເນີນໂປຣແກຣມຊົ່ວຄາວແລະກະໂດດໄປຫາກິດຈະກໍາພິເສດທີ່ເອີ້ນວ່າ Interrupt Service Routine (ISR). ຫລັງ ຈາກ ISR ສິ້ນ ສຸດ ລົງ, ໂຄງການ ຈະ ດໍາ ເນີນ ຕໍ່ ໄປ ຈາກ ບ່ອນ ທີ່ ມັນ ຖືກ ຢຸດ ພັກ.
ແຫຼ່ງການຂັດຂວາງທົ່ວໄປໃນອຸປະກອນ ATmega ລວມເຖິງ:
• ເຂັມຂັດພາຍນອກ
• Timer overflow ຫຼື ປຽບທຽບເຫດການຕ່າງໆ
• ເຫດການສື່ສານຕໍ່ເນື່ອງ (USART, SPI, TWI)
• ການ ປ່ຽນ ໃຈ ເຫລື້ອມ ໃສ ADC ສໍາ ເລັດ
• ເຫດການເວລາເຝົ້າເບິ່ງ
ການໃຊ້ການຂັດຂວາງຈະປັບປຸງປະສິດທິພາບຂອງລະບົບ ເພາະວ່າ CPU ບໍ່ຈໍາເປັນຕ້ອງກວດສອບອຸປະກອນຮາດແວຣ໌ຕະຫຼອດເວລາ. ແທນທີ່ຈະເຮັດແນວນັ້ນ processor ເຮັດຫນ້າທີ່ອື່ນໆແລະຕອບສະຫນອງເມື່ອມີສັນຍານຂັດຈັງຫວະເທົ່ານັ້ນ.
ໂປຣແກຣມ ATmega Microcontrollers
ຕາມປົກກະຕິແລ້ວ microcontrollers ATmega ຈະຖືກຕັ້ງໂປຣແກຣມໃນ Embedded C ໂດຍໃຊ້ avr-gcc (AVR-GCC) ແລະ avr-libc. AVR Assembly ຍັງມີປະໂຫຍດສໍາລັບບາງກໍລະນີເຊັ່ນ ວົງຈອນທີ່ຖືກຕ້ອງ, ໂປຣແກຣມຂະຫນາດນ້ອຍ ຫຼືການຄວບຄຸມຄໍາສັ່ງສະເພາະເຈາະຈົງໂດຍກົງ, ແຕ່ໂຄງການສ່ວນຫຼາຍໃຊ້ C ເພື່ອການພັດທະນາທີ່ໄວຂຶ້ນແລະການບໍາລຸງຮັກສາທີ່ງ່າຍຂຶ້ນ.
Firmware ຄວບຄຸມຮາດແວຣ໌ຜ່ານຈົດທະບຽນ I / O ທີ່ວາງແຜນໄວ້ໃນຄວາມຊົງຈໍາ. ແຕ່ລະອຸປະກອນ (GPIO, timers, ADC, USART, SPI, TWI) ມີຈົດທະບຽນຄວບຄຸມທີ່ທ່ານຂຽນຫຼືອ່ານໃນໂປຣແກຣມ. ສໍາລັບ GPIO, ແບບແຜນທົ່ວໄປແມ່ນ:
• DDRx ກໍານົດທິດທາງ pin (0=input, 1=output)
• PORTx ຂຽນລະດັບຜົນອອກ(ຫຼືເຮັດໃຫ້ pull-up ເມື່ອຕັ້ງຄ່າເປັນอินพุต)
• PINx ອ່ານສະຖານະຂອງ pin ປະຈຸບັນ
ຕົວຢ່າງ: ຕັ້ງ PB0 ເປັນຜົນອອກແລະເປີດ LED

ໃນພາກປະຕິບັດ, ທ່ານຈະປະກອບໂຄງການເປັນແຟ້ມ .hex ແລະໂປຣແກຣມຊິບໂດຍໃຊ້ ISP (SPI-based) ດ້ວຍເຄື່ອງມືເຊັ່ນ USBasp / AVRISP / Atmel-ICE ຫຼືຜ່ານ bootloader ໃນບາງboard. ທາງເລືອກຂອງອຸປະກອນເຊັ່ນ clock source ແລະ boot ຕັ້ງຄ່າຖືກຄວບຄຸມໂດຍ fuse bits, ດັ່ງນັ້ນມັນຕ້ອງສອດຄ່ອງກັບໂມງຂອງຮາດແວຣ໌ແລະຄວາມຕ້ອງການເລີ່ມຕົ້ນຂອງເຈົ້າ.
ATmega Development Workflow ແລະ Programming Tools

Toolchain (ສ້າງຜົນອອກ)
• ຂຽນໂປຣແກຣມໃນ Embedded C (ຫຼື AVR assembly ເມື່ອຈໍາເປັນ) ໂດຍໃຊ້ IDE / editor ເຊັ່ນ Microchip Studio ຫຼື VS Code.
• ສ້າງດ້ວຍ AVR-GCC (compile + link) ເພື່ອຜະລິດແຟ້ມ ELF, ຈາກນັ້ນສ້າງຮູບພາບ .hex ສໍາລັບໂປຣແກຣມ Flash.
• ຮັກສາການຕັ້ງຄ່າໂຄງການໃຫ້ສອດຄ່ອງ (ອຸປະກອນ, ໂມງ, ການປັບປຸງ, ຫ້ອງສະຫມຸດ) ເພື່ອໃຫ້ການສ້າງສາມາດເຮັດຊ້ໍາໄດ້.
ວິທີການຂຽນໂປຣແກຣມ (ວິທີທີ່ firmware ເຂົ້າໄປໃນ chip)
• ISP (SPI-based) ເປັນວິທີທໍາມະດາທີ່ສຸດສໍາລັບ chips ATmega ເປົ່າ. ໂປຣແກຣມທົ່ວໄປລວມທັງ USBasp, AVRISP ແລະ Atmel-ICE.
• bootloader ສາມາດໃຊ້ໄດ້ໃນບາງboard, ອະນຸຍາດໃຫ້ອັບໂປຣແກຣມຜ່ານ UART / USB ໂດຍບໍ່ຕ້ອງໃຊ້ເຄື່ອງມື ISP ພາຍນອກ.
• ໃຊ້ເຄື່ອງມືເຊັ່ນ avrdude (ຫຼື IDE-integrated programmers) ເພື່ອຂຽນແຟ້ມ HEX ແລະດໍາເນີນຂັ້ນຕອນການຢືນຢັນຫຼັງຈາກການຂຽນໂປຣແກຣມ.
• ທາງເລືອກຂອງອຸປະກອນເຊັ່ນ ແຫຼ່ງໂມງແລະການຕັ້ງຄ່າເລີ່ມລະບົບຖືກຄວບຄຸມໂດຍ fuse bits, ດັ່ງນັ້ນ ການຕັ້ງຄ່າ fuse ຕ້ອງສອດຄ່ອງກັບຮາດແວຣ໌ແທ້ໆ.
ແກ້ໄຂແລະທົດສອບ
• ສໍາລັບການທົດສອບຫນ້າທີ່, ເລີ່ມຕົ້ນດ້ວຍບັນທຶກ UART, pin "heartbeat" GPIO ແລະ firmware ທົດສອບແບບງ່າຍໆ.
• ການແກ້ໄຂຮາດແວຣ໌ຂຶ້ນຢູ່ກັບລຸ້ນ ATmega ສະເພາະແລະການສະຫນັບສະຫນູນຂອງຄະນະກໍາມະການ (ຍົກຕົວຢ່າງ, debugWIRE ຫຼື JTAG ໃນສ່ວນທີ່ສະຫນັບສະຫນູນ). ເຄື່ອງມືເຊັ່ນ Atmel-ICE ສາມາດໃຊ້ໄດ້ເມື່ອເປົ້າຫມາຍສະຫນັບສະຫນູນການແກ້ໄຂຂໍ້ມູນໃນຊິບ.
• ເຄື່ອງມືจําลอง (Proteus, SimulIDE, Tinkercad) ສາມາດຊ່ວຍກວດສອບໄດ້ໃນຕອນຕົ້ນ, ແຕ່ພຶດຕິກໍາແລະເວລາທີ່ຢູ່ອ້ອມຂ້າງອາດບໍ່ສອດຄ່ອງກັບຮາດແວຣ໌ແທ້ໆ, ດັ່ງນັ້ນການກວດສອບຄັ້ງສຸດທ້າຍຄວນເຮັດໃນກະດານ.
ໂຄງການ LED ງ່າຍໆ ໂດຍ ໃຊ້ ATmega16

ໂຄງການເລີ່ມຕົ້ນທີ່ງ່າຍໆໂດຍໃຊ້ ATmega16 ສະແດງໃຫ້ເຫັນວິທີທີ່ microcontroller ອ່ານຂໍ້ມູນທີ່ປຸ້ນແລະຄວບຄຸມຜົນອອກ LED.
ຈຸດປະສົງຂອງໂຄງການ
ເປີດ LED ເມື່ອຖືກບຸກເບີກ ແລະ ປິດເມື່ອປ່ອຍປຸ່ມ.
ຕົວຢ່າງການເຊື່ອມຕໍ່
• ປຸ່ມ → PA0
• LED → PB0 ຜ່ານ resistor ທີ່ຈໍາກັດກະແສ
ຕົວຢ່າງລະຫັດ

ວິທີ ທີ່ ໂຄງການ ດໍາເນີນ ງານ
ທໍາອິດໂປຣແກຣມຕັ້ງຄ່າ PA0 ເປັນpin input ແລະ PB0 ເປັນpin output. ພາຍໃນວົງຈອນທີ່ບໍ່ມີຂອບເຂດ, microcontroller ຈະອ່ານສະພາບ logic ຂອງປຸ່ມທີ່ຕິດຕໍ່ກັບ PA0 ຢ່າງຕໍ່ເນື່ອງ.
ເມື່ອບີບປຸ່ມ, PA0 ຈະກາຍເປັນ HIGH. ໂປຣແກຣມຈະກວດພົບຂໍ້ມູນນີ້ແລະຕັ້ງ PB0 HIGH ເຊິ່ງເປີດ LED. ເມື່ອປ່ອຍປຸ່ມ, PA0 ຈະກາຍເປັນ LOW, ດັ່ງນັ້ນໂປຣແກຣມຈະມ້ຽນ PB0 ແລະ LED ຈະປິດ.
ແບບຢ່າງ ATmega Microcontroller ທົ່ວໄປ

• ATmega8 – ລວມເອົາຄວາມຊົງຈໍາ Flash 8 KB ແລະ ເຫມາະສົມສໍາລັບໂປຣແກຣມການຄວບຄຸມທີ່ງ່າຍໆ, ການຕິດຕໍ່ພົວພັນກັບเซ็นเซอร์ພື້ນຖານ ແລະ ໂຄງການຮຽນຮູ້ນ້ອຍໆທີ່ລາຄາຕໍ່າແລະຄວາມງ່າຍດາຍເປັນສິ່ງສໍາຄັນ.

• ATmega16 – ໃຫ້ຄວາມຊົງຈໍາ Flash 16 KB ພ້ອມກັບທາງເລືອກ I/O digital ແລະ ອຸປະກອນທີ່ຕິດຢູ່, ເຮັດໃຫ້ມັນເປັນທາງເລືອກທົ່ວໄປສໍາລັບໂຄງການຝັງໃນລະດັບປານກາງເຊັ່ນ ການຄວບຄຸມການສະແດງ, ການຕິດຕໍ່ກັບເຄື່ອງຈັກ ແລະ ລະບົບອັດຕະໂນມັດຂະຫນາດນ້ອຍ.

• ATmega32 – ສະເຫນີຄວາມຊົງຈໍາ Flash 32 KB ພ້ອມດ້ວຍອຸປະກອນເພີ່ມເຕີມ ແລະ ຊ່ອງຫວ່າງໂປຣແກຣມທີ່ກວ້າງຂວາງ, ເຮັດໃຫ້ມັນຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງໃນຫຸ່ນຍົນ, ຫມວດຄວບຄຸມ ແລະ ລະບົບອັດຕະໂນມັດທີ່ຕ້ອງການຄວາມປັບປ່ຽນແລະຫນ້າທີ່ຫຼາຍກວ່າ.

• ATmega328P - ມີຄວາມຊົງຈໍາ Flash 32 KB, ຊ່ອງທາງເຂົ້າແບບ analog ຫຼາຍຊ່ອງ ແລະ ການສື່ສານຫຼາຍຢ່າງ. ເປັນທີ່ຮູ້ຈັກກັນດີວ່າເປັນຈຸນລະຊີບຫຼັກທີ່ໃຊ້ໃນ Arduino Uno, ຊຶ່ງເຮັດໃຫ້ມັນເປັນທີ່ນິຍົມເປັນພິເສດສໍາລັບການສຶກສາ, ການສ້າງແບບຢ່າງແລະເຄື່ອງເອເລັກໂຕຣນິກ.

• ATmega2560 – ມາພ້ອມກັບຄວາມຊົງຈໍາ Flash 256 KB ແລະ pin I / O ຈໍານວນຫຼວງຫຼາຍ, ອະນຸຍາດໃຫ້ມັນຮັບມືກັບລະບົບຝັງທີ່ສະຫຼັບຊັບຊ້ອນຫຼາຍຂຶ້ນ. ມັນຖືກໃຊ້ໃນ Arduino Mega ແລະເຫມາະສົມສໍາລັບໂຄງການທີ່ຕ້ອງການ sensor, module ແລະການເກັບຮັກສາໂປຣແກຣມທີ່ໃຫຍ່ກວ່າ.
ການນໍາໃຊ້ ATmega Microcontrollers

• ລະບົບຄວບຄຸມເຄື່ອງຈັກ – ຄວບຄຸມ DC motors, servo motor ແລະ stepper motors ໂດຍໃຊ້ສັນຍານ PWM ສໍາລັບການຄວບຄຸມຄວາມໄວ ແລະ ຕໍາແຫນ່ງ (ຕົວຢ່າງ: ຂົນສົ່ງຂະຫນາດນ້ອຍ, ຄວບຄຸມพัดลม, ຄວບຄຸມສູບ).
• ການບັນທຶກຂໍ້ມູນຂອງ Sensor – ການອ່ານເຄື່ອງສັງເກດເຊັ່ນ ອຸນຫະພູມ, ຄວາມຊຸ່ມເຢັນ, ແສງສະຫວ່າງ, ແກ໊ດ ຫຼື ຄວາມກົດດັນ ແລະ ການບັນທຶກການວັດແທກໃສ່ EEPROM, SD card modules ຫຼືສົ່ງຂໍ້ມູນໄປໃຫ້ຄອມພິວເຕີຜ່ານການສື່ສານແບບຕໍ່ເນື່ອງ.
• ຄວບຄຸມອັດຕະໂນມັດໃນບ້ານ – ປ່ຽນໄຟ, ຖ່າຍທອດ ແລະ ເຄື່ອງໃຊ້; ເຝົ້າເບິ່ງເຄື່ອງຈັບປະຕູ ຫຼື ເຄື່ອງຈັບການເຄື່ອນໄຫວ; ແລະ ການ ຄວບ ຄຸມ ອຸນຫະພູມ ຫລື ສັນຍານ ໂດຍ ໃຊ້ ເຫດຜົນ ການ ຄວບ ຄຸມ ທີ່ ງ່າຍໆ.
• ລະບົບຫຸ່ນຍົນຂະຫນາດນ້ອຍ – ຈັດການກັບຫຸ່ນຍົນທີ່ຕິດຕາມແຖວ, ຫຸ່ນຍົນຫຼີກລ່ຽງອຸປະສັກ ແລະ ແຂນຫຸ່ນຍົນທີ່ງ່າຍໆ ໂດຍການຈັດການຂໍ້ມູນຂອງ sensor ແລະ ຄວບຄຸມເຄື່ອງຈັກ ແລະ actuator.
• ການຕິດຕາມ ແລະ ຄວບຄຸມອຸດສະຫະກໍາ – ການຕິດຕາມຂະບວນການພື້ນຖານ, ລະບົບສັນຍານ ແລະ ການຄວບຄຸມອັດຕະໂນມັດຂອງເຄື່ອງຈັກນ້ອຍໆທີ່ຕ້ອງການຄວາມໄວພໍສົມຄວນ ແລະ I / O ທີ່ໄວ້ໃຈໄດ້.
• IoT ແລະ node sensor wireless – ອຸປະກອນ sensor ພະລັງງານຕ່ໍາທີ່ຄູ່ກັບ module wireless (ເຊັ່ນ RF, Bluetooth ຫຼື Wi-Fi modules) ສໍາລັບການຕິດຕາມ ແລະ ລາຍງານເປັນໄລຍະ.
• ເຄື່ອງເອເລັກໂຕຣນິກສໍາລັບລູກຄ້າ ແລະ ລົດ – ການຄວບຄຸມທີ່ງ່າຍໆພາຍໃນອຸປະກອນເຊັ່ນ ການຄວບຄຸມທາງໄກ, ເຄື່ອງໃຊ້ນ້ອຍໆ, dashboard ຫຼື ລະບົບຊີ້ບອກ.
• ເຄື່ອງມືການແພດ ແລະ ວັດແທກ – ວຽກງານການເຝົ້າເບິ່ງ ແລະ ຄວບຄຸມສັນຍານພື້ນຖານໃນອຸປະກອນ portable ບ່ອນທີ່ພະລັງງານຕ່ໍາ ແລະ ປະສິດທິພາບທີ່ຫມັ້ນຄົງເປັນສິ່ງສໍາຄັນ.
ATmega vs Microcontrollers ອື່ນໆ

| ລັກສະນະ | ATmega (AVR) | PIC Microcontrollers | Microcontrollers ທີ່ອີງໃສ່ ARM |
|---|---|---|---|
| ສະຖາປະນິກ | AVR RISC | ຮູບພາບ RISC | ARM Cortex-M |
| ພະລັງການປຸງແຕ່ງ | ພໍ ສົມ ຄວນ | ພໍ ສົມ ຄວນ | ສູງຫຼາຍ |
| ຄວາມສາມາດຂອງຄວາມຊົງຈໍາ | ນ້ອຍ-ກາງ | ນ້ອຍ-ກາງ | ໃຫຍ່ |
| ຄວາມສະດວກໃນການຂຽນໂປຣແກຣມ | ງ່າຍຫຼາຍ | ພໍ ສົມ ຄວນ | ສະຫຼັບຊັບຊ້ອນກວ່າ |
| ໂປຣເເກຣມ | Arduino, ການສຶກສາ, ການຄວບຄຸມຝັງ | ການຄວບຄຸມອຸດສະຫະກໍາ | IoT, ລະບົບທີ່ກ້າວຫນ້າ |
| ລະບົບນິເວດ | ການສະຫນັບສະຫນູນ Arduino ທີ່ເຂັ້ມແຂງ | ລະບົບນິເວດ MPLAB | ລະບົບນິເວດມືອາຊີບຂະຫນາດໃຫຍ່ |
ການສະຫລຸບ
ATmega microcontrollers ຍັງເປັນພື້ນຖານທີ່ສໍາຄັນສໍາລັບການພັດທະນາແບບຝັງເນື່ອງຈາກປະສິດທິພາບທີ່ສົມດຸນ, ການໃຊ້ພະລັງງານຕໍ່າ ແລະ ງ່າຍໃນການຂຽນໂປຣແກຣມ. ດ້ວຍອຸປະກອນທີ່ລວມເຂົ້າກັນ, ຄວາມສາມາດ I / O ທີ່ປັບປ່ຽນໄດ້ ແລະ ການສະຫນັບສະຫນູນເຄື່ອງມືທີ່ເຂັ້ມແຂງ, ມັນເຮັດໃຫ້ການອອກແບບລະບົບທີ່ມີປະສິດທິພາບສໍາລັບຫຼາຍໂປຣແກຣມ. ການເຂົ້າໃຈໂຄງສ້າງແລະຂັ້ນຕອນການພັດທະນາຂອງເຂົາເຈົ້າຊ່ວຍໃຫ້ເຈົ້າສ້າງທາງແກ້ໄຂທີ່ເຊື່ອຖືໄດ້ແລະໂຄງການເອເລັກໂຕຣນິກທີ່ໃຊ້ການໄດ້.
ຄໍາຖາມທີ່ຖາມເລື້ອຍໆ [FAQ]
ATmega microcontrollers ສະຫນັບສະຫນູນການພັດທະນາ Arduino ບໍ?
ແມ່ນແລ້ວ. microcontrollers ATmega ຫຼາຍຊະນິດສາມາດເຂົ້າກັນໄດ້ຢ່າງເຕັມທີກັບລະບົບນິເວດ Arduino. ຍົກ ຕົວ ຢ່າງ, ATmega328P ເປັນ processor ຫຼັກ ທີ່ ໃຊ້ ໃນ board Arduino Uno. ທ່ານສາມາດຂຽນໂປຣແກຣມຊິບເຫຼົ່ານີ້ໂດຍໃຊ້ Arduino IDE ເຊິ່ງເຮັດໃຫ້ການຂຽນໂປຣແກຣມງ່າຍຂຶ້ນ, ການອັບໂຫຼດເຟີແວຣ໌ ແລະການລວມເຂົ້າກັບ sensor ຫຼື module.
ພາສາໂປຣແກຣມອັນໃດແດ່ທີ່ສາມາດໃຊ້ໄດ້ສໍາລັບ ATmega microcontrollers?
ATmega microcontrollers ຕາມປົກກະຕິແລ້ວຈະຖືກຕັ້ງໂປຣແກຣມໂດຍໃຊ້ພາສາ Embedded C ແລະ AVR Assembly. Embedded C ເປັນທີ່ນິຍົມຊົມຊອບຢ່າງກວ້າງຂວາງ ເພາະມັນປັບປຸງຄວາມງ່າຍໃນການອ່ານ, ງ່າຍຂຶ້ນໃນການຄວບຄຸມຮາດແວຣ໌ ແລະ ເລັ່ງການພັດທະນາ, ໃນຂະນະທີ່ພາສາ Assembly ໃຫ້ການຄວບຄຸມລະດັບຕໍ່າສໍາລັບໂປຣເເກຣມທີ່ສໍາຄັນຕໍ່ປະສິດທິພາບ.
แรงดันດໍາເນີນການຕາມປົກກະຕິຂອງ ATmega microcontrollers ແມ່ນຫຍັງ?
microcontroller ATmega ສ່ວນຫຼາຍເຮັດວຽກລະຫວ່າງ 1.8V ແລະ 5.5V ຂຶ້ນກັບລຸ້ນອຸປະກອນສະເພາະແລະຄວາມໄວຂອງໂມງ. board ທໍາ ມະ ດາ ຫລາຍ ຢ່າງ, ດັ່ງ ເຊັ່ນ ລະບົບ Arduino, ແລ່ນ ໃນ 5V, ໃນ ຂະນະ ທີ່ ໂປຣເເກຣມ ທີ່ ມີ ພະລັງ ຕ່ໍາ ອາດ ໃຊ້ ການ ດໍາ ເນີນ ງານ 3.3V ເພື່ອ ຫລຸດຜ່ອນ ການ ໃຊ້ ພະລັງ.
ATmega microcontrollers ຈະຖືກຕັ້ງໂປຣແກຣມ ຫຼື flashed ໄດ້ແນວໃດ?
ຕາມປົກກະຕິແລ້ວ microcontroller ATmega ຈະຖືກຕັ້ງໂປຣແກຣມໂດຍໃຊ້ໂປຣແກຣມໃນລະບົບ (ISP). ເປັນໂປຣແກຣມຮາດແວຣ໌; ເຊັ່ນ USBasp, AVRISP ຫຼື USBtinyISP ເຊື່ອມຕໍ່ກັບ SPI pins ຂອງ chip ແລະ upload ແຟ້ມ HEX ທີ່ຮຽບຮ້ອຍໂດຍກົງໃສ່ຄວາມຊົງຈໍາ Flash ໂດຍບໍ່ຕ້ອງຖອດ microcontroller ອອກຈາກຫມວດ.
ATmega microcontrollers ເຫມາະສົມສໍາລັບຜູ້ເລີ່ມຕົ້ນໃນລະບົບຝັງຕົວບໍ?
ແມ່ນແລ້ວ. ATmega microcontrollers ຖືກແນະນໍາຢ່າງກວ້າງຂວາງສໍາລັບຜູ້ເລີ່ມຕົ້ນ ເພາະມັນມີໂຄງສ້າງທີ່ງ່າຍໆ, ເອກະສານທີ່ແຈ່ມແຈ້ງ ແລະ ການສະຫນັບສະຫນູນຈາກຊຸມຊົນທີ່ເຂັ້ມແຂງ. ປະກອບກັບເຄື່ອງມືເຊັ່ນ Arduino ແລະ Microchip Studio, ມັນອະນຸຍາດໃຫ້ເຈົ້າສ້າງໂຄງການໄດ້ໄວໃນຂະນະທີ່ເຂົ້າໃຈພື້ນຖານຂອງໂປຣແກຣມທີ່ຝັງໄວ້.