0% found this document useful (0 votes)
8 views14 pages

11 - Đặng Bảo Thái Đạt

The document contains various Arduino code snippets for controlling LEDs, displaying numbers, and interacting with components like buttons and LCDs. It includes multiple functions for different light effects, a basic calculator using a keypad, and a servo motor control example. Additionally, it mentions resistor values for components used in the circuits.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views14 pages

11 - Đặng Bảo Thái Đạt

The document contains various Arduino code snippets for controlling LEDs, displaying numbers, and interacting with components like buttons and LCDs. It includes multiple functions for different light effects, a basic calculator using a keypad, and a servo motor control example. Additionally, it mentions resistor values for components used in the circuits.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Họ và tên: Đặng Bảo Thái Đạt

Lớp: DHTI15A15HN
MSV: 21103100921

Câu 1: 220 Ω

Code:
int led7[] = {2, 3, 4, 5, 6, 7, 8};

byte digits[10][7] = {
{0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 1, 1, 1, 1},
{0, 0, 1, 0, 0, 1, 0},
{0, 0, 0, 0, 1, 1, 0},
{1, 0, 0, 1, 1, 0, 0},
{0, 1, 0, 0, 1, 0, 0},
{0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0}
};

void displayNumber(int num) {


for (int i = 0; i < 7; i++) {
digitalWrite(led7[i], digits[num][i]);
}
}

void setup() {
for (int i = 0; i < 7; i++) {
pinMode(led7[i], OUTPUT);
}
}

void loop() {
for (int i = 0; i < 10; i++) {
displayNumber(i);
delay(1000);
}
}

Câu 2:

Code:
const int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};

const int numLeds = sizeof(ledPins) / sizeof(ledPins[0]);

void allOn();
void allOff();
void blinkAll();
void runningLight();
void chasing();
void randomBlink();
void knightRider();
void sparkle();
void fadeInOut();
void alternatingBlink();

void setup() {
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
}
}

void loop() {
allOn();
delay(1000);

allOff();
delay(1000);

blinkAll();
delay(1000);
runningLight();
delay(2000);

chasing();
delay(2000);

randomBlink();
delay(2000);

knightRider();
delay(2000);

sparkle();
delay(2000);

fadeInOut();
delay(3000);

alternatingBlink();
delay(2000);
}

void allOn() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], HIGH);
}
}

void allOff() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], LOW);
}
}

void blinkAll() {
allOn();
delay(500);
allOff();
delay(500);
}

void runningLight() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], HIGH);
delay(200);
digitalWrite(ledPins[i], LOW);
}
}

void chasing() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], HIGH);
delay(100);
digitalWrite(ledPins[i], LOW);
}
}

void randomBlink() {
for (int i = 0; i < 5; i++) {
int randomLed = random(numLeds);
digitalWrite(ledPins[randomLed], HIGH);
delay(100);
digitalWrite(ledPins[randomLed], LOW);
}
}

void knightRider() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], HIGH);
delay(100);
}
for (int i = numLeds - 1; i >= 0; i--) {
digitalWrite(ledPins[i], LOW);
delay(100);
}
}

void sparkle() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], HIGH);
delay(100);
digitalWrite(ledPins[i], LOW);
}
int randomLed = random(numLeds);
digitalWrite(ledPins[randomLed], HIGH);
delay(300);
}

void fadeInOut() {
for (int brightness = 0; brightness <= 255; brightness++) {
for (int i = 0; i < numLeds; i++) {
analogWrite(ledPins[i], brightness);
}
delay(10);
}
for (int brightness = 255; brightness >= 0; brightness--) {
for (int i = 0; i < numLeds; i++) {
analogWrite(ledPins[i], brightness);
}
delay(10);
}
}

void alternatingBlink() {
for (int i = 0; i < numLeds; i += 2) {
digitalWrite(ledPins[i], HIGH);
}
delay(500);
for (int i = 0; i < numLeds; i += 2) {
digitalWrite(ledPins[i], LOW);
}
for (int i = 1; i < numLeds; i += 2) {
digitalWrite(ledPins[i], HIGH);
}
delay(500);
for (int i = 1; i < numLeds; i += 2) {
digitalWrite(ledPins[i], LOW);
}
}

Câu 3:

Code:
int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;
int f = 6;
int g = 7;
int s1 = 8;
int s2 = 9;
const int dl_time = 10; // delay time in milliseconds

int i, j, k;

void setup() {
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);

digitalWrite(s1, LOW);
digitalWrite(s2, LOW);

// Serial.begin(9600); // Optional: debug


}

void chon_so(int so) {


switch (so) {
case 0:
digitalWrite(a, LOW); digitalWrite(b, LOW); digitalWrite(c, LOW);
digitalWrite(d, LOW); digitalWrite(e, LOW); digitalWrite(f, LOW);
digitalWrite(g, HIGH);
break;
case 1:
digitalWrite(a, HIGH); digitalWrite(b, LOW); digitalWrite(c, LOW);
digitalWrite(d, HIGH); digitalWrite(e, HIGH); digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 2:
digitalWrite(a, LOW); digitalWrite(b, LOW); digitalWrite(c, HIGH);
digitalWrite(d, LOW); digitalWrite(e, LOW); digitalWrite(f, HIGH);
digitalWrite(g, LOW);
break;
case 3:
digitalWrite(a, LOW); digitalWrite(b, LOW); digitalWrite(c, LOW);
digitalWrite(d, LOW); digitalWrite(e, HIGH); digitalWrite(f, HIGH);
digitalWrite(g, LOW);
break;
case 4:
digitalWrite(a, HIGH); digitalWrite(b, LOW); digitalWrite(c, LOW);
digitalWrite(d, HIGH); digitalWrite(e, HIGH); digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 5:
digitalWrite(a, LOW); digitalWrite(b, HIGH); digitalWrite(c, LOW);
digitalWrite(d, LOW); digitalWrite(e, HIGH); digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 6:
digitalWrite(a, LOW); digitalWrite(b, HIGH); digitalWrite(c, LOW);
digitalWrite(d, LOW); digitalWrite(e, LOW); digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 7:
digitalWrite(a, LOW); digitalWrite(b, LOW); digitalWrite(c, LOW);
digitalWrite(d, HIGH); digitalWrite(e, HIGH); digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 8:
digitalWrite(a, LOW); digitalWrite(b, LOW); digitalWrite(c, LOW);
digitalWrite(d, LOW); digitalWrite(e, LOW); digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 9:
digitalWrite(a, LOW); digitalWrite(b, LOW); digitalWrite(c, LOW);
digitalWrite(d, LOW); digitalWrite(e, HIGH); digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
}
}

void loop() {
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
for (k = 0; k < 50; k++) {
digitalWrite(s2, LOW);
chon_so(i);
digitalWrite(s1, HIGH);
delay(dl_time);
digitalWrite(s1, LOW);

chon_so(j);
digitalWrite(s2, HIGH);
delay(dl_time);
digitalWrite(s2, LOW);
}
}
}
}
Câu 4:
Code:
Câu 5: 220 Ω

Code:
int led[] = {2, 3, 4, 5, 6, 7, 8, 9};
int len = sizeof(led) / sizeof(led[0]);

void setup() {
for (int i = 0; i < len; i++) pinMode(led[i], OUTPUT);
}

void loop() {
// Hiệu ứng chạy đuổi
for (int i = 0; i < len; i++) {
digitalWrite(led[i], HIGH);
delay(100);
digitalWrite(led[i], LOW);
}
}
Câu 6: Led: 220 Ω ; Push Button: 10 kΩ

Code:
int button = 2;
int led = 13;
int state = LOW;

void setup() {
pinMode(led, OUTPUT);
pinMode(button, INPUT_PULLUP);
}

void loop() {
if (digitalRead(button) == LOW) {
delay(200); // debounce
state = !state;
digitalWrite(led, state);
while (digitalRead(button) == LOW); // chờ nhả nút
}
}
Câu 7:

Code:
Câu 8:

Code:
#include <Adafruit_NeoPixel.h>

#define PIN 6
#define NUMPIXELS 12

Adafruit_NeoPixel ring = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB +


NEO_KHZ800);

void setup() {
ring.begin();
ring.show();
}

void loop() {
for(int i=0; i<NUMPIXELS; i++) {
ring.clear();
ring.setPixelColor(i, ring.Color(0, 150, 255)); // LED hiện tại sáng xanh dương nhạt
ring.show();
delay(100); // Tạo hiệu ứng xoay
}
}
Câu 9: 220 Ω

Code:
#include <LiquidCrystal.h>

// RS, E, D4, D5, D6, D7


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
lcd.begin(16, 2); // Khởi tạo LCD 16x2
lcd.print("Xin chao!"); // In ra dòng đầu tiên
}

void loop() {
lcd.setCursor(0, 1); // Di chuyển con trỏ đến dòng thứ 2
lcd.print("Arduino + LCD");
delay(1000);
}
Câu 10: Câu này em dùng tiếp mạch nối từ Câu 9 : 220 Ω
Code:
#include <Keypad.h>
#include <LiquidCrystal.h>

// Khai báo LCD (RS, E, D4, D5, D6, D7)


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// Cấu hình keypad


const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','+'},
{'4','5','6','-'},
{'7','8','9','*'},
{'C','0','=','/'}
};

// Cập nhật chân đúng theo nối mạch ở trên


byte rowPins[ROWS] = {6, 7, 8, 9}; // R1-R4
byte colPins[COLS] = {10, 13, A0, A1}; // C1-C4

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

// Biến xử lý phép tính


String num1 = "", num2 = "", op = "";
bool enteringSecond = false;

void setup() {
lcd.begin(16, 2);
lcd.print("May tinh Arduino");
delay(1500);
lcd.clear();
}

void loop() {
char key = keypad.getKey();

if (key) {
if (key >= '0' && key <= '9') {
if (!enteringSecond) {
num1 += key;
} else {
num2 += key;
}
} else if (key == '+' || key == '-' || key == '*' || key == '/') {
op = key;
enteringSecond = true;
} else if (key == '=') {
float result = 0;
float a = num1.toFloat();
float b = num2.toFloat();
if (op == "+") result = a + b;
else if (op == "-") result = a - b;
else if (op == "*") result = a * b;
else if (op == "/" && b != 0) result = a / b;

lcd.clear();
lcd.print(num1 + op + num2 + "=");
lcd.setCursor(0, 1);
lcd.print(result);

// Reset
num1 = "";
num2 = "";
op = "";
enteringSecond = false;
} else if (key == 'C') {
num1 = "";
num2 = "";
op = "";
enteringSecond = false;
lcd.clear();
}

// Hiển thị khi nhập


lcd.setCursor(0, 0);
lcd.print(num1 + op + num2);
}
}
Câu 11: 220 Ω

Code:
#include <IRremote.h>

const int RECV_PIN = 11;


const int RELAY_PIN = 8;
IRrecv irrecv(RECV_PIN);
decode_results results;

bool ledState = false;

void setup() {
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
irrecv.enableIRIn();
Serial.begin(9600);
}

void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
if (results.value == 0xFFA25D) {
ledState = !ledState;
digitalWrite(RELAY_PIN, ledState ? HIGH : LOW);
}
irrecv.resume();
}
}
Câu 12:

Code:
#include <Servo.h>

Servo myServo;

void setup() {
myServo.attach(9); // Chân điều khiển Servo
}

void loop() {
myServo.write(0); // Xoay về 0 độ
delay(1000);
myServo.write(90); // Xoay đến 90 độ
delay(1000);
myServo.write(180); // Xoay đến 180 độ
delay(1000);
}

You might also like