Bài 9: Vòng lặp while trong lập trình Arduino

     Vòng lặp while trong lập trình arduino là cách thực hiện đoạn chương trình lặp lại cho đến khi biểu thức điều kiện sai. Nhìn chung, chức năng của các vòng lặp for hay while đều giống nhau về chức năng, chỉ khác nhau ở chỗ cấu trúc mà thôi. Như vây, để có được kiến thức đầy đủ hơn về vòng lặp while. Cũng như so sánh với vòng lặp for đã học ở bài số 8, thì bài số 9 này sẽ chuyển đổi vòng lặp for sang vòng lặp while cho các bạn dễ hiểu.

  NỘI DUNG BÀI VIẾT  

  • Cấu trúc vòng lặp while
  • Ứng dụng viết chương trình điều khiển 8 led đơn

  1.  CẤU TRÚC VÒNG LẶP WHILE  

     Vòng lặp while khi sử dụng các bạn cần lưu ý đến biến điều khiển. Trước khi thực hiện vòng lặp các bạn cần phải khai báo và khởi tạo biến điều khiển bên ngoài vòng lặp. Và trong khi thực hiện vòng lặp bạn cần phải có lệnh điều khiển biến điều kiện. Nếu không có lệnh điều khiển biến thì vòng lặp sẽ rơi vào tình trạng lặp vô tận không thoát khỏi vòng lặp được.

     Cú pháp:

Khai báo biến điều kiện;
while(<Biểu thức điều kiện>)
 {
  khối lệnh;
  <Biểu thức điều khiển biến>;
 }

     Trong đó:

  • Biểu thức điều kiện: là biểu thức điều kiện để kiểm tra cho vòng lặp thực hiện lặp lại khối lệnh.
  • Khối lệnh: là những lệnh thực hiện khi điều kiện lặp đúng.
  • Biểu thức điều khiển: là biểu thức thay đổi giá trị của biến điều khiển vòng lặp.

  2.  ỨNG DỤNG VIẾT CHƯƠNG TRÌNH ĐIỀU KHIỂN 8 LED ĐƠN  

     Ví dụ: Viết chương trình sử dụng 3 nút nhấn để điều khiển 8 led đơn. Khi cấp nguồn thì tất cả 8 led đều tắt, nhấn nút ON thì sáng dần 8 led, nhấn nút INV thì tắt dần, nhấn nút OFF thì tất cả các led đều tắt. 

     Đây là ví dụ của bài học số 8, nhưng chúng ta sẽ thực hiện viết code bằng cách sử dụng vòng lặp while trong lập trình arduino.

int ON; // Nut ON 
int OFF; //Nut OFF 
int INV; //nut INV 
int tt=0; 
int i;

void setup(){ 
for(int i=2; i<=4; i++) 
pinMode(i, INPUT); 
for(int i=6; i<=13; i++) 
pinMode(i, OUTPUT); 
//Tat tat ca cac led 
for(int i=6; i<=13; i++) 
digitalWrite(i, LOW);
 }

void loop(){ 
 //Nhan nut ON 
 ON = digitalRead(2); 
 if(ON == 0) 
 { 
  //Sang dan 
 i=6;
 while (i<=13)
 { 
  digitalWrite(i, HIGH); 
  delay(200); 
  i++;
  } 
 tt=1; 
} 

//Nhan nut INV 
INV = digitalRead(3); 
if ((INV == 0) && (tt == 1)) 
{ 
//Tat dan 
i=13;
 while ( i>=6) 
 { 
  digitalWrite(i, LOW); 
  delay(200); 
  i--;
  } 
 tt = 0; 
} 

//Nhan nut OFF 
OFF = digitalRead(4); 
 if(OFF == 0) 
 { 
 i=6;
 while(i<=13) 
  {
  digitalWrite(i, LOW); 
  delay(200); 
  i++;
  tt =0; 
  } 
}

 

 

 


Categories:

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *