Bài đăng nổi bật

Cảm biến siêu âm HC-SR04 kết nối với Arduino

Thứ Tư, 24 tháng 2, 2016

Led 7 đoạn hiển thị số khi nhấn nút nhấn

Chào các bạn, hôm nay mình xin giới thiệu về led 7 đoạn
Led 7 đoạn là loại led có hình số 8 được ghép lại từ 7 đoạn thẳng, led 7 có nhiều tác dụng khác nhau, có thể dùng làm đồng hồ đêm ngược, đếm thời gian, đồng hồ vạn niên, hoặc đơn thuần chỉ để hiển thị số.
Sau đây là phần kết nối Led 7 đoạn với arduino uno, dùng nút nhấn
Nguyên lí hoạt động: sau khi đã lắp mạch hoàng chỉnh, đổ code vào arduino, led 7 đoạn hiển thị 0, khi ta nhấn button 1 lần, thì led hiển thị 1, cứ thế sau mỗi lần nhấn led sẽ tăng 1 số đến 9, nhấn lần 10 thì led hiển thị 0, và quay lại từ đầu

Phần cứng
- Arduino uno r3
- 1 led 7 đoạn

- 1 nút nhấn 4 chân (button)

- 1 breadboard
- 2 điện trở
- Dây cắm
Sơ đồ nối dây

code lập trình
// Đối với Led7 đơn chúng ta sẽ không sử dụng thư viện SevSeg như Led 7 tứ
const int segmentPins[8] = {6,10,9,3,4,5,7,8};  //quản lý việc hiển thị LED 7 đoạn DP,G-A (dấu chấm)

int buttonPin = 2;  // khai báo chân digital kết nối đến button

int i=0;

const byte numberal[10] = { // Chúng ta sẽ dùng kiểu mảng để khai báo 9 trạng thái của led (0-9) bằng mã nhị phân
        B11111100,  // Quy ước 1 sáng 0 tắt => các vị trí F-A sẽ sáng, G tắt, DP tắt. Led hiển thị số 0
        B01100000,  // tương tự với mã này ta sẽ được số 1
        B11011010,  // 2
        B11110010,  // 3
        B01100110,  // 4
        B10110110,  // 5
        B10111110,  // 6
        B11100000,  // 7
        B11111110,  // 8
        B11100110,  // 9
};
void setup() {   //thiết lập các chức năng chân

  for (int vitri = 0; vitri < 8; vitri++)   {
    pinMode(segmentPins[vitri], OUTPUT);
    digitalWrite(segmentPins[vitri], HIGH); 
  }
 
  pinMode(buttonPin, INPUT); // PinMode để nhận tín hiệu đầu vào từ Button

  attachInterrupt(0, tang, RISING); // Thêm một Interrupt tại chân digital 2
  // Tham khảo thêm tại http://arduino.vn/reference/attachinterrupt
 
  Serial.begin(9600); // Bật Serial ở mức baudrate 9600
 
  Sodawrite(0); //Đầu tiên là xuất số 0
}

void loop() {}

void tang(){    
  //Chỉ đếm từ 0 --> 9

Chủ Nhật, 21 tháng 2, 2016

Cảm biến mưa dùng arduino

Chào các bạn...hôm nay mình xin giới thiệu về cảm biến mưa kết nối với arduino uno, Cảm biến mưa là loại cảm biến phát hiện mưa, hoạt động tựa như da người
cảm biến mưa gồm 2 phần:
- board cảm biến dùng để cảm nhận nước mưa, được đặt ngoài trời
- bộ điều chình cần được che khuất
Thông số
- Điện áp: 5V
- Có 2 led đỏ, 1 báo nguồn, 2 báo có mưa
- Hoạt động dựa trên nguyên lý: khi không có nước trên board thì đèn trên cảm biến k sáng, và nước rơi vào tạo ra môi trường dẫn điện, đèn đỏ ở cảm biến sáng
Phần cứng
-         -  Arduino uno
-         - 1 module cảm biến mưa


Sơ đồ nối chân
Arduino-----Cảm biến
GND----------GND
VCC------------5V
D0--------------~6
Các thiết bị đều có thể mua trên  http://codientuvina.com/ 
Sau khi đổ code lập trình vảo phần mềm arduino, ta có thể xem tín hiệu báo bằng đèn cảm biến, hoặc vảo tools-serial monitor
Sau đây là video về phần kiểm tra cảm biến mưa: https://www.youtube.com/watch?v=a1Zl9HCwBeo&feature=youtu.be


Code lập trình
int rainSensor = 6; // Chân tín hiệu cảm biến mưa ở chân digital 6 (arduino)
void setup() {
  pinMode(rainSensor,INPUT);// Đặt chân cảm biến mưa là INPUT, vì tín hiệu sẽ được truyền đến cho Arduino
  Serial.begin(9600);// Khởi động Serial ở baudrate 9600
  Serial.println("Da khoi dong xong");
}

void loop() {
  int value = digitalRead(rainSensor);//Đọc tín hiệu cảm biến mưa
  if (value == HIGH) { // Cảm biến đang không mưa
    Serial.println("Dang khong mua");
  } else {
    Serial.println("Dang mua");
  }
  delay(1000); // Đợi 1 tí cho lần kiểm tra tiếp theo. Bạn hãy tham khảo bài "Viết chương trình không dùng làm delay" trên Arduino.VN để kết hợp đoạn code này và cả chương trình của bạn
}

Thứ Tư, 17 tháng 2, 2016

Cảm biến siêu âm HC-SR04 kết nối với Arduino

Chào các bạn, hôm này mình xin giới thiệu về sản phẩm cảm biến siêu âm đo khoảng cách. Cảm biến này có tác dụng đo khoảng cách vật sau đó hiển thị lên màn hình LCD, giúp ta biết được khoảng cách với vật
Nguyên lý hoạt động : cảm biến siêu âm SR04 hoạt động bằng cách phát 1 tín hiệu siêu âm (tần số 40Khz) và bắt đầu đếm thời gian nhận được tín hiệu phản hồi khi phát hiện vật cản
Khoảng cách do cảm biến siêu âm SR-04 được tính từ tốc độ và thời gian phản hồi.


Phần cứng
1.     Arduino uno
2.     Siêu âm HC-SR04
Cảm biến này được sử dụng nhiều vì rẽ và chính xác
Nguồn làm việc: 5V
Dòng tiêu thụ : nhỏ hơn 2mA
Tín hiệu đầu ra: xung HIGH (5V) và LOW (0V)
Khoảng cách đo: 2cm - 300cm (3 mét)
Độ chính xác: 0.5cm
3.     Màn hình LCD 16x2
4.     1 breadboard
5.    Dây nối
6. Biến trở để điều chỉnh lcd
*Tất cả các thiết bị có bán trên codientuvina.com, các bạn có thể vào đường link http://codientuvina.com/ 
Cách lắp mạch
- Cách nối dây
Cảm biến------Arduino
GND--------------GND
UOT--------------
TRIG-------------11
ECHO------------12
VCC--------------VCC

LCD----------------Arduino
D4---------------7
D5---------------6
D6---------------5
D7---------------4
Vss-------------5v (trái biến trở)
Vdd-------------GND (phải biến trở)
V0---------------chân giữa của biến trở
Rs------------------9
Rw-----------------5V

E-------------------8
Sau đây là phần code lập trình cho cảm biến
1#include <LiquidCrystal.h>
const int trig = 11;     // chân trig của HC-SR0
const int echo = 12;     // chân echo của HC-
LiquidCrystal lcd(9  , 8, 7, 6, 5, 4);

void setup()
{
    lcd.begin(16, 2);   
    pinMode(trig,OUTPUT);   // chân trig sẽ phát tín hiệu
    pinMode(echo,INPUT);    // chân echo sẽ nhận tín hiệu
}

void loop()
{  
    lcd.setCursor(0, 1);
    unsigned long duration; // biến đo thời gian
    int distance;           // biến lưu khoảng cách
   
    /* Phát xung từ chân trig */
    digitalWrite(trig,0);   // tắt chân trig
    delayMicroseconds(2);
    digitalWrite(trig,1);   // phát xung từ chân trig
    delayMicroseconds(5);   // xung có độ dài 5 microSeconds
    digitalWrite(trig,0);   // tắt chân trig
   
    /* Tính toán thời gian */
    // Đo độ rộng xung HIGH ở chân echo.
    duration = pulseIn(echo,HIGH); 
    // Tính khoảng cách đến vật.
    distance = int(duration/2/29.412);
   
    /* In kết quả ra Serial Monitor */
    lcd.print(distance);
    lcd.println(" cm "); 
    delay(1000);
}