Hiện tại mình đang nghiên cứu động cơ bước. Mình dùng Atmega16. Counter0 mình đọc tín hiệu Encoder, Time1 mình dùng để phát xxung, Timer2 mình dùng để định thời đọc số xung mà Counter0 đọc được. Sau khi mình tính toán được tôc độ của encoder thì mình sẽ đi điều khiển xung cho con động cơ bước, nhưng mừ mình lại muốn khống chế số xung phát ra để động cơ bước chạy được 1 quãng đường thì phải dừng lại. Mình đang bí chỗ này, ko biết có cách nào ko. Mong mọi người giúp đỡ
khống chế số lượng xung điều khiển động cơ bước
Collapse
X
-
Tags: None
-
Mình ko biết có cách nào hay hơn ko, lúc trước cần khống chế số xung phát ra thì đơn giản nhất là chọn 1 port làm output bất kì rồi lập trình On /Off thông thường để tạo xung. Dùng timer thì chuyên nghiệp hơn và bắt nó dừng ngay đúng số xung mình cần thì dùng cái ngắt của chính timer đó để đếm xung luôn là OK.Làm sao mà bạn dám nói là không làm được khi bạn chưa từng thử một lần nào.
Ngay cả khi bạn đã làm 1 lần và thất bại bạn cũng không có quyền nói là không làm được vì bạn chưa làm lần thứ 2,3...
-
Tính toán làm gì cho nó cao siêu, học làm gì nhiều cho đầu to mắt cận .Nguyên văn bởi hoang_tuan Xem bài viếtHiện tại mình đang nghiên cứu động cơ bước. Mình dùng Atmega16. Counter0 mình đọc tín hiệu Encoder, Time1 mình dùng để phát xxung, Timer2 mình dùng để định thời đọc số xung mà Counter0 đọc được. Sau khi mình tính toán được tôc độ của encoder thì mình sẽ đi điều khiển xung cho con động cơ bước, nhưng mừ mình lại muốn khống chế số xung phát ra để động cơ bước chạy được 1 quãng đường thì phải dừng lại. Mình đang bí chỗ này, ko biết có cách nào ko. Mong mọi người giúp đỡ
Nghiên cứu gì ở cái motor bước quá đơn giản ? ... Motor bước phổ thông mỗi bước của motor quay 1,8 độ ... quay 1 vòng tròn 360 độ thì cần 200 bước .
Từ góc quay tương ứng với chu vi trục ( quả lô ) thì tính ra số bước cần là quá đơn giản . Ví dụ chu vi quả lô khi gắn với trục motor là 20cm, thì cứ mỗi xung nó đi được quãng đường 20 /200 = 0,1cm ............ muốn đi được quãng đường X thì nó cần Y xung ( toán của lớp 2-3 ).
--- Quả lô là kiểu tính trực tiếp, trong thực tế nếu là bánh răng, hộp số .v..v thì vẫn tính tỉ lệ hộp số, bước/ quãng đường theo cách tương tự .... mà chẳng cần encoder làm gì cho nó phí công dụng của motor bước.
Nếu cần thiết phải có encoder thì cũng đếm encoder rồi so sánh với số xung xem có bị thiếu/ thừa không ( thường bị thiếu ( do trượt lực nếu motor bước quá yếu ) thì ta cấp thêm xung )) ... trong thực tế nếu motor bước quá yếu thì người ta thay bằng cái to hơn, khỏe hơn chứ chẳng mấy thằng ... làm encoder như hệ SERVO. ( trừ những trường hợp quá đặc biệt ).Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
-
bác queduong hiểu sai ý e rùi, không phải là e muốn tính toán 1 bước thì đi được bao nhiêu cái này chắc ai cũng tính đc mừ. Cái e hỏi là tính được ra số xung rùi vd là 500xung chẳng hạn thì làm cách nào dùng PWM của VDK mừ phát ra đúng số xung như vậy. Cái Encoder của e là đo vận tốc của 1 hệ truyền động khác, động cơ bước điều khiển 1 hệ truyền động khác. Bài toán là điều khiển cái hệ truyền động động cơ bước đó sao cho nó chuyển động tương đối so với hệ có gắn encoder kia ( có thể nhanh hay chậm hay bằng thì tùy theo người vận hành đặt giá trị tương đối)
- Cảm ơn bạn hoahauvn2 nhé . hum qua vừa lên diễn đàn hỏi x thì ngồi đọc code tự nhiên nhìn vào cái ngắt của nó mới chợt nghĩ tới, ngày trước ko quan tâm tới cái ngắt này lém vì nó gán mỗi giá trị đểm ban đầu, mừ mình đã gán nó bằng 1 biến và biến đó mình tính toán ở main rùi.
Comment
-
Vậy PWM là cái gì vậy ?Nguyên văn bởi hoang_tuan Xem bài viếtbác queduong hiểu sai ý e rùi, không phải là e muốn tính toán 1 bước thì đi được bao nhiêu cái này chắc ai cũng tính đc mừ. Cái e hỏi là tính được ra số xung rùi vd là 500xung chẳng hạn thì làm cách nào dùng PWM của VDK mừ phát ra đúng số xung như vậy. Cái Encoder của e là đo vận tốc của 1 hệ truyền động khác, động cơ bước điều khiển 1 hệ truyền động khác. Bài toán là điều khiển cái hệ truyền động động cơ bước đó sao cho nó chuyển động tương đối so với hệ có gắn encoder kia ( có thể nhanh hay chậm hay bằng thì tùy theo người vận hành đặt giá trị tương đối)
- Cảm ơn bạn hoahauvn2 nhé . hum qua vừa lên diễn đàn hỏi x thì ngồi đọc code tự nhiên nhìn vào cái ngắt của nó mới chợt nghĩ tới, ngày trước ko quan tâm tới cái ngắt này lém vì nó gán mỗi giá trị đểm ban đầu, mừ mình đã gán nó bằng 1 biến và biến đó mình tính toán ở main rùi.
soxung = encoder_read();
// ==> phát lại số xung cho motor bước
for(i=0; i<soxung; i++)
{
PIN_out =1;
Delay_us(500);
PIN_out =0;
Delay_us(500);
}
Xong !Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
-
chất lượng hơn dkhien có profile tăng tốc giảm tốc có thể tham khảo ở đây
http://www.atmel.com/images/doc8017.pdf
Generate stepper-motor speed profiles in real time | Embedded
Comment
-
Dùng PWM hay hơn là viết lệnh như của bác Queduong ah.
Bị gà eng nhưng đọc qua tài liệu của bác nhatson thấy nó giống phần khai báo phát xung PTO của PLC
Thank u nhatson nhé
Comment
-
Cái này có hai cách:
Cách 1: PWM có sinh ra ngắt tràn và ngắt so sánh, sử dụng 1 trong 2 ngắt ngắt trên, trong vector ngắt tăng couter, khi đủ thì disable pwm
Cách 2: nối chân output của PWM với 1 chân dùng ngắt cạnh lên (hoặc xuống), trong vector ngắt làm giống như trên
@xin thứ lỗi, lâu quá không chơi món này nên không nhớ rõ lắm, mà hình như nó dzậy đó
Comment
-
Cậu không hiểu được bản chất PWM là cái gì ... nên thiếu sáng tạo mà thôi.Nguyên văn bởi hoang_tuan Xem bài viếtDùng PWM hay hơn là viết lệnh như của bác Queduong ah.
Bị gà eng nhưng đọc qua tài liệu của bác nhatson thấy nó giống phần khai báo phát xung PTO của PLC
Thank u nhatson nhéModule RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
-
pp linear cũng có khiếm khuyết cao cấp hơn thì bạn có thể nghiên cứu gia tốc kiểu s shape
tạo xung dkhien step em thấy hay đề cập 2 pán,
1. là step/time
2. là time/step
more
http://gamedev.stackexchange.com/que...able-time-step
hơi bị lạc đề so với yêu cầu chủ theard, dkhien bao nhiêu xung thì sau khi phát 1 xung ta trừ đi số xung phải phát thôi ah
b.rLast edited by nhatson.elec; 07-11-2014, 11:10.
Comment
-
Bài viết mới nhất
Collapse
-
-
Trả lời cho TCL - Tập hợp các vấn đề về màn hình màu TCLbởi dtvankhoeBác nào có file rom này cho em xin em cảm ơn ạ TCL L43S6500 – TPD.RT2841.PB772
-
Channel: Điện tử truyền hình
30-08-2026, 21:08 -
-
bởi domar123Sự kết hợp giữa vi xử lý siêu cấp AMD Ryzen Threadripper 9960X / 9970X cùng card đồ họa Radeon RX 9060 XT / RX 9070 XT 16GB mang lại một cỗ máy "all-in-one" đúng nghĩa. Đây là cấu hình đáp ứng trọn vẹn cho những người dùng cần một hệ...
-
Channel: Đánh giá sản phẩm DTVN
27-08-2026, 11:43 -

Comment