Professional Documents
Culture Documents
Nguyễn Đình Lực- 121000190- Bt1.3
Nguyễn Đình Lực- 121000190- Bt1.3
Nguyễn Đình Lực- 121000190- Bt1.3
Máy tính
Khối tín hiệu đầu Khối xử lí arduno Khối tín hiệu đầu
vào mega 2560 ra
Nguồn
Bắt
đầu
nút nhấn
Run= 0
Run = 1
Mode 1
Mode ==0
TG i>=10ms
Kết
thúc
Sơ đồ giải thuật chương trình sáng
đuổi từ led 1 đến led 8 và từ led 8
đến led:
Xuất tín
hiệu mức 0
Sơ đồ giải thuật sáng dồn từ led 1 đến led
8 và từ led 8 đến led 1:
Bắt
đầu
Bắt
đầu
giá trị biến lăp
j=0
giá trị biến lăp
j=0
J<8
J<8
Giá trị biến lặp i=7
i<8-J
Chọn led 8
Chọn led 1
Xuất tín
hiệu mức 1
Xuất tín
hiệu mức 1
Delay 200ms
Delay 200ms
Xuất tín
hiệu mức 0
Xuất tín
hiệu mức 0
Delay 200ms
Delay 200ms
Xuất tín hiệu led
i+1 mức 1
Xuất tín hiệu led
i-1 mức 1
Run = 1
Run = 1
Mode 1
Mode 1
Sơ đồ giải thuật led sáng dần từ led 1 đến
8 và sáng dần từ led 8 đến led :1
Bắt
Bắt đầu
đầu
Xuất tín
hiệu
Xuấtmức
tín 1
hiệu mức 1
Delay 200ms
Delay 200ms
i>=0
i<8
Mode = 0
Mode = 0
Pinled i=0
Pinled i=0
Kết
Kết thúc
thúc
i>2
i<7
Delay 200ms
Delay 200ms
I tăng lên 1
I tăng lên 1
Mode = 0
Mode = 0
Tất cả I ở mức 0
Tất cả ở mức 0
Kết
Kết thúc
thúc
Đúng sai
Câu 5 (50đ): Viết code chương trình xử lý và trả lời câu hỏi
int pinled[]={2,3,4,5,6,7,8,9,};
int tgnhan=0;
int RUN=0;
int dem=0;
int i,j;
void ledsangdonL1denL8(){
for(j=0;j<8;j++)
for(i=0;i<8-j;i++)
digitalWrite(pinled[i], HIGH);
delay(100);
digitalWrite(pinled[i], LOW);
delay(100);
digitalWrite(pinled[i-1], HIGH);
void ledsangdonL8denL1(){
for(j=0;j<8;j++)
for(i=7;i>=j;i--)
digitalWrite(pinled[i], HIGH);
delay(100);
digitalWrite(pinled[i], LOW);
delay(100);
digitalWrite(pinled[i+1], HIGH);
void ledsangduoiL1denL8(){
for(int i=0;i<8;i++){
digitalWrite(pinled[i],HIGH);
delay(100);
digitalWrite(pinled[i],LOW);
void ledsangduoiL8denL1(){
for(int i=7;i>=0;i--){
digitalWrite(pinled[i],HIGH);
delay(100);
digitalWrite(pinled[i],LOW);
void ledsangdanL1denL8(){
for(i=0;i<8;i++)
digitalWrite(pinled[i], HIGH);
delay(100);
void ledsangdanL8denL1(){
for(i=7;i>=0;i--)
digitalWrite(pinled[i], HIGH);
delay(100);
void sanghaidauvaotrong()
for(int i=2;j<7;i++)
digitalWrite(i,HIGH);
digitalWrite(11-i,HIGH);
delay(100);
void sangtutrongrangoai()
for(int i=6;i>1;i--)
digitalWrite(i,HIGH);
digitalWrite(11-i,HIGH);
delay(100);
void setup() {
pinMode(13,INPUT_PULLUP);
pinMode(12,INPUT_PULLUP);
for(int i=0;i>8;i++){
pinMode(pinled[i],OUTPUT);
void buttonMode(){
if (digitalRead(13)==0){
while (digitalRead(13)==0){
tgnhan++;
delay(1);
if(tgnhan>=5){
dem++;
tgnhan=0;
else{
tgnhan=0;
void buttonStart(){
if(digitalRead(12)==0){
RUN=1;
void loop(){
buttonStart();
if(RUN==1){
buttonMode();
switch (dem){
case 0:
ledsangduoiL1denL8();
ledsangduoiL8denL1();
break;
case 1:
ledsangdanL1denL8();
ledsangdanL8denL1();
break;
case 2:
ledsangdonL1denL8();
ledsangdonL8denL1();
break;
case 3:
sanghaidauvaotrong();
sangtutrongrangoai();
break;
case 4:
dem=0;
break;