Monday, August 20, 2012

Điều khiển đèn LED 7 đoạn


1. Mục đích 

Giúp người đọc biết cách hiển thị số trên đèn LED bảy đoạn. (Hiển thị số lần nhấn nút nhấn). 

2. Linh kiện cần thiết

- Arduino UNO                 (x1)
- LED 7 đoạn                   (x1)
- Nút nhấn                        (x1)
- Dây nối
- Breadboard                    (x1)
- Điện trở 330 Ohm          (x1)

3. Tóm tắt

- Tìm hiểu cấu trúc và cách hiển thị LED 7 đoạn
- Kết nối mạch
- Viết code hiển thị số lần nhất nút ra trên LED 7 đoạn 

4. Nội dung

a. Tìm hiểu led 7 đoạn

Vì led 7 đoạn chứa bên trong nó các led đơn, do đó khi kết nối cần đảm bảo dòng qua mỗi led đơn trong khoảng 10mA-20mA để bảo vệ led. Nếu kết nối với nguồn 5V có thể hạn dòng bằng điện trở 330Ω trước các chân nhận tín hiệu điều khiển.
  
Các điện trở 330Ω là các điện trở bên ngoài được kết nối để giới hạn dòng điện qua led nếu led 7 đoạn được nối với nguồn 5V.
     
Chân nhận tín hiệu a điều khiển led a sáng tắt, ngõ vào b để điều khiển led b. Tương tự với các chân và các led còn lại.

Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Anode chung (các led đơn sáng ở mức 0):

Số hiển thị trên led 7 đoạn
Mã hiển thị led 7 đoạn dạng nhị phân
Mã hiển thị led 7 đoạn dạng thập lục phân

h g f e d c b a

0
1 1 0 0 0 0 0 0
C0
1
1 1 1 1 1 0 0 1
F9
2
1 0 1 0 0 1 0 0
A4
3
1 0 1 1 0 0 0 0
B0
4
1 0 0 1 1 0 0 1
99
5
1 0 0 1 0 0 1 0
92
6
1 1 0 0 0 0 1 0
82
7
1 1 1 1 1 0 0 0
F8
8
1 0 0 0 0 0 0 0
80
9
1 0 0 1 0 0 0 0
90
A
1 0 0 0 1 0 0 0
88
B
1 0 0 0 0 0 1 1
83
C
1 1 0 0 0 1 1 0
C6
D
1 0 1 0 0 0 0 1
A1
E
1 0 0 0 0 1 1 0
86
F
 1 0 0 0 1 1 1 0
8E
-
1 0 1 1 1 1 1 1
BF


b. Kết nối



Hình trên chỉ mang tính tham khảo với một LED 7 đoạn.



c. Nhập đoạn code

int ledPins[] = {3,4,5,6,7,8,9,10};  //hien thi 7 doan cua 1 led (3-9=a-g), 10=dp
int buttonPin = 2;  //nhan tin hieu tu nut nhan
int i=0;
const byte numberal[10] = {
        B11111100,  // 0
        B01100000,  // 1
        B11011010,  // 2
        B11110010,  // 3
        B01100110,  // 4
        B10110110,  // 5
        B10111110,  // 6
        B11100000,  // 7
        B11111110,  // 8
        B11100110,  // 9
    };
   
    const int segmentPins[8] = {10,9,8,7,6,5,4,3};

void setup()
{
  //thiet lap chuc nang cac chan
  for (int thisLed = 0; thisLed < 8; thisLed++)
  {
    pinMode(ledPins[thisLed], OUTPUT);
    digitalWrite(ledPins[thisLed], HIGH);
  }
    pinMode(buttonPin, INPUT);
    attachInterrupt(0, tang, RISING);
}

void loop() {}

void tang(){
 
  if (i<9)
    i++;
  else
    i=0;
  Sodawrite(i);
}

void Sodawrite(int number) {
    boolean isBitSet;
   
    for(int segment=0; segment < 8; segment++) {
        if(number < 0 || number > 9) {
            isBitSet = 0;
        }
        else{
            isBitSet = bitRead(numberal[number], segment);
        }
        isBitSet = ! isBitSet;
        digitalWrite(segmentPins[segment], isBitSet);
    }


5. Bài học rút ra

Đèn LED 7 đoạn là một linh kiện tương đối phổ biến dùng để hiển thị thông tin cho người dùng. Sau bài học này chúng ta đã biết cách điều khiển LED 7 đoạn để hiển thị số lần nhấn nút nhấn.

Nội dung cơ bản:
     - Đọc tín hiệu nút nhấn dùng interrupt
     - Điều khiển hiển thị LED bảy đoạn


Thursday, August 16, 2012

Điều khiển độ sáng đèn LED bằng biến trở



1. Mục đích 

Giúp người học biết cách đọc tín hiệu ngõ vào dạng analog và điều khiển độ sáng đèn LED tương ứng với giá trị điện thế của tín hiệu analog của biến trở. 

2. Linh kiện cần thiết 

- Bo mạch Arduino UNO (x1)
- Breadboard                     (x1)
- Biến trở                          (x1)
- LED                                (x1)
- Dây nối 

3. Tóm tắt 

- Tìm hiểu , xác định các chân của biến trở
- Kết nối biến trở vào breadboard, mạch Arduino
- Viết code , chạy chương trình 

4. Nội dung 

a.  Xác đinh chân biến trở


Biến trở là linh kiện có thể thay đổi điện trở được nhờ nút xoay. Mỗi biến trở có 3 chân. Điện trở giữa hai chân ngoài cùng có giá trị không đổi. Điện trở giữa chân ngoài và chân giữa có thể thay đổi nhờ vặn nút xoay. 

b.    Kết nối



 Schematic:

c.      Code

int sensorPin = A0;    // select the input pin for the potentiometer
int sensorValue = 0;  // variable to store the value coming from the sensor
int ledPin1 = 11;

void setup() {
    // declare the ledPin as an OUTPUT:
    pinMode(ledPin1, OUTPUT);  
}
void loop()
{
     // read the value from the sensor:
     sensorValue = analogRead(sensorPin);    // turn the ledPin on
     analogWrite (ledPin1, sensorValue);
     delay (30); 
}

Hình ảnh thực tế

 

5.      Rút ra bài học 

Qua bài thực hành này chúng ta đã học được các nội dung sau:

     - Biết cách đọc tín hiệu analog
     - Xuất tín hiệu PWM để điều khiển độ sáng của LED

Với những nội dung này bạn đã có thể đọc các cảm biến dạng analog như nhiệt độ, độ ẩm...và điều khiển động cơ servo dùng PWM.

   


Điều khiển đóng ngắt đèn LED bằng nút nhấn


1.      Mục đích 
Giúp người học biết cách đọc tín hiệu ngõ vào dạng digital từ nút nhấn và điều khiển đóng ngắt đèn LED tương ứng. 

2.      Linh kiện cần thiết 
·         Board mạch Arduino Uno  (x1)
·         Breadboard                         (x1)
·         Nút nhấn                            (x1)      
·         Điện trở 220 Ohm              (x1)
·         Dây nối  

3.      Tóm tắt 
- Kết nối phần cứng
- Viết chương trình nhấn nút button để tắt mở đèn led 

4.      Nội dung 
a.      Kết nối

 SCHEMATIC
 
a.      Code

const int buttonPin = 2;     // the number of the pushbutton pin 
const int ledPin =  13;      // điều khiển led 13 

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status 

void setup() {
    pinMode(ledPin, OUTPUT);      
    pinMode(buttonPin, INPUT);     
}
void loop(){

    buttonState = digitalRead(buttonPin);// đọc trạng thái ngõ vào 
    if (buttonState == HIGH)
    {     

      digitalWrite(ledPin, HIGH); //đèn led 13 on nếu ngõ vào là mức áp cao 
    }
    else }
      digitalWrite(ledPin, LOW); // đèn led 13 off nếu ngõ vào là mức áp thấp 

    }  
}

MẠCH THỰC TẾ

 

5.      Rút ra bài học

 Qua bài thực hành này chúng ta đã học được các nội dung cơ bản sau: 
·         Kết nối mạch ngõ vào digital đơn giản (nút nhấn) 
·         Đọc trạng thái ngõ vào digital 
·         Xuất tín hiệu digital điều khiển đèn LED tương ứng với trạng thái của nút nhấn

Wednesday, August 15, 2012

ARDUINO ĐIỀU KHIỂN 2 LED VỚI HAI TẦN SỐ KHÁC NHAU






1. Mục đích 

Giúp người học biết cách kết nối thử nghiệm mạch (đèn LED) trên breadboard và điều khiển nhấp nháy hai đèn LED với hai tần số khác nhau.

2. Linh kiện cần thiết

- Arduino UNO        (x1)
- Breadboard            (x1)
- Điện trở 220 Ohm (x2)
- LED                       (x2)


3. Tóm tắt

- Kết nối các linh kiện với mạch arduino
- Kết nối arduino vơi máy tính (qua cổng USB)
- Viết chương trình
- Biên dịch kiểm  tra lỗi và nạp vào kit arduino

4. Nội dung
a. Kết nối

Nối các linh kiện như hình vẽ sau:
 

b.Viết code trong Arduino IDE
Hai led1 và led2 lần lượt nhấp nháy với chu kì 4s và 2s
GIẢN ĐỒ XUNG
LED 1

LED 2         



Nhập đoạn code sau:

// điều khiển nhấp nháy hai led với hai tấn số khác nhau
int led1 = 9;
int led2 = 8;
void setup() {               
  pinMode(led1, OUTPUT);
 pinMode(led2, OUTPUT);    
}
// the loop routine runs over and over again forever:
void loop() {

   digitalWrite(led1, LOW);   
   digitalWrite(led2, LOW);
   delay(1000);                // wait for a second
   digitalWrite   (led2, HIGH);    
   delay(1000);               // wait for a second
   digitalWrite(led1, HIGH);
   digitalWrite(led2, LOW);
   delay(1000);               // wait for a second
   digitalWrite(led2, HIGH);
   delay(1000);
   digitalWrite(led1, LOW);
   digitalWrite(led2, LOW);
   delay (1000);    
 }

Sau đó nhấn nút verify để biên dịch chương trình và kiểm tra lỗi.Nhấn tiếp nút upload để nạp chương trình cho kit arduino.
 
5. Rút ra bài học 

Sau bài này các bạn sẽ biết cách: 
·         viết một đoạn code cơ  bản trong Arduino IDE 
·         vẽ giản đồ xung 
·         xuất xung ngõ ra điều khiển ngoại vi đơn giản theo sơ đồ xung có sẵn



Giới thiệu về Arduino





1. Mục đích  

- Giúp người học làm quen với Arduino 
- Cách cài đặt chương trình và kết nối với board Arduino Uno
- Cấu trúc chương trình Arduino
- Viết một chương trình đơn giản, điều khiển nhấp nháy LED trên board (LED 13) 

2. Linh kiện cần thiết  
  
- Máy tính
- Board mạch Arduino Uno
- Cáp USB 

    3. Tóm tắt 
      
      - Download và cài đặt Arduino IDE (chương trình dùng để lập trình Arduino)
·         - Cài đặt driver USB 
·         - Tìm hiểu các thuộc tính của Arduino IDE 
·         - Viết chương trình nhấp nháy LED 13 
  
    4. Nội dung
a 
   

     a. Download và cài đặt Arduino IDE

Arduino là các bo mạch vi điều khiển rất đa năng, có thể được dùng vào rất nhiều ứng dụng từ đơn giản đến phức tạp. Để có thể lập trình cho bo Arduino, trước hết ta cần download và cài môi trường viết chương trình cho Arduino.

Vào mục Download trên website: http://www.arduino.cc/
 
Sau khi nhấp download, trang sau đây sẽ xuất hiện

Bạn chọn link download tùy theo hệ điều hành đang được sử dụng. Sau khi tải file về máy, giải nén và cài đặt chương trình. Click vào icon trên desktop như như hình bên dưới để khởi động chương trình.  

b. Cài đặt USB drivers

Phần trình bày sau chỉ dùng cho người dùng Windows. Người sử dụng hệ điều hành Mac thì không cần phải cài driver cho USB.

- Kết nối bo Arduino với máy tính, và để máy tính tự động cài đặt driver USB. Tuy nhiên việc tự động cài driver cuối cùng sẽ không thành công.

- Mở Device Manager của Windows trên Control Panel

- Ở mục Ports (COM & LPT) bạn sẽ thấy mục Arduino UNO (COMxx)

- Nhấp phải vào mục Arduino UNO (COMxx) và chọn Update Driver Software.

- Trên cửa sổ hiện ra, chọn Browse my computer for driver software 
 

- Trên cửa sổ hiện ra, click Browse và chọn file "ArduinoUNO.inf" ở thư mục Drivers trong thư mục Arduino đã cài. 


c. Tìm hiểu môi trường arduino

 

Môi trường lập trình của Arduino có giao diện rất đơn giản, gồm có các menu, thanh toolbar và phần soạn chương trình. Chương trình điều khiển Arduino được gọi là "sketch".

Trong menu File\Examples có rất nhiều chương trình ví dụ. Một trong những chương trình đơn giản nhất để thử nghiệm bo Arduino là "Blink" trong File\Examples\01.Basics. Chương trình này chỉ làm nhấp nháy đèn LED trên bo (nối với ngõ 13). 

d. chương trinh điều khiển LED 13 

/* Nhấp nháy led với chu kì 2 giây, 1 giây tắt , 1 giây sáng */

// Pin 13 được kết nối với 1 con  led
// đặt cho nó một tên 
int led = 13; 
// chương trình con setup chạy một lần khi bắt đầu hoặc nhấn reset 

void setup()
{                

   // thiết lập ngõ ra digital 
   pinMode(led, OUTPUT);  
   
} 

// vòng lặp chạy vô tận 
void loop() 
{
   digitalWrite(led, HIGH);   //led sang (mức áp cao) 
   delay(1000);               // chờ một giây 
   digitalWrite(led, LOW);    // tắt led bằng cách hạ mức áp xuông mức thấp 
   delay(1000);               // chờ một giây 
}


e. Cấu trúc một chương trình Arduino

Qua ví dụ trên ta có thể thấy cấu trúc của một chương trình Arduino gồm có các phần sau:

Phần 1:  Định nghĩa biến và các const khác

int led = 13; 

Phần 2: Setup

Phần này chỉ được gọi một lần duy nhất sau khi chạy chương trình trên Arduino. Nhiệm vụ của nó là gán các giá trị ban đầu cho các biến, và các lệnh setup khác như định nghĩa ngõ vào/ra hoặc setup thông số cho cổng serial v.v...

void setup()
{                

   // thiết lập ngõ ra digital 
   pinMode(led, OUTPUT);  
   
} 


Phần 3: Vòng lặp chính loop

Đây là phần chính của chương trình. Tất cả nội dung trong phần này sẽ được lập lại đến khi tắt nguồn bo Arduino. 
  
void loop() 
{
   digitalWrite(led, HIGH);   //led sang (mức áp cao) 
   delay(1000);               // chờ một giây 
   digitalWrite(led, LOW);    // tắt led bằng cách hạ mức áp xuông mức thấp 
   delay(1000);               // chờ một giây 
}

f. Compile và Upload chương trình lên bo

- Chọn loại bo (ví dụ Arduino Uno) ở menu Tools\Boards\Arduino 
- Chọn cổng COM ở menu Tools\Serial Port
- Nhấn nút Upload trên thanh toolbar để bắt đầu compile và upload chương trình lên bo

   
5. Rút ra bài học 

Trong bài giới thiệu này bạn đọc đã được giới thiệu các nội dung sau:
   - Cách cài chương trình Arduino IDE và driver cho USB
   - Cấu trúc một chương trình Arduino
   - Viết và upload một chương trình đơn giản lên bo Arduino để làm nhấp nháy đèn LED trên bo.