DC Step giao tiếp Atmega, Điều khiển động cơ bước + A4988, AVR

DC Step giao tiếp Atmega là dùng Step Motor là một loại động cơ chạy bằng điện có nguyên lý và ứng dụng khác biệt với đa số các động cơ điện thông thường. Chúng thực chất là một động cơ đồng bộ dùng để biến đổi các tín hiệu điều khiển dưới dạng các xung điện rời rạc kế tiếp nhau thành các chuyển động góc quay hoặc các chuyển động của rôto có khả năng cố định roto vào các vị trí cần thiết

Động cơ bước là một loại động cơ mà bạn có thể quy định được góc quay của nó.
Ví dụ một động cơ bước 1,8 độ/bước quay hết 1 vòng 360 độ thì mất 200 bước (gọi là FULL STEP). Các chế độ quay nhiều xung thì động cơ quay sẽ êm hơn

 

Liên hệ làm Đồ án và Mạch điện tử

Phone : 0967.551.477

Zalo    : 0967.551.477

FB      : Huỳnh Nhật Tùng

Email : dientunhattung@gmail.com

Địa Chỉ: 171/25 Lê Văn Thọ, P8, Gò Vấp, Tp HCM

Chi tiết: Nhận làm mạch và đồ án Điện tử

 

1. Linh kiện cần thiết làm mạch điều khiển động cơ bước DC Step giao tiếp Atmega

1.1 Vi điều khiển AVR trong mạch điều khiển động cơ bước DC Step giao tiếp Atmega

a. Giới thiệu

Atmega16 là một chíp vi điều khiển được sản xuất bời hãng Atmel thuộc họ MegaAVR. Atmega16 là một bộ vi điều khiển 8 bit dựa trên kiến trúc RISC bộ nhớ chương trình 16KB ISP flash có thể ghi xóa hàng nghìn lần, 512B EEPROM, một bộ nhớ RAM vô cùng lớn trong thế giới vi xử lý 8 bit (1KB SRAM)

Với 32 chân có thể sử dụng cho các kết nối vào hoặc ra i/O, 32 thanh ghi, 3 bộ timer/counter có thể lập trình, có các gắt nội và ngoại (2 lệnh trên một vector ngắt), giao thức truyền thông nối tiếp USART, SPI, I2C. Ngoài ra có thể sử dụng bộ biến đổi số tương tự 10 bít (ADC/DAC) mở rộng tới 8 kênh, khả năng lập trình được watchdog timer, hoạt động với 5 chế độ nguồn, có thể sử dụng tới 6 kênh điều chế độ rộng xung (PWM), hỗ trợ bootloader.

review-do-an-avr-atmega

Vi xử lý có rất nhiều loại bắt đầu từ 4 bit cho đến 32 bit, vi xử lý 4 bit hiện nay không còn nhưng vi xử lý 8 bit vẫn còn mặc dù đã có vi xử lý 64 bit.
Lý do sự tồn tại của vi xử lý 8 bit là phù hợp với một số yêu cầu điều khiển trong công nghiệp. Các vi xử lý 32 bit, 64 bit thường sử dụng cho các máy tính vì khối lượng dữ liệu của máy tính rất lớn nên cần các vi xử lý càng mạnh càng tốt.
Các hệ thống điều khiển trong công nghiệp sử dụng các vi xử lý 8 bit hay 16 bit như hệ thống điện của xe hơi, hệ thống điều hòa, hệ thống điều khiển các dây chuyền sản xuất, …

các ứng dụng của vi điều khiển

b. Chức năng của Atmega:

  • PORTA: Các chân từ 33 đến 40 thuộc PORTA. Nó hoạt động giống như đầu vào analog cho bộ chuyển đổi A / D. Tuy nhiên, trong trường hợp không có bộ chuyển đổi A / D, PORTA được sử dụng làm cổng I / O hai chiều 8 bit. Nó đi kèm với điện trở kéo bên trong.
  • PORTB: Các chân từ 1 đến 8 thuộc về PORTB. Đây là các chân hai chiều I / O. Cổng này cũng bao gồm các điện trở kéo lên bên trong.
  • PORTC: PORTC là cổng I / O hai chiều bao gồm 8 chân. Chân từ 22 đến 29 thuộc về cổng này, tương tự như các cổng khác, nó đi kèm với điện trở kéo bên trong.
  • PORTD: Chân từ 14 đến 21 thuộc về cổng này. Đây là cổng hai chiều trong đó mỗi chân có thể được sử dụng làm chân đầu vào hoặc đầu ra. Tuy nhiên, có các tính năng bổ sung liên quan đến cổng này như ngắt, giao tiếp nối tiếp, bộ hẹn giờ và PWM.

Các chức năng khác

  • Reset: Chân 9 là chân reset mức thấp đang hoạt động. Xung mức thấp dài hơn độ dài xung tối thiểu sẽ tạo ra reset. Các xung ngắn không có khả năng tạo ra reset.
  • VCC: Chân 10 là chân cấp nguồn cho bộ điều khiển này. Nguồn điện của cần phải có 5 V để đặt bộ điều khiển này trong điều kiện đang chạy. 
  • GND: Chân 11 là chân nối đất.
  • AREF: Chân 32 là chân tham chiếu tương tự chủ yếu được sử dụng cho bộ chuyển đổi A / D .
  • AVCC: Chân 30 là AVCC là chân điện áp cung cấp cho PORTA và ADC. Nó được kết nối với VCC thông qua bộ lọc thông thấp khi có ADC. Tuy nhiên, trong trường hợp không có ADC, AVCC được kết nối bên ngoài với VCC. 
  • Chân 12 & 13: Một bộ dao động tinh thể được kết nối với các chân này. Atmega16 hoạt động ở tần số bên trong 1MHZ; bộ dao động được thêm vào để tạo ra xung clock và tần số cao.

c.Thông số kỹ thuật Atmega (Dip)

Datasheets Atmega16
Standard Package 27
Category Integrated Circuits (ICs)
Family Embedded – Atmel
Series Atmega
Packaging Tube
Core Processor AVR
Core Size 8-Bit
Speed 16MHz
Connectivity I²C, SPI, UART / USART, USB
Peripherals Brown-out Detec t/ Reset, HLVD, POR, PWM, WDT
Number of I /O 32
Program Memory Size 16KB
Program Memory Type FLASH
EEPROM Size 512B
RAM Size 1K
Voltage – Supply (Vcc/Vdd) 4.2 V ~ 5.5 V
Data Converters A/D 8 x 10bit
Oscillator Type Internal
Operating Temperature -40°C ~ 85°C
Package / Case 28-SOIC (0.295″, 7.50mm Width)
Other Names Atmega16

d. Power

  • 5V: Điện áp ra 5V (dòng điện trên mỗi chân này tối đa là 500mA).
  • GND: Là chân mang điện cực âm trên board.
  • IOREF: Điệp áp hoạt động của vi điều khiển trên AVR và có thể đọc điện áp trên chân IOREF. Chân IOREF không dùng để làm chân cấp nguồn.

e.Bộ nhớ

Vi điều khiển ATmega:

  • 16 KB bộ nhớ Plash: trong đó bootloader chiếm 0.5KB.
  • 2 KB cho SRAM: (Static Random Access Menory): giá trị các biến khai báo sẽ được lưu ở đây. Khai báo càng nhiều biến thì càng tốn nhiều bộ nhớ RAM. Khi mất nguồn dữ liệu trên SRAM sẽ bị mất.
  • 512B cho EEPROM: (Electrically Eraseble Programmable Read Only Memory): Là nơi có thể đọc và ghi dữ liệu vào đây và không bị mất dữ liệu khi mất nguồn.

f. Kiến trúc của Atmega16

Kiến trúc của Atmega16 dựa trên Kiến trúc Harvard và đi kèm với các bus và bộ nhớ riêng biệt. Các lệnh được lưu trữ trong bộ nhớ chương trình.

  1. CPU

CPU giống như bộ não của vi điều khiển giúp thực hiện một số lệnh. Nó có thể xử lý các ngắt, thực hiện các phép tính và điều khiển các thiết bị ngoại vi với sự trợ giúp của các thanh ghi. Atmega16 đi kèm với hai bus gọi là bus hướng dẫn và bus dữ liệu. CPU đọc lệnh trong bus hướng dẫn trong khi bus dữ liệu được sử dụng để đọc hoặc ghi dữ liệu tương ứng. CPU chủ yếu bao gồm bộ đếm chương trình, các thanh ghi mục đích chung, stack pointer, thanh ghi lệnh và bộ giải mã lệnh.

  1. ROM

Chương trình điều khiển được lưu trữ trong ROM, còn được gọi là bộ nhớ flash lập trình không bay hơi. Bộ nhớ flash có độ phân giải ít nhất 10.000 chu kỳ ghi / xóa. Bộ nhớ flash chủ yếu được chia thành hai phần được gọi là phần flash ứng dụng và phần flash booth. Chương trình của bộ điều khiển được lưu trữ trong phần flash ứng dụng. Trong khi phần flash booth được tối ưu hóa để hoạt động trực tiếp khi bộ điều khiển được bật nguồn.

  1. RAM

SRAM (bộ nhớ truy cập ngẫu nhiên tĩnh) được sử dụng để lưu trữ thông tin tạm thời và đi kèm với các thanh ghi 8-bit, giống như một RAM máy tính thông thường được sử dụng để cung cấp dữ liệu thông qua thời gian chạy.

  1. EEPROM

EEPROM (Bộ nhớ chỉ đọc có thể xóa bằng điện tử) là bộ nhớ không thay đổi được sử dụng như một bộ lưu trữ thời gian dài. Nó không liên quan đến việc thực thi chương trình chính. Nó được sử dụng để lưu trữ cấu hình của hệ thống và các thông số thiết bị tiếp tục hoạt động trong thiết lập lại bộ xử lý ứng dụng. EEPROM đi kèm với chu kỳ ghi giới hạn lên đến 100.000 trong khi chu kỳ đọc là không giới hạn. Trong khi sử dụng EEPROM, hãy viết các lệnh tối thiểu theo yêu cầu, để bạn có thể nhận được lợi ích từ bộ nhớ này trong thời gian dài hơn.

  1. Ngắt

Ngắt được sử dụng cho trường hợp khẩn cấp đặt chức năng chính ở trạng thái chờ và thực hiện các lệnh cần thiết tại thời điểm đó. Khi ngắt được gọi và thực thi, mã sẽ chuyển trở lại chương trình chính.

  1. Module I / O analog và kỹ thuật số

Module I / O kỹ thuật số được sử dụng để thiết lập giao tiếp kỹ thuật số giữa bộ điều khiển và các thiết bị bên ngoài. Trong khi module I / O analog được sử dụng để truyền thông tin analog. Bộ so sánh analog và ADC thuộc loại module I / O analog.

  1. Bộ định thời / Bộ đếm

Bộ định thời được sử dụng để tính toán tín hiệu bên trong bộ điều khiển. Atmega16 đi kèm với hai bộ định thời 8 bit và một bộ định thời 16 bit. Tất cả bộ định thời này hoạt động như một bộ đếm khi chúng được tối ưu hóa cho các tín hiệu bên ngoài.

  1. Watchdog timer

Watchdog timer là một bổ sung đáng chú ý trong bộ điều khiển này được sử dụng để tạo ngắt và đặt lại bộ định thời. Nó đi kèm với nguồn CLK riêng biệt 128kHz.

  1. Giao tiếp nối tiếp

Atmega16 đi kèm với các đơn vị USART và SPI được sử dụng để phát triển giao tiếp nối tiếp với các thiết bị bên ngoài.

1.2 Động cơ bước DC Step giao tiếp Atmega

a. Giới thiệu

  • Động cơ bước hay còn gọi là Step Motor là một loại động cơ chạy bằng điện có nguyên lý và ứng dụng khác biệt với đa số các động cơ điện thông thường. Chúng thực chất là một động cơ đồng bộ dùng để biến đổi các tín hiệu điều khiển dưới dạng các xung điện rời rạc kế tiếp nhau thành các chuyển động góc quay hoặc các chuyển động của rôto có khả năng cố định roto vào các vị trí cần thiết
  • Động cơ bước là một loại động cơ mà bạn có thể quy định được góc quay của nó.
    Ví dụ một động cơ bước 1,8 độ/bước quay hết 1 vòng 360 độ thì mất 200 bước (gọi là FULL STEP). Các chế độ quay nhiều xung thì động cơ quay sẽ êm hơn

dieu-khien-dong-co-buoc-step-qua-a4988-giao-tiep-arduino-bang-bien-tro-2

b. Thông số kỹ thuật

  • Kích thước bao: 42mm x 42mm
  • Kích thước trục: 5mm
  • Lưu ý sản phẩm có chân nguồn trực tiếp mà sẽ lấy nguồn từ driver động cơ bước để chạy
  • Đầu cốt 5mm khuyết 1 bên để dễ dàn bắt puly chống xoay (tuột bước,mất bước)
  • Bước 1.8 độ – 1.2A

c. Những loại động cơ bước – Step Motor

Việc phân loại động cơ Step cũng có thể chia thành nhiều cách.

Cách 1: Phân loại động cơ Step theo số pha động cơ.

  • Động cơ Step 2 pha tương ứng với góc bước 1.8 độ.
  • Động cơ Step 3 pha tương ứng với góc bước là 1.2 độ.
  • Và cuối cùng là động cơ Step 5 pha với góc bước là 0.72 độ.

Cách 2: Phân loại động cơ bước theo rotor.

  • Động cơ có rotor được tác dụng bằng dây quấn hoặc nam châm vĩnh cữu.
  • Động cơ thay đổi từ trở. Đây là loại động cơ có rotor không được tác động nhưng có phần tử cảm ứng.

Cách 3: Phân loại theo cực của động cơ.

  •  Động cơ đơn cực.
  •  Động cơ lưỡng cực.

d. Cấu tạo của một động cơ bước.

Step Motor có cấu tạo như sau:

– 1 Rotor là một dãy các lá nam châm vĩnh cữu được xếp chồng lên nhau một cách cẩn thận. Trên các lá nam châm này lại chia thành các cặp cực xếp đối xứng nhau.

– Stato được tạo bằng sắt từ được chia thành các rãnh để đặt cuộn dây.

Mach-dieu-khien-dong-co-buoc-DC Step giao tiếp Atmega
Cách hoạt động.

Động cơ bước không quay theo cơ chế thông thường, Step motor quay theo từng bước một nên nó có độ chính xác cao về mặt điều khiển học.

Chúng làm việc nhờ các bộ chuyển mạch điện tử. Các mạch điện tử sẽ đưa các tín hiệu của lệnh điều khiển vào stato theo thứ tự và một tần số nhất định.

Tổng số góc quay của rotor tương ứng với số lần chuyển mạch, cũng như chiều quay và tốc độ quay của rotor phụ thuộc vào thứ tự chuyển đổi và tần số chuyển đổi.

e. Ưu điểm, nhược điểm của động cơ bước – Step Motor.

  • Ưu điểm.
  • Step Motor có ưu điểm là khả năng cung cấp moment xoắn cực lớn ở dải vận tốc thấp và trung bình.
  • Một động cơ bước trên thị trường khá bền, giá thành cũng tương đối thấp.
  • Việc thay thế cũng khá dễ dàng.
  • Không nên dùng Step Motor cho các thiết bị đòi hỏi tốc độ cao.
  • Nhược điểm.
  • Step Motor hay xảy ra có hiện tượng bị trượt bước. Lí do bởi vì lực từ yếu hay nguồn điện cấp vào không đủ.
  • Khi hoạt động thì Step Motor thường gây ra tiếng ồn và có hiện tượng nóng dần. Với những Step Motor thế hệ mới thì việc độ ồn và nóng của động cơ giảm đáng kể.

1.3 Module Driver A4988 điều khiển động cơ bước DC Step giao tiếp Atmega

a. Giới thiệu

A4988 là một trình điều khiển vi bước để điều khiển động cơ bước lưỡng cực có bộ dịch tích hợp để vận hành dễ dàng. Điều này có nghĩa là chúng ta có thể điều khiển động cơ bước chỉ với 2 chân từ bộ điều khiển của chúng ta hoặc một chân để điều khiển hướng quay và chân kia để điều khiển các bước.
A4988 là một bộ điều khiển DMOS cực nhỏ với bộ chuyển đổi và bảo vệ quá dòng. A4988 có thể điều khiển được động cơ bước lưỡng cực với dòng điện lên đến 2A với mỗi cuộn dây.
Driver cung cấp năm độ phân giải bước khác nhau: bước đủ, ½ bước, ¼ bước, 1/8 bước và 1/16 bước. Ngoài ra, nó có một biến trở để điều chỉnh đầu ra hiện tại, tắt khi nhiệt độ quá cao và bảo vệ dòng điện chéo.Nguồn vào của nó là từ 3 đến 5,5 V và dòng điện tối đa trên mỗi pha là 2A nếu được làm mát bổ sung tốt hoặc dòng điện liên tục 1A mỗi pha mà không cần tản nhiệt hoặc làm mát.
dieu-khien-dong-co-buoc-step-qua-a4988-giao-tiep-arduino-bang-bien-tro-3
Mach-dieu-khien-DC-step-Arduino-uno-r3-4 DC Step giao tiếp Atmega

b. Thông số kỹ thuật

  • Điện áp cấp tối thiểu: 8 V
  • Điện áp cấp cực đại: 35 V
  • Dòng cấp liên tục cho mỗi pha: 1 A (không cần tản nhiệt, làm mát)
  • Dòng cấp liên tục cho mỗi pha: 2 A (khi có làm mát, tản nhiệt)
  • Điện áp logic 1 tối thiểu: 3 V
  • Điện áp logic 1 tối đa: 5.5 V
  • Độ phân giải: full, 1/2, 1/4, 1/8, và 1/16

c. Cách sử dụng module Driver A4988

  • Lựa chọn chế độ full hay 1/2 hay 1/4.. sẽ được thông qua 3 pin MS1 MS2 MS3. Mình thường nối thẳng 3 pin này với công tắc bit 3p để dễ thiết lập từ trên phần cứng. Lưu ý là nếu thả nổi 3 pin này tức là mode full step.
  • Bật tắt động cơ thì thông qua pin ENABLE, mức LOW là bật module, mức HIGH là tắt module
  • Điều khiển chiều quay của động cơ thông qua pin DIR
  • Điều khiển bước của động cơ thông qua pin STEP, mỗi xung là tương ứng với 1 bước ( hoặc vi bước)
  • Hai chân Sleep với Reset luôn nối với nhau

Mach-dieu-khien-DC-step-Arduino-uno-r3-5 DC Step giao tiếp Atmega

 

2. Hướng dẫn điều khiển động cơ bước DC Step giao tiếp Atmega bằng biến trở

Phần cứng

dieu-khien-dong-co-buoc-step-qua-a4988-giao-tiep-arduino-bang-bien-tro

Phần mềm

const int stepPin = 3;
const int dirPin = 4; 
int customDelay,customDelayMapped; // Defines variables

void setup() {
// Sets the two pins as Outputs
pinMode(stepPin,OUTPUT);
pinMode(dirPin,OUTPUT);

digitalWrite(dirPin,HIGH); //Enables the motor to move in a particular direction
}
void loop() {

customDelayMapped = speedUp(); // Gets custom delay values from the custom speedUp function
// Makes pules with custom delay, depending on the Potentiometer, from which the speed of the motor depends
digitalWrite(stepPin, HIGH);
delayMicroseconds(customDelayMapped);
digitalWrite(stepPin, LOW);
delayMicroseconds(customDelayMapped);
}
// Function for reading the Potentiometer
int speedUp() {
int customDelay = analogRead(A0); // Reads the potentiometer
int newCustom = map(customDelay, 0, 1023, 300,4000); // Convrests the read values of the potentiometer from 0 to 1023 into desireded delay values (300 to 4000)
return newCustom; 
}

3. Hoạt động của mạch điều khiển động cơ bước DC Step giao tiếp Atmega

Khi cấp điện hệ thống hoạt động, vi điều khiển hiển thị thông tin ban đầu. Lúc này vi điều khiển chờ tín hiệu từ nút nhấn hoặc biến trở đưa vào. Khi nhận tín hiệu vi điều khiển tính toán, xử lý dữ liệu sau đó điều khiển động cơ chạy dừng, quay thuận hoặc quay nghịch bằng nút nhấn, ngoài ra điều khiển tốc độ quay của động cơ bằng biến trở.

4. Cụ thể hoạt động của mạch điều khiển động cơ bước DC Step giao tiếp Atmega

Ngoài ra còn nhiều Phần và các môn khác

Đồ án điện tử, Lập trình vi điều khiển tổng hợp File đồ án – Phần 1
Mạch điện tử, Lập trình vi điều khiển tổng hợp File đồ án – Phần 2
Thiết kế mạch điện tử, Lập trình vi điều khiển tổng hợp File đồ án – Phần 3
Vi xử lý, Lập trình vi điều khiển Pic – 8051 – Avr – Phần 4
Tổng hợp File ĐỒ ÁN Điện tử cơ bản
Tổng hợp File ĐỒ ÁN Viễn thông
Tổng hợp File ĐỒ ÁN PLC
Tổng hợp File ĐỒ ÁN Cung cấp điện

Chúc các bạn thành công…!!!

Leave a Reply

chatzalo