Results for "button"
Arduino giao tiếp với Button (phần 3):Một nút nhấn điều khiển 2 led đơn theo từng chế độ

Nội dung

  • Sau đây là ví dụ về điều khiển 2 led đơn bằng 1 nút nhấn.

  • Ở chế độ này thì gồm có 4 thao tác khác nhau. Ban đầu ở chế độ 1 chưa nhấn gì thì cả 2 led tắt, ở chế độ 2 khi nhấn nút led 1 sáng/led 2 tắt, ở chế độ 3 khi nhấn nút led 1 tắt/led 2 sáng, và ở chế độ cuối khi nhấn nút thì cả 2 led đều sáng rồi cứ tiếp tục 4 thao tác lặp đi lặp lại.


Về phần cứng

  1. Board mạch Arduino
  2. Nút nhấn (1 cái)
  3. Điện trở 10k ohm (1 cái) và 220 ohm(2 cái)
  4. Led đơn(2 cái)

Sơ đồ lặp mạch





Lập trình



    int switch = 5;              // nút nhấn được kết nối với pin 5

    int led1 = 8;

    int led2 = 9;

    int val;                         // đọc trạng thái pin
    int val2;                       // đọc trạng thái bị trì hoãn
    int buttonState;           // giữ trạng thái nút
    int mode = 0;              // led sẽ sáng ở chế độ nào

void setup () 
{
      pinMode(switch, INPUT);    // đặt nút nhấn làm ngỏ vào
      pinMode(led1, OUTPUT);
      pinMode(led2, OUTPUT);
      buttonState = digitalRead(switch);   // đọc trạng thái ban đầu
}

void loop ()
{
      val = digitalRead(switch);      // đọc giá trị đầu vào và lưu trữ nó trong val
      delay(10);                         // 10 mili giây là thời gian chờ
      val2 = digitalRead(switch);     // đọc lại đầu vào để kiểm tra xem có bị trả lại không
      if (val == val2) // make sure we got 2 consistant readings!
        {                 
        if (val != buttonState) // trạng thái nút đã thay đổi!
            {          
             if (val == LOW)// kiểm tra xem nút có được nhấn hay không
             {                
                     if (Mode == 0) 
                      {          
                       Mode = 1;               
                      }
               else 
               {
                     if (Mode == 1) 
                      {        
                       Mode = 2;           
                      } 
               else 
               {
                    if (Mode == 2) 
                      {      
                       Mode = 3;           
                      } 
               else 
                {
                    if (Mode == 3) 
                      { 
                       Mode = 0;          
                      }
                }
                }
                }
               }
           }
        buttonState = val;                // lưu trạng thái mới trong biến của chúng tôi
      }

      //Thiết lập các chế độ
      if (Mode == 0) 
        {                           
          digitalWrite(led1, LOW);
          digitalWrite(led2, LOW);
        }

      if (Mode == 1) 
        { 
          digitalWrite(led1, HIGH);
          digitalWrite(led2, LOW);
        }

      if (Mode == 2) 
        { 
          digitalWrite(led1, LOW);
          digitalWrite(led2, HIGH);
        }
      if (Mode == 3)  
        { 
          digitalWrite(led1, HIGH);
          digitalWrite(led2, HIGH);
        }    
}

Mô phỏng

Gồm có 4 chế độ xác lập trong lập trình:

  • Ở chế độ ban đầu thì cả 2 led đều ở mức thấp nên cả 2 đều tắt.

Chế độ 1



  • Ở chế độ 2, khi nhấn nút led 1 sáng, led 2 tắt.

Chế độ 2



  • Ở chế độ 3, khi nhấn nút led 1 tắt, led 2 sáng.

Chế độ 3



  • Ở chế độ cuối, khi nhấn nút thì cả 2 led đều ở mức cao nên cả 2 đều sáng.




Chúc các bạn thành công ở bài này! 

thitech Thứ Tư, 23 tháng 5, 2018
Pic16F887 - Điều khiển 1 led đơn bằng 2 button .

Giới thiệu :

 Hôm nay mình sẽ hướng dẫn các bạn cách điều khiển 1 led đơn bằng 2 button đơn giản ( 1 button làm led sáng , 1 button làm led tắt ) sử dụng vi điều khiển pic 16f887 . Mời các bạn theo dõi !!!

Chuẩn bị :

Pic16f887 .
Led đơn ( màu sắc tùy ý ) .
Trở : 1 con  (  để bảo vệ led ( tùy theo màu sắc led )
         1 con (1k-10k)
1 button ( 2 pin )

Lắp mạch :


 Code :

#include <16f887.h>
#fuses noprotect, nowdt, nolvp, hs, put
#use delay(clock=20Mhz)
#define bt1 pin_B0
#define bt2 pin_B1
void main()
{
  set_tris_D(0x00);
  set_tris_B(0xff);
   while(TRUE)
   {
     if(!input(bt1))
      {
        do{}
        while (!input(bt1));//chống rung cho button
        output_high(pin_D0);
     }
     if(!input(bt2))
      {
        do{}
        while (!input(bt2));
        output_low(pin_D0);
     }
   }
}

Kết quả :



Có gì thắc mắc các bạn cứ nhận xét bên dưới bài viết nhé ^^ ,
Chúc các bạn thành công .

thitech Thứ Ba, 22 tháng 5, 2018
Pic16F887 - Điều khiển 2 led đơn bằng 1 button .

Giới thiệu :

 Hôm nay mình sẽ hướng dẫn các bạn cách điều khiển 2 led đơn bằng button đơn giản sử dụng vi điều khiển pic 16f887 . Mời các bạn theo dõi !!!

Chuẩn bị :

Pic16f887 .
2 Led đơn ( màu sắc tùy ý ) .
Trở : 2 con  (  để bảo vệ led ( tùy theo màu sắc led )
         1 con (1k-10k)

Lắp mạch :


 Code :

#include <16f887.h>
#fuses noprotect, nowdt, nolvp, hs, put
#use delay(clock=20Mhz)
#define button pin_B0
int8 i; // khai báo biến i
void main()
{
   set_tris_D(0x00);//khởi tạo port D xuất mức thấp
   set_tris_B(0xff);//khởi tạo port B xuất mức cao
   while(TRUE)//vòng lặp
   {
   i=0;//cho ban đầu i=0
      if(!input(button))// kiểm tra trạng thái button
      {
        do{}// chống rung
         while (!input(button));// bấm rồi nhả ra mới tăng giá trị biến i
         i++;
         if(i==4)// nếu i=4 cho i quay về 0
         {
           i=0;
         }
        delay_ms(5);
        if(i==0)
        {
          output_low(pin_D0);
          output_low(pin_D1);
        }
         if(i==1)
        {
          output_high(pin_D0);
          output_low(pin_D1);
        }
         if(i==2)
        {
          output_high(pin_D1);
          output_low(pin_D0);
        }
         if(i==3)
        {
          output_high(pin_D0);
          output_high(pin_D1);
        }
      }
   }

}

Kết quả :

Có gì thắc mắc các bạn cứ nhận xét bên dưới bài viết nhé ^^ ,
Chúc các bạn thành công .

thitech
Pic16F887 - Điểu khiển 1 led đơn bằng button .

Giới thiệu :

 Hôm nay mình sẽ hướng dẫn các bạn cách điều khiển 1 led đơn bằng button đơn giản sử dụng vi điều khiển pic 16f887 . Mời các bạn theo dõi !!!

Chuẩn bị :

Pic16f887 .
Led đơn ( màu sắc tùy ý ) .
Trở : 2 con ( 1 để bảo vệ led ( tùy theo màu sắc led ) 2 để hạn dòng vào pic ( 1k-10k)).

Lắp mạch :

 Code :

#include <16f887.h>
#fuses noprotect, nowdt, nolvp, hs, put
#use delay(clock=20Mhz)
#define led pin_D0// khai báo chân led
#define button pin_B0// khai báo chân button
void main()
{
 set_tris_D(0x00);// khởi tạo port D xuất mức thấp
 set_tris_B(0xff); // khởi tạo port B xuất mức cao
   while(TRUE)
   {
      if(input(button)==0)// nếu ngõ vào chân button là mức thấp thì xuất mức cao chân led
      {// lưu ý là khi nhấn nút phải giữ led mới sáng
       output_high(led);
      }
      else
      {
      output_low(led);// ngược lại mức thấp .
      }
   }

}

Kết quả :

 Khi chưa nhấn nút thì led tắt .

Khi nhấn giữ thì led sáng .
Chúc các bạn thành công .

thitech
Arduino giao tiếp với Button (Phần 2): Dùng 1 button để đổi trạng thái của led

Nội dung

  • Dùng button để hoán đổi trạng thái của led.
  • Trạng thái ban đầu led tắt,bắt đầu nhấn nút lần thứ 1 thì led bật,rồi nhấn nút lần thứ 2 thì led tắt cứ tiếp tục cho những lần kế tiếp cho việc lặp lại sáng tắt như vậy.

Về phần cứng

  1. Board mạch Arduino
  2. Button(nút nhấn) 1 cái
  3. Led đơn
  4. Điện trở 10k và 220 Ohm 

Sơ đồ lắp mạch






Lập trình

     byte led = 13; // nối led vào chân 13
     byte button = 2; // nối led vào chân 2
     byte ledStatus = LOW; // trạng thái của led
void setup()
{
       pinMode(led, OUTPUT);
       pinMode(button, INPUT);
       digitalWrite(led, LOW); //ban đầu led tắt
}
void loop()
{
         if (digitalRead(button) == LOW) // nếu nút được nhấn
         {
          while (digitalRead(button) == LOW); // chờ nút nhấn buông

          ledStatus = !ledStatus; // đảo trạng thái led từ LOW -> HIGH
          digitalWrite(led, ledStatus);
          }
}


Mô phỏng

    Ở mô phỏng 1,Ban đầu trạng thái là tắt khi ấn nút và thả ra vào lần 1 thì led sáng 


Mô phỏng 1





   Tiếp tục ở mô phỏng 2 ấn nút và thả ra lần 2 thì led sẽ tắt và cứ thế lặp đi lặp lại liên tục sáng/tắt khi thao tác

Mô phỏng 2



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

thitech
Arduino - Giao tiếp với Button (Phần 1): Bật tắt led bằng 2 nút nhấn

Nội dung

   Xác định trạng thái của nút nhấn từ đó chúng ta có thể dùng các button để điều khiển bật tắt đèn led
Từ đó ta cho ra được ví dụ đơn giản về việc điều khiển led bật/tắt bằng 2 nút nhấn.

Yêu cầu phần cứng

  1.   Board mạch Arduino
  2.   Button(nút nhấn) 2 cái
  3.   Led đơn
  4.   Điện trở 220 Ohm

Lắp đặt mạch



Lập trình

     int button1 = 6;
     int button2 = 7;
     int led = 13;

     void setup() 
     {
      pinMode(button1, INPUT);  //Cài đặt chân D6 ở trạng thái đọc dữ liệu
      pinMode(button2, INPUT);  //Cài đặt chân D7 ở trạng thái đọc dữ liệu
      pinMode(led,OUTPUT); // Cài đặt chân D13 dưới dạng OUTPUT
     }

void loop() 
{
     int nutnhan1 = digitalRead(button1);    //Đọc trạng thái button
     int nutnhan2 = digitalRead(button2);    //Đọc trạng thái button

     if (nutnhan1 == HIGH)  // Nếu mà button bị nhấn
      { 
      digitalWrite(led,HIGH); // Đèn led sáng
      } 

      if (nutnhan2 == HIGH) // Nếu mà button bị nhấn
      { 
      digitalWrite(led,LOW);//Đèn led tắt
      }
}


Mô phỏng






    Khi bạn ấn nút nhấn 1 thì led sẽ sáng và ngược lại.




   Khi ấn nút nhấn 2 thì led sẽ tắt.





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

thitech Thứ Hai, 21 tháng 5, 2018