Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 11

Bài 1: Một bóng đèn nhấp nháy:

int led=13;

void setup() {
pinMode(led,OUTPUT);
}
void loop() {
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
delay(100);
}
Bài 2: Lắp mạch gồm 3 led xanh đỏ vàng sau cho khi gắn nguồn cả 3 đều sang. Sau đó tắt theo thứ tự 1,
2, 3 cách nhau 0,5s và lặp lại.

int led1=11;
int led2=12;
int led3=13;
void setup() {
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
}
void loop() {
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
delay(1000);
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
delay(500);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
delay(500);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
delay(500);
}
Bài 3:Khi có điện 7 Led đều sáng-> tắt từ trái qua phải->sáng từ phải qua trái->chẵn sáng lẻ tắt, lẻ sáng
chẵn tắt xen kẽ lặp lại 5 lần.

void setup()
{
//dùng vòng lặp for đẻ thiết lập các đầu ra cho led và led tự sáng khi khởi động
for(int i=2;i<9;i++)
{
pinMode(i,OUTPUT);
digitalWrite(i,HIGH);
}
}
void loop() {
//tắt từ 1 đến 7
for(int i=2;i<9;i++)
{
digitalWrite(i,LOW);
delay(500);
}
//sáng+ từ 7 đến 1
for(int i=8;i>1;i--)
{
digitalWrite(i,HIGH);
delay(500);}
//chẵn sáng lẻ tắt lặp lại 5 lần
int lanlap=1;
while(lanlap<6)
{
for(int i=2;i<9;i++){
if((i-1)%2!=0){digitalWrite(i,LOW);}
if((i-1)%2==0){digitalWrite(i,HIGH);}
}
delay(500);
lanlap++;
for(int i=2;i<9;i++){
if((i-1)%2!=0){digitalWrite(i,HIGH);}
if((i-1)%2==0){digitalWrite(i,LOW);}
}
delay(500);}
for(int i=2;i<9;i++)
{
digitalWrite(i,HIGH);
}
delay(500);
}
Bài 4: Sử dụng nút bấm để bật tắt đèn Led
int congtac=2;

int led=3;
void setup()
{
pinMode(congtac,INPUT);//trạng thái đọc dữ liệu
pinMode(led,OUTPUT); //trạng thái nhận dữ liệu
}
void loop(){
int trangthai=digitalRead(congtac);//đọc trạng thái nút bấm

}
}

Bài 5: Sử dụng nút bấm để bật tắt đèn Led, thường sang nhấp nháy, nhấn giữ

int congtac=2;
int led=3;
void setup()
{
pinMode(congtac,INPUT);//trạng thái đọc dữ liệu
pinMode(led,OUTPUT); //trạng thái nhận dữ liệu
}
void loop(){
int trangthai=digitalRead(congtac);//đọc trạng thái nút bấm
if(trangthai==HIGH){//nếu công tắc bị nhấn
digitalWrite(led,HIGH);
delay(200);
digitalWrite(led,LOW);
delay(200);
}
else{//ngược lại
digitalWrite(led,LOW);
}
}

Bài 6: thiết lập một nút nhấn và một đèn LED, và khi nút nhấn được nhấn giữ, đèn LED sẽ nhấp nháy
trong khoảng thời gian 500ms
int button=2;
int led=3;
int trangthailed=LOW;
void setup()
{
pinMode(button,INPUT);
pinMode(led,OUTPUT);
digitalWrite(led,LOW);
}
void loop(){
if (digitalRead(button)==HIGH){
digitalWrite(led,HIGH);
delay(500);
digitalWrite(led,LOW);
delay(500);
}
else{
digitalWrite(led,LOW);
}
}

Bài 7: Kiểm tra trạng thái nút bấm


int button = 9;
int led = 5;
int preStateButton=LOW;//lưu trạng thái trước của button
int count = 0;//biến lưu số lần nhấn button
void setup() {
pinMode(button, INPUT);
pinMode(led,OUTPUT);
}
void loop() {
int curStateButton = digitalRead(button);//lấy trạng thái hiện tại của button
if (curStateButton==HIGH && preStateButton==LOW){
count++;
}
preStateButton=curStateButton;
}

Bài 8: Sử dụng nút bấm, đèn tắt, click để bật đèn, click để đèn
tắt
Cách 1:
int button = 2;

int led = 3;
int trangthailed=LOW;//lưu trạng thái đang tắt
void setup() {
pinMode(button, INPUT);
pinMode(led,OUTPUT);
digitalWrite(led,LOW); //khi có điện led tăt
}
void loop() {
int trangthaibutton=digitalRead(button);//lưu trạng thái hiện tại của công tắt
vào biến trangthaibutton
int ledsang=digitalRead(led); //lưu trạng thái của led
if(trangthaibutton==1 && ledsang==trangthailed){
digitalWrite(led,!trangthailed);//led ngược với trangthailed
trangthailed=!trangthailed;//thay đổi biến trangthailed ngược lại
delay(500);
}
}
Cách 2

int button = 2;
int led = 3;
int trangthailed = LOW;// Trạng thái ban đầu của đèn LED (LOW = tắt)
void setup() {
pinMode(button, INPUT);
pinMode(led, OUTPUT);
digitalWrite(led, trangthailed);
}
void loop() {
if (digitalRead(button) == HIGH) // Kiểm tra trạng thái của nút nhấn
{
toggle(); // Nếu nút nhấn được nhấn, gọi hàm toggle()
delay(500);
}}
void toggle() {
trangthailed = !trangthailed;
digitalWrite(led, trangthailed);// Cập nhật trạng thái của đèn LED
}

Bài 9: Có 5 đèn Led khi bật công tắt, sáng tắt từng đèn 1->5
int button = 2;
int led[] = {3, 4, 5, 6};
int trangthailed = LOW;

void setup() {
pinMode(button, INPUT);
for (int i = 0; i < 4; i++) {
pinMode(led[i], OUTPUT);
digitalWrite(led[i], LOW);
}
}
void loop(){
if (digitalRead(button)==HIGH){
for (int i=0;i<4;i++){
digitalWrite(led[i],HIGH);
delay(500);
digitalWrite(led[i],LOW);
delay(500);
}}
else{for(int i=0;i<4;i++){
digitalWrite(led,LOW);}
}
}

Bài 10: Có 4 đèn Led khi bật công tắt, sáng từ 1-4, tắt từ 4-1, chẵn sáng lẻ tắt và lẻ tắt chẵn
int button = 2;

int led[] = {3, 4, 5, 6};


int trangthailed = LOW;

void setup() {
pinMode(button, INPUT);
for (int i = 0; i < 4; i++) {
pinMode(led[i], OUTPUT);
digitalWrite(led[i], LOW);
}
}
void loop(){
if (digitalRead(button)==HIGH){
//sáng từ 1-5
for (int i=0;i<4;i++){
digitalWrite(led[i],HIGH);
delay(500);}
//tắt từ 5-1
for (int i=4;i>0;i--){
digitalWrite(led[i],LOW);
delay(500);
}
//chẵn sáng lẻ tắt xen kẽ 5 lần
int lanlap=1;
while(lanlap<6)
{
for(int i=0;i<4;i++){
if((i-1)%2!=0){digitalWrite(led[i],LOW);}
if((i-1)%2==0){digitalWrite(led[i],HIGH);}
}
delay(500);
lanlap++;
for(int i=0;i<4;i++){
if((i-1)%2!=0){digitalWrite(led[i],HIGH);}
if((i-1)%2==0){digitalWrite(led[i],LOW);}
}
delay(500);
}
for (int i=0;i<4;i++){
digitalWrite(led[i],LOW);}
delay(500);
}
else{for(int i=0;i<4;i++){
digitalWrite(led,LOW);}
}
}

Bài 11: Khi bật công tắt, đèn sáng và tắt sau 5s:

unsigned long thoigianbatdau=0; //gán số nguyên không dấu (unsigned long)

unsigned long thoigiandentat=5000;//gán số nguyên không dấu


void setup() {
pinMode(13,OUTPUT); //chân đầu ra của led
pinMode(12,INPUT); // chân đầu vào của nút bấm
digitalWrite(13,LOW); //khi có điện đèn tắt
}

void loop() {
if(digitalRead(12)==HIGH){ //nếu trạng thái của nút bấm bật
thoigianbatdau=millis(); //gán biến millis() bắt đầu chạy
digitalWrite(13,HIGH);} //đèn bật
if(digitalRead(12)==LOW && millis() - thoigianbatdau>=thoigiandentat){
digitalWrite(13,LOW);
}}

Bài12: Đèn 1 nhấp nháy, dùng nút bật đèn 2 sáng, khi đèn 1 tắt đèn 2 tắt theo.
Kích hoạt đèn khi nút chuyển từ trạng thái cao sang thấp (FALLING)
Kích hoạt đèn khi nút chuyển từ trạng thái thấp sang cao(RISINS)
Kích hoạt đèn khi nút chuyển từ trạng thái cao sang thấp hay thấp sang cao(CHANGE)

int led1=4;
int led2=5;
int interruptPin = 2;
void setup() {
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
attachInterrupt(digitalPinToInterrupt(interruptPin),modeISR,FALLING);
//FALLING,CHANGE,RISING
}
// chuong trinh ngat
void modeISR()
{
digitalWrite(5,HIGH);
}
void loop() {
digitalWrite(4,LOW);
delay(3000);
digitalWrite(4,HIGH);
delay(3000);
digitalWrite(5,LOW);
}

Bài 13: cho đèn 1,2,3 nhấn nút một lần đèn 1 sáng, nhấn 2 lần đèn 2 sáng, nhấn 3 lần đèn 3 sáng, nhấn 4
lần cả 3 đều tắt .

// Khai báo biến đếm số lần nhấn nút


int dem = 0;
// Kết nối các chân đèn với pin Arduino
int led1 = 2;
int led2 = 3;
int led3 = 4;

// Kết nối nút bấm với pin interrupt 0


của Arduino
int buttonPin = 0;
void setup() {
// Cài đặt chế độ ra cho các chân đèn
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
// Cài đặt chế độ nút bấm là input
pinMode(buttonPin, INPUT);
}
void loop() {
// Kiểm tra xem có nhấn nút không
if (digitalRead(buttonPin) == HIGH) {
// Tăng biến đếm lên 1
delay(500);
dem++;
// Nếu nhấn 1 lần
if(dem == 1){
digitalWrite(led1, HIGH);
}
// Nếu nhấn 2 lần
else if(dem == 2){
digitalWrite(led2, HIGH);
}
// Nếu nhấn 3 lần
else if(dem == 3){
digitalWrite(led3, HIGH);
}
// Nếu nhấn 4 lần
else if(dem == 4){
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
dem = 0;
}
}
}

You might also like