You are on page 1of 8

[Type here]

/ Bài 1: Chớp tắt đèn LED

int ledPin=11; khai báo biến

void setup() { phàn khai báo ban đầu

pinMode(ledPin, OUTPUT}; khai báo trân (số 11) như là 1 phân ra

void loop() { vòng lắp ko giới hạn

digitalWrite(ledPin, HIGH);

delay(1000); duy trì trạng thái trong 1 giây

digitalWrite(ledPin, LOW);

delay(1000); }
[Type here]

bài 2

int ledPin=11;

void setup() {

pinMode(ledPin, OUTPUT);

void loop() {

for (int x=0; x<3; x++) { // letter S

digitalWrite(ledPin, HIGH);

delay(100);

digitalWrite(ledPin, LOW);

delay(100); }

for (int x=0; x<3; x++) { //letter O

digitalWrite(ledPin, HIGH);

delay(500);

digitalWrite(ledPin, LOW);

delay(100); }

for (int x=0; x<3; x++) { // letter S

digitalWrite(ledPin, HIGH);

delay(100);

digitalWrite(ledPin, LOW);

delay(100); }

delay (5000);

}
[Type here]

Bài 3

// Khai báo các chân I/O sử dụng trong chương trình

int Red=12;

int Yellow=11;

int Green=10;

void setup() {

pinMode(Red, OUTPUT);

pinMode(Yellow, OUTPUT);

pinMode(Green, OUTPUT);

void loop() {

//Bật đèn xanh trong 5 giây

digitalWrite(Green, HIGH);

delay(5000);

digitalWrite(Green, LOW)

//Bật đèn vàng 1 giây

digitalWrite(Yellow, HIGH);

delay(1000);

digitalWrite(Yellow, LOW)

//Bật đèn đỏ trong 3 giây

digitalWrite(Red, HIGH);

delay(3000);

digitalWrite(Red, LOW)

// trong trường hợp thay đèn led bằng đèn thường,


[Type here]

Bài 4

// Pin 2 là đầu vào digital

int carRed=12; //Đèn giao thông cho xe

int carYellow=11;

int carGreen=10;

int pedRed=9; //Đèn giao thông cho người

int pedGreen=8;

int button=2; // Nút nhấn cho người đi bộ

int crossTime=5000; // Thời gian cho phép qua đường

unsigned long changeTime; // Thời gian khi nút được nhấn

void setup() {

pinMode(carRed, OUTPUT);

pinMode(carYellow, OUTPUT);

pinMode(carGreen, OUTPUT);

pinMode(pedRed, OUTPUT);

pinMode(pedGreen, OUTPUT);

pinMode(button, INPUT);

// Ban đầu, bật đèn xanh cho xe cơ giới và đèn đỏ cho người đi bộ

digitalWrite(carGreen, HIGH);

digitalWrite(pedRed, HIGH);

void loop() {

int state=digitalRead(button);

/* Kiểm tra nút nhấn và thời gian kể từ lần gần nhất bấm nút nhất

hơn 5s thì thực hiện lệnh của khối trúc IF */

state = digitalRead(button) 1 lên low 2 là high

if (state==HIGH && (millis()-changeTime)>5000) {

// Gọi hàm thay đổi đèn cho người đi bộ

changeLights(); }
[Type here]

void changeLights() {

digitalWrite(carGreen, LOW); //Tắt đèn xanh

digitalWrite(carYellow, HIGH); // Bật đèn vàng

delay(2000);

digitalWrite(carYellow, LOW);

digitalWrite(carRed, HIGH);

delay(1000);

digitalWrite(pedRed, LOW);

digitalWrite(pedGreen, HIGH);

delay(crossTime);

// Nhấp nháy đèn xanh cho người đi bộ trong 2 giây

For (int x=0; x<10; x++) {

digitalWrite(pedGreen, HIGH);

delay(200);

digitalWrite(pedGreen, LOW);

delay(200); }

digitalWrite(pedRed, HIGH);

delay(2000);

digitalWrite(carRed, LOW);

digitalWrite(carGreen, HIGH);

changeTime=millis();

}
[Type here]

/ Bài 5 – Tạo hiệu ứng đuổi LED

byte ledPin[]={4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; //Tao mảng các số chân I/O khai báo số chân

int ledDelay=65; // Thời gian đợi mỗi lần thay đổi

int currentLED=0;

unsigned long changeTime;

void setup() {

for (int x=0; x<10; x++) {

pinMode(ledPin[i], OUTPUT;} sử dụng các đèn như là chân ra

changeTime=millis();

void loop() {

if((milis()-changeTime>ledDelay) { //Đợi 1 khoảng thời gian

changeLED();

changeTime=millis(); }

void changeLED() {

for (int x=0; x<10; x++) { //Tắt tất cả LED

digitalWrite(ledPin[x], LOW);

digitalWrite(ledPin[curentLED], HIGH);

currentLED+=direction; //Tăng biến curentLED theo direction

if (currentLED==9) {direction=-1;}

if (currentLED==0) {direction=1;}

}
[Type here]

Bài 6

// Bài 6 – Tạo hiệu ứng đuổi LED với biến trở

byte ledPin[]={4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; khai báo số chân

int ledDelay;

int direction=1;

int currentLED=0;

int potPin=1; // Ngõ vào analog kết nối với biến trở

void setup() {

for (int x=0; x<10; x++) {

pinMode(ledPin[x], OUTPUT);}

changeTime=millis();

void loop() {

ledDelay=analogRead(potPin); // Đọc giá trị từ biến trở

if ((millis()-changeTime)>ledDelay) {

changeLED();

changeTime=millis(); }

void changeLED() {

for(int x=0; x<10; x++) {

digitalWrite(ledPin[currentLED], LOW); }

digitalWrite(ledPin[currentLED], HIGH);

currentLED+=direction;

if (currentLED==9) {direction=-1;}

if (currentLED==0) {direction=1;}

}
[Type here]

1 bước góc = 360 độ

1 vòng quay bằng 32 bước

Tỷ số truyền từ rotor: trục quay = 61:1

You might also like