You are on page 1of 14

BÁO CÁO

THỰC TẬP VI ĐIỀUKHIỂN

Sinh viên thực hiện: Nhóm 2

Vĩnh Long, năm 2023


DANH SÁCH THÀNH VIÊN NHÓM
BÀI THỰC HÀNH SỐ 2: LẬP TRÌNH ĐIỀU KHIỂN NGÕ RA CƠ BẢN
2.1. Lập trình điều khiển tín hiệu đèn giao thông:
- SƠ ĐỒ NGUYÊN LÝ:

- CODE:
void setup() {
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
}
void loop() {
digitalWrite(7,0);
digitalWrite(11,1);
digitalWrite(6,1);
delay(7000);
digitalWrite(11,0);
digitalWrite(12,1);
delay(3000);
digitalWrite(12,0);
digitalWrite(13,1);
digitalWrite(6,0);
digitalWrite(4,1);
delay(7000);
digitalWrite(4,0);
digitalWrite(5,1);
delay(3000);
digitalWrite(13,0);
digitalWrite(11,1);
digitalWrite(5,0);
digitalWrite(6,1);
}

2.2. Lập trình điều khiển led:


- SƠ ĐỒ NGUYÊN LÝ:

- CODE:
void setup() {
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
}
void loop() {
digitalWrite(7,0);
digitalWrite(11,1);
digitalWrite(6,1);
delay(7000);
digitalWrite(11,0);
digitalWrite(12,1);
delay(3000);
digitalWrite(12,0);
digitalWrite(13,1);
digitalWrite(6,0);
digitalWrite(4,1);
delay(7000);
digitalWrite(4,0);
digitalWrite(5,1);
delay(3000);
digitalWrite(13,0);
digitalWrite(11,1);
digitalWrite(5,0);
digitalWrite(6,1);
}
2.3. Lập trình điều khiển led RGB:
- SƠ ĐỒ NGUYÊN LÝ:

- CODE:
void setup() {
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
}
void loop() {
digitalWrite(11,0);
digitalWrite(12,0);
digitalWrite(13,1);
delay(500);
digitalWrite(11,1);
digitalWrite(12,0);
digitalWrite(13,0);
delay(500);
digitalWrite(11,0);
digitalWrite(12,1);
digitalWrite(13,0);
delay(500);
digitalWrite(11,0);
digitalWrite(12,1);
digitalWrite(13,1);
delay(500);
digitalWrite(11,1);
digitalWrite(12,1);
digitalWrite(13,0);
delay(500);
digitalWrite(11,1);
digitalWrite(12,0);
digitalWrite(13,1);
delay(500);
}
BÀI THỰC HÀNH SỐ 3: LẬP TRÌNH ĐIỀU KHIỂN LCD
- SƠ ĐỒ NGUYÊN LÝ:

- CODE:
BÀI THỰC HÀNH SỐ 4: ĐIỀU KHIỂN TỐC ĐỘ, CHIỀU QUAY ĐỘNG CƠ
4.1. Lập trình điều khiển chiều quay động cơ:
- SƠ ĐỒ NGUYÊN LÝ:

- CODE:
#define IN1 7
#define IN2 6
#define IN3 5
#define IN4 4
#define MAX_SPEED 255 //từ 0-255
#define MIN_SPEED 0
void setup()
{
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void motor_1_Dung() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
}
void motor_2_Dung() {
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
void motor_1_Tien(int speed) { //speed: từ 0 - MAX_SPEED
speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị
nằm trong một khoảng từ 0 - MAX_SPEED - http://arduino.vn/reference/constrain
digitalWrite(IN1, HIGH);// chân này không có PWM
analogWrite(IN2, 255 - speed);
}
vod motor_1_Lui(int speed) {
speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị
nằm trong một khoảng từ 0 - MAX_SPEED - http://arduino.vn/reference/constrain
digitalWrite(IN1, LOW);// chân này không có PWM
analogWrite(IN2, speed);
}
void motor_2_Tien(int speed) { //speed: từ 0 - MAX_SPEED
speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị
nằm trong một khoảng từ 0 - MAX_SPEED - http://arduino.vn/reference/constrain
analogWrite(IN3, speed);
digitalWrite(IN4, LOW);// chân này không có PWM
}
void motor_2_Lui(int speed) {
speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị
nằm trong một khoảng từ 0 - MAX_SPEED - http://arduino.vn/reference/constrain
analogWrite(IN4, 255 - speed);
digitalWrite(IN3, HIGH);// chân này không có PWM
}
void loop()
{
motor_1_Tien(MAX_SPEED);
motor_2_Lui(MAX_SPEED); // motor 1 tiến
delay(5000);//tiến 5 s
motor_2_Tien(MAX_SPEED); //motor 2 lùi
motor_1_Lui(MAX_SPEED);
// motor 1 vẫn tiến
delay(5000);//tiến 2 s
motor_1_Dung();
motor_2_Dung();
delay(1000);//dừng 10s
}
4.2. Lập trình điều khiển tốc độ động cơ:
- SƠ ĐỒ NGUYÊN LÝ:

- CODE:
void setup() {
pinMode (10,OUTPUT);
pinMode (11,OUTPUT);
pinMode (12,OUTPUT);
pinMode (13,OUTPUT);
}
void loop() {
analogWrite(10,255);
analogWrite(11,255);
digitalWrite(12,1);
digitalWrite(13,0);
delay(500);
analogWrite(10,255);
analogWrite(11,127);
digitalWrite(12,1);
digitalWrite(13,0);
delay(500);
}
BÀI THỰC HÀNH SỐ 9: LẬP TRÌNH TRUYỀN DỮ LIỆU NỐI TIẾP
9.1. Thiết kế giao diện điều khiển bluetooth trên Android:
- GIAO DIỆN:

- CODE:
const int LED = 13;
/*Declaring that there is an LED on pin 5 of the arduino board. We use
const as we will not change this. You don't have to name it LED. You
can even put your name instead.*/
char switchstate;
void setup() {//Here the code only runs once.
Serial.begin(9600);
/*To start serial communication at a rate of 9600 bits per second. This
is the default rate anyways.*/
pinMode(13, OUTPUT);
//Declaring that the LED is an output.
}
void loop() {//This code repeats. This is our main code.
while(Serial.available()>0){
//code to be executed only when Serial.available()>0
/*Serial.available>0 is to check if there is any reading from the
HC-05 Bluetooth module.*/
switchstate = Serial.read();
/*The character we had declared earlier is now being assigned a value-
the value of whatever Serial.read() is.*/
//Serial.read() is to read the value coming from app.
Serial.print(switchstate);
//This will print the value onto the Serial monitor.
Serial.print("\
");
//This moves to the next line after every new line printed.
delay(15);
/*Gives a break of 15 milliseconds. Delay is for human eye, and for
speed of some computers, as some will crash at high speeds.*/
if(switchstate == '1'){//Checking if the value from app is '1'
digitalWrite(13, HIGH);
//If it is, write the component on pin 5(LED) high.
}
else if(switchstate == '0'){//Else, if the vaue from app is '0',
digitalWrite(13, LOW);//Write the component on pin 5(LED) low.
}
}
}
9.2. Điểu khiển PWM:
- SƠ ĐỒ NGUYÊN LÝ:

-CODE:
Int dir = 13;
Int pwm = 11;
Void setup () {
pinMode (dir, OUTPUT);
pinMode (pwm, OUTPUT);
}
Void thuan (){
digitalWrite (dir, 1);
digitalWrite (pwm, 1);
}
Void nguoc (){
digitalWrite (dir, 0);
digitalWrite (pwm, 1);
}
Void dung (){
digitalWrite (ena,0);
}
Void loop (){
thuan ();
delay (3000);
nguoc ();
delay (2000);
dung ();
delay (1000);
}

You might also like