Showing posts with label Motor. Show all posts
Showing posts with label Motor. Show all posts

Tuesday, May 26, 2015

Học lập trình vi điều khiển pic qua 21 bài thực hành

Posted by dientudieukhien at 1:57 AM 0 Comments
Qua 21 bài thực hành lập trình vi điều khiển pic này sẽ giúp bạn nắm bắt được cách viết chương trình trong Mikroc và nhiều thuật toán khác nhau, từ các bài học cơ bản này sẽ giúp bạn nâng cao kỹ năng lập trình trên vi điều khiển từ đó tạo được nền tản cho nhiều project phức tạp hơn.


Bài 1. Flashing an led

   Trong bài thực hành này bạn sẽ lập trình cho một led nhấp nháy bằng cách đảo trạng tháy logic của port, truy cập trang>>      

Bài 2. Lập trình với Button

   Ở bài 2 này chúng ta làm quen với nút ấn và cách lập trình để đọc trạng thái của một port và xuất dữ liệu ra một port, truy cập trang>>      

Bài 3. Đếm số nhị phân

    Bài này giúp bạn làm quen với số nhị phận 4 bit, mỗi lần button được ấn thì số đếm tăng 1 đơn vị, hiển thị trạng thái của số nhị phân qua 4 led được kết nối ở portc của vi điều khiển 16f688, truy cập trang>>      

Bài 4. Lập trình hiển thị dòng text ra LCD 16x2

    Trong bài này giúp bạn hiểu được cách hiển thị một dòng text lên Lcd, truy cập trang>>

Bài 5. Chuyển đổi Analog sang Digital (ADC)

    Qua bài học này bạn sẽ biết cách lập trình chuyển tính hiệu từ Analog sang Digital, truy cập trang>>

Bài 6. Điều khiển led 7 đoạn

    Khi bạn học xong bài này, bạn sẽ biết cách hiển thị dữ liệu trên led 7 đoạn (7 segments), truy cập trang>>

Bài 7. Điều khiển led 7 đoạn

    Ở bài này bạn sẽ học ngắt interrupt khi tràn Timer0, truy cập trang>>

Bài 8. Giao tiếp máy tính qua cổng RS232

    Trong bài này bạn sẽ học được cách lập trình cho vi điều khiển giao tiếp với máy tính thông qua cổng RS232, truy cập trang>>

Bài 9. Điều chế độ rộng xung (PWM)

    Bài này sẽ hướng dẫn bạn cách sử dụng CCP module để điều chế độ rộng xung PWM, truy cập trang>>

Bài 10. Điều khiển DC motor

   Bạn sẽ học cách điều khiển cho motor quay thuận, quay ngược và dừng hẳn thông qua 3 button, truy cập trang>>

Bài 11. Hiển thị số đếm từ 1 đến 9999 trên led 7 đoạn 

   Quét led 7 đoạn hiển thị số đếm từ 0 đến 9999, truy cập trang>>


Bài 12. Điều khiển led matrix

   Lập trình hiển thị một ký tự trên led matrix, truy cập trang>>

Bài 13. Write, read internal EEPROOM

  Ghi dữ liệu vào eeproom và đọc dữ liệu đó xuất ra lcd, truy cập trang>>

Bài 14. Lập trình truyền dữ liệu với giao thức I2C

  Truyền dữ liệu giữa các thiết bị thông qua giao thức I2C, truy cập trang>>

Bài 15. Chạy dòng text trên nhiều led matrix

  Cũng giống như ở bài 12 nhưng ở đây ta lập trình cho dòng text có thể chạy trên nhiều led matrix được ghép lại với nhau, truy cập trang>>

Bài 16. Hiểu rõ hơn về ngắt INTERRUPT

  Qua bài thực hành này sẽ giải thích cặn kẽ về ngắt interrupt trong vi điều khiển, truy cập trang>>

Bài 17. Chế độ Sleep và Wake up trên vi điều khiển

  Hiểu rõ hơn về hai trạng thái sleep và wake up trên vi điều khiển, truy cập trang>>

Bài 18. Đọc bàn phím và hiển thị kết quả

  Làm việc với keypad, trong bài này ta đọc dữ liệu được nhập từ bàn phiếm và hiển thị kết quả ra lcd, truy cập trang>>

Bài 19. Sound

  Sử dụng thư viện âm thanh trong mikroc để tạo ra những hiệu ứng âm thanh khi ấn phím, truy cập trang>>

Bài 20. GLCD

 Lập trình xuất dữ liệu từ text hoặc hình ảnh ra Graphic LCD, truy cập trang>>

Bài 21. Điều khiển servo motor

 Lập trình điều khiển động cơ servo, truy cập trang>>
nguồn bài viết từ http://embedded-lab.com/ 
Read More »

Friday, October 17, 2014

WARNING AND AUTOMATIC WATER PUMP

Posted by dientudieukhien at 9:57 PM 0 Comments

Cảnh báo và tự động bơm nước vào hồ

Hôm nay, mình rãnh nên ngồi viết ôn lại code bằng ngôn ngữ Mikroc, sẵn chia sẽ cùng các bạn.
Mô tả project: tên project như ở tiêu đề, mục đích là khi nước trong hồ cạn thì báo hiệu trên LCD và một led màu đỏ sáng, đồng thời bật máy bơm để bơm nước (trong project này mình chia làm 2 mức nước - Full, Empty), Khi mực nước trong hồ cạn hơn mức empty-có nghĩa sensor3 không còn ngập trong nước (mức logic ngõ ra của sensor3 là 1) thì led Empty sáng đồng thời báo ra lcd "EMPTY", máy bơm bắt đầu bơm, khi mực nước đã nâng cao, sensor3 đã ngập trong nước (mức logic ngõ ra của sensor3 là 0) thì led EMPTY tắt nhưng máy bơm vẫn bơm, LCD vẫn báo Empty. Khi nước đã bơm đầy hồ, sensor1 bị ngập trong nước (mức logic ra của sensor1 là 0) thì máy bơm ngừng bơm, LCD xuất FULL, đèn led FULL sáng, khi nước vơi dần do ta sử dụng thì máy bơm vẫn không bơm và LCD vẫn báo FULL cho đến khi ta sử dụng cạn nước trong hồ đến mức sensor3 thì vòng lập sẽ thực hiện lại. Để làm được việc này mình sử dụng pic 16f887 làm xử lí trung tâm, một LCD 16x2, một relay điều khiển đóng mở máy bơm và các led báo hiệu, sau đây là hình ảnh của ý tưởng.
Bạn nhìn hình trên: PortB0 đến B1 dùng để kết nối 3 sensor, PORTD dùng điều khiển LCD, PORTRD7 dùng điều khiển relay, PORTE0 đến E2 dùng điều khiển 3 led, các buton dùng để mô phỏng các sensor - khi SENSOR3 ở mức logic1 tức là mực nước đang Empty, SENSOR2 ở mức logic 0 tức nước đa được phân nửa bình, khi SENSOR1 ở mức logic0 tức mực nước đã đầy bình "FULL".

Ảnh:
Warning and automatic water pump
level water
Read More »

Thursday, July 3, 2014

Điều khiển tốc độ motor DC bằng điều chế PWM với pic16f877a - Control motor DC

Posted by dientudieukhien at 11:04 PM 2 Comments
Sau đây là một project điều khiển tốc độ motor dc bằng cách điều chế độ rộng xung.
CMU: pic 16f877a
Ngôn ngữ lập trình: mikroc Pro for Pic ver 6.4
Mô tả: Như hình ảnh bên dưới, trong projetc bạn có một RV1 để dùng điều chỉnh độ rộng xung và xuất ra trên pin RC2.
Một số hình ảnh của project:
Sơ đồ nguyên lý

Mô phỏng bằng Protues


Read More »

Monday, December 23, 2013

Điều khiển tốc độ DC motor sử dụng PWM với ATMEGA16 - DC Motor Speed Control using PWM

Posted by dientudieukhien at 1:19 PM 0 Comments
Ở Projects này sử dụng ATMEGA16 lái L298 để điều khiển DC motor. Tốc độ của DC motor được điều khiển bằng cách điều khiển độ rộng xung (PWM).
Ngôn ngữ lập trình Bascom , bạn có thể chuyển sang C dễ dàng.


Video:

|| Tải Project

source: avrprojects.info
Read More »

Tuesday, December 3, 2013

Điều khiển motor stepper - Stepper Motor controller

Posted by dientudieukhien at 7:26 PM 0 Comments
Read More »

Saturday, September 8, 2012

Lập trình cho dc motor bằng ngôn ngữ ASM và C

Posted by dientudieukhien at 7:06 PM 0 Comments
►Assembly programming
CODE:
L293D_A   equ P2.0          ;L293D A - Positive of Motor
L293D_B   equ P2.1          ;L293D B - Negative of Motor
L293D_E   equ P2.2          ;L293D E - Enable pin of IC

         org 0H
Main:
         acall rotate_f     ;Rotate motor forward
         acall delay        ;Let the motor rotate
         acall break        ;Stop the motor
         acall delay        ;Wait for some time
         acall rotate_b     ;Rotate motor backward
         acall delay        ;Let the motor rotate
         acall break        ;Stop the motor
         acall delay        ;Wait for some time
         sjmp  Main         ;Do this in loop
               
rotate_f:
         setb  L293D_A      ;Make Positive of motor 1
         clr   L293D_B      ;Make negative of motor 0
         setb  L293D_E      ;Enable to run the motor
         ret                ;Return from routine
       
rotate_b:
         clr   L293D_A      ;Make positive of motor 0
         setb  L293D_B      ;Make negative of motor 1
         setb  L293D_E      ;Enable to run the motor
         ret                ;Return from routine
       
break:
         clr   L293D_A      ;Make Positive of motor 0
         clr   L293D_B      ;Make negative of motor 0
         clr   L293D_E      ;Disable the o/p
         ret                ;Return from routine
       
delay:                      ;Some Delay
         mov   r7,#20H
back:    mov   r6,#FFH
back1:   mov   r5,#FFH
here:    djnz  r5, here
         djnz  r6, back1
         djnz  r7, back
         ret



►C programming
CODE:
#include <AT89X51.H>#define L293D_A P2_0         //Positive of motor
#define L293D_B P2_1         //Negative of motor
#define L293D_E P2_2         //Enable of L293D

// Function Prototypes
void rotate_f(void);         //Forward run funtion
void rotate_b(void);         //Backward run function
void breaks(void);           //Motor stop function
void delay(void);            //Some delay

void main(){                 //Our main function
    while(1){                //Infinite loop
                rotate_f();          //Run forward
                delay();             //Some delay
                breaks();            //Stop
                delay();             //Some delay
                rotate_b();          //Run Backwards
                delay();             //Some delay
                breaks();            //Stop
                delay();             //Some delay
        }                        //Do this infinitely
}

void rotate_f(){
        L293D_A = 1;             //Make positive of motor 1
        L293D_B = 0;             //Make negative of motor 0
        L293D_E = 1;             //Enable L293D
}

void rotate_b(){
        L293D_A = 0;             //Make positive of motor 0
        L293D_B = 1;             //Make negative of motor 1
        L293D_E = 1;             //Enable L293D
}

void breaks(){
        L293D_A = 0;             //Make positive of motor 0
        L293D_B = 0;             //Make negative of motor 0
        L293D_E = 0;             //Disable L293D
}

void delay(){                //Some delay...
    unsigned char i,j,k;
    for(i=0;i<0x20;i++)
        for(j=0;j<255;j++)
                for(k=0;k<255;k++);

Nguồn: 8051projects.net 
Read More »

Cầu -H dùng L293D

Posted by dientudieukhien at 7:04 PM 0 Comments
L293D is a dual H-Bridge motor driver, So with one IC we can interface two DC motors which can be controlled in both clockwise and counter clockwise direction and if you have motor with fix direction of motion the you can make use of all the four I/Os to connect up to four DC motors. L293D has output current of 600mA and peak output current of 1.2A per channel. Moreover for protection of circuit from back EMF ouput diodes are included within the IC. The output supply (VCC2) has a wide range from 4.5V to 36V, which has made L293D a best choice for DC motor driver.

A simple schematic for interfacing a DC motor using L293D is shown below.

L293D Dual H-Bridge Motor Driver
As you can see in the circuit, three pins are needed for interfacing a DC motor (A, B, Enable). If you want the o/p to be enabled completely then you can connect Enable to VCC and only 2 pins needed from controller to make the motor work.


As per the truth mentioned in the image above its fairly simple to program the microcontroller. Its also clear from the truth table of BJT circuit and L293D the programming will be same for both of them, just keeping in mind the allowed combinations of A and B. We will discuss about programming in C as well as assembly for running motor with the help of a microcontroller.
Nguồn: 8051projects.net 
Read More »

Cầu H-BJT

Posted by dientudieukhien at 7:03 PM 0 Comments
►BJT H-Bridge

A simple H-bridge can be made with the help of Power BJTs like TIP31 and TIP32. An example and a working demo of this circuit is shown in the figure below.
►BJT H-Bridge Demo




Nguồn: 8051projects.net
Read More »

    tab

back to top