Tài liệu tham khảo mã code Arduino - Công nghệ thông tin | Đại học Bà Rịa - Vũng Tàu

Tài liệu tham khảo mã code Arduino - Công nghệ thông tin | Đại học Bà Rịa - Vũng Tàu  Giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng, ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học

#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#include <WTV020SD16P.h>
const int motor = 6; // khai báo chân PWM điều khiển motor
const int button = 8; // khai báo chân đọc nút bấm
boolean oldState = 0; // trạng thái của nút bấm
int time; // biến lưu thời gian
int resetPin = 4; // The pin number of the reset pin.
int clockPin = 5; // The pin number of the clock pin.
int dataPin = 6; // The pin number of the data pin.
int busyPin = 7; // The pin number of the busy pin.
WTV020SD16P wtv020sd16p(resetPin,clockPin,dataPin,busyPin);
boolean state = 0;
int speedMotor = 0; // biến lưu giữ tốc độ của motor
#define sensor 2
void setup()
{
Serial.begin(9600); // giao tiếp Serial với 9600 baudrate.
pinMode(motor, OUTPUT);
pinMode(button, INPUT);
pinMode(sensor, INPUT);
Serial.begin(9600);
//Initializes the module.
wtv020sd16p.reset();
}
void loop()
{
#include <WTV020SD16P.h>
if (digitalRead(button) != oldState) { // kiểm tra thay đổi trạng thái nút bấm
time = millis(); // reset lại bộ timer khi nút bấm thay đổi trạng thái
}
state = digitalRead(button); // đọc giá trị nút bấm
int duration = millis() - time; // đo thời gian duy trì trạng thái hiện tại
duration = constrain(duration, 0, 5000); // 0 <= duration <= 5000 ms.
if (state == 1) { //nếu đang nhấn nút
speedMotor = map(duration, 0, 5000, 0, 255);
analogWrite(motor, speedMotor); // xuất xung PWM để điều khiển tốc độ motor
// duty cycle càng lớn thì motor quay càng nhanh
delay(500);
}
Serial.println(speedMotor); // in ra Serial monitor giá trị tốc độ
oldState = state; // cập nhật trạng thái nút bấm.
Serial.print("Gia tri cam bien:");
Serial.println(digitalRead(sensor)); //Nếu sensor = 1 thì không phát hiện vật cản, nếu sensor = 0 thì phát
hiện vật cản.
delay(1000);
//Plays synchronously an audio file. Busy pin is used for this method.
wtv020sd16p.playVoice(0);
//Plays asynchronously an audio file.
wtv020sd16p.asyncPlayVoice(1);
//Plays audio file number 1 during 5 seconds.
delay(5000);
//Pauses audio file number 1 during 5 seconds.
// wtv020sd16p.pauseVoice();
delay(5000);
//Resumes audio file number 1 during 5 seconds.
wtv020sd16p.pauseVoice();
delay(5000);
//Stops current audio file playing.
wtv020sd16p.stopVoice();
//Plays synchronously an audio file. Busy pin is used for this method.
wtv020sd16p.asyncPlayVoice(2);
delay(2000);
//Mutes audio file number 2 during 2 seconds.
wtv020sd16p.mute();
delay(2000);
//Unmutes audio file number 2 during 2 seconds.
wtv020sd16p.unmute();
delay(2000);
//Stops current audio file playing.
wtv020sd16p.stopVoice();
}
| 1/3

Preview text:

#include #include #include #include
const int motor = 6; // khai báo chân PWM điều khiển motor
const int button = 8; // khai báo chân đọc nút bấm
boolean oldState = 0; // trạng thái của nút bấm
int time; // biến lưu thời gian
int resetPin = 4; // The pin number of the reset pin.
int clockPin = 5; // The pin number of the clock pin.
int dataPin = 6; // The pin number of the data pin.
int busyPin = 7; // The pin number of the busy pin.
WTV020SD16P wtv020sd16p(resetPin,clockPin,dataPin,busyPin); boolean state = 0;
int speedMotor = 0; // biến lưu giữ tốc độ của motor #define sensor 2 void setup() {
Serial.begin(9600); // giao tiếp Serial với 9600 baudrate. pinMode(motor, OUTPUT); pinMode(button, INPUT); pinMode(sensor, INPUT); Serial.begin(9600); //Initializes the module. wtv020sd16p.reset(); } void loop() { #include
if (digitalRead(button) != oldState) { // kiểm tra thay đổi trạng thái nút bấm
time = millis(); // reset lại bộ timer khi nút bấm thay đổi trạng thái }
state = digitalRead(button); // đọc giá trị nút bấm
int duration = millis() - time; // đo thời gian duy trì trạng thái hiện tại
duration = constrain(duration, 0, 5000); // 0 <= duration <= 5000 ms.
if (state == 1) { //nếu đang nhấn nút
speedMotor = map(duration, 0, 5000, 0, 255);
analogWrite(motor, speedMotor); // xuất xung PWM để điều khiển tốc độ motor
// duty cycle càng lớn thì motor quay càng nhanh delay(500); }
Serial.println(speedMotor); // in ra Serial monitor giá trị tốc độ
oldState = state; // cập nhật trạng thái nút bấm.
Serial.print("Gia tri cam bien:");
Serial.println(digitalRead(sensor)); //Nếu sensor = 1 thì không phát hiện vật cản, nếu sensor = 0 thì phát hiện vật cản. delay(1000);
//Plays synchronously an audio file. Busy pin is used for this method. wtv020sd16p.playVoice(0);
//Plays asynchronously an audio file.
wtv020sd16p.asyncPlayVoice(1);
//Plays audio file number 1 during 5 seconds. delay(5000);
//Pauses audio file number 1 during 5 seconds. // wtv020sd16p.pauseVoice(); delay(5000);
//Resumes audio file number 1 during 5 seconds. wtv020sd16p.pauseVoice(); delay(5000);
//Stops current audio file playing. wtv020sd16p.stopVoice();
//Plays synchronously an audio file. Busy pin is used for this method.
wtv020sd16p.asyncPlayVoice(2); delay(2000);
//Mutes audio file number 2 during 2 seconds. wtv020sd16p.mute(); delay(2000);
//Unmutes audio file number 2 during 2 seconds. wtv020sd16p.unmute(); delay(2000);
//Stops current audio file playing. wtv020sd16p.stopVoice(); }