Mục lục:
- Bước 1: Bắt đầu đơn giản: Thêm nút
- Bước 2: Sửa đổi mã để đăng ký số lần nhấn nút
- Bước 3: Thêm càng nhiều nút khi bạn có con
- Bước 4: Thêm Buzzer
- Bước 5: Thêm màn hình LCD
Video: Công cụ sửa đổi hành vi trẻ em: 5 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-02-01 14:43
Công cụ sửa đổi hành vi của trẻ em ghi lại số lần con bạn gặp rắc rối (còn gọi là Đình công) và khi chúng lên ba tuổi, một còi báo động và màn hình LCD thông báo rằng chúng đã được tiếp đất.
Bước 1: Bắt đầu đơn giản: Thêm nút
Bước đầu tiên trong Dự án này rất đơn giản. Thêm 1 nút. Trong bước này, bạn cần có 4 dây Male to Male, 1 điện trở 220 và một nút nhấn.
- Kết nối 5V ở phía Nguồn với hàng dương trên bảng mạch
-
Kết nối GND với mặt âm của bảng mạch
- Chèn nút bấm vào breadboard
-
Kết nối nguồn trên hàng cố định với phần dưới cùng bên trái của nút nhấn
- Nối đất nút bằng cách sử dụng một điện trở vào phần dưới cùng bên phải của nút nhấn vào hàng âm của bảng mạch.
- Kết nối # 13 ở phía Kỹ thuật số của Arduino với phía trên cùng bên phải của nút.
Xác minh bằng mã của bạn rằng nút đang đăng ký:
int child1ButtonPin = 13; // Đây là chốt mà nút nhấn của chúng tôi được kết nối với
int child1ButtonState = 0; // Đọc trạng thái của nút (bật / tắt)
int child1Strike = 0; // Có bao nhiêu cuộc đình công đứa trẻ
// chức năng thiết lập chạy một lần khi bạn nhấn đặt lại hoặc cấp nguồn cho bo mạch
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // hàm lặp đi lặp lại mãi mãi void loop () {// đọc trạng thái của nút (bật hoặc tắt) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Nút được nhấn {Serial.println ("HIGH"); chậm trễ (5000); }
if (child1ButtonState == LOW)
{Serial.println ("THẤP"); chậm trễ (5000); }}
Bước 2: Sửa đổi mã để đăng ký số lần nhấn nút
Sửa đổi Mã để đăng ký một nút bấm:
int child1ButtonPin = 13; // Đây là chốt mà nút nhấn của chúng ta được kết nối vớiint child1ButtonState = 0; // Đọc trạng thái của nút (bật / tắt) int child1PreviousState = 0; // Trạng thái nút trước int child1Strike = 0;
// chức năng thiết lập chạy một lần khi bạn nhấn đặt lại hoặc cấp nguồn cho bo mạch
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // hàm lặp đi lặp lại mãi mãi void loop () {// đọc trạng thái của nút (bật hoặc tắt) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Nút được nhấn {child1Strike ++; Serial.println (child1Strike); chậm trễ (1000); }}
}
Tiếp theo Sửa đổi mã để đứa trẻ nhận được 3 cảnh cáo, sau đó chúng sẽ nhận được thông báo rằng chúng đã có cơ sở:
int child1ButtonPin = 13; // Đây là chốt mà nút nhấn của chúng ta được kết nối vớiint child1ButtonState = 0; // Đọc trạng thái của nút (bật / tắt) int child1PreviousState = 0; int child1Strike = 0;
// chức năng thiết lập chạy một lần khi bạn nhấn đặt lại hoặc cấp nguồn cho bo mạch
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // hàm lặp đi lặp lại mãi mãi void loop () {// đọc trạng thái của nút (bật hoặc tắt) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Nút được nhấn {child1Strike ++; Serial.println (child1Strike);
if (child1Strike> = 3)
{Serial.println ("Con 1 được nối đất!"); } delay (3000); }}
}
Serial Moniter sẽ giống như hình trên.
Lưu ý: Hãy chắc chắn rằng bạn cảm thấy thoải mái với sự chậm trễ. Để một chút chậm trễ và nó sẽ đăng ký 1 nút nhấn nhiều hơn sau đó một nút!
Bước 3: Thêm càng nhiều nút khi bạn có con
Trong bước này, chúng tôi chỉ cần sao chép vài bước cuối cùng. Thêm nhiều nút như bạn làm với trẻ em. Trong trường hợp của tôi, tôi thêm bốn. Đảm bảo thay đổi mã của bạn cho mã Pin kỹ thuật số mà nút có dây. Trong trường hợp của tôi, tôi đã sử dụng các chân từ 12 đến 10 để thêm các nút của mình. Trong trường hợp bạn cần nhắc ở đây là Bước 1:
-
Kết nối 5V ở phía Nguồn với hàng dương trên bảng mạch
- Kết nối GND với mặt âm của bảng mạch
-
Chèn nút nhấn vào breadboard Kết nối nguồn trên hàng cố định với phần dưới cùng bên trái của nút nhấn
- Nối đất nút bằng cách sử dụng một điện trở vào phần dưới cùng bên phải của nút nhấn vào hàng âm của bảng mạch.
- Kết nối (số pin của bạn) ở phía Kỹ thuật số của Arduino với phía trên cùng bên phải của nút.
Bạn cũng sẽ cần sửa đổi mã để xử lý tất cả các nút của mình. Hãy ghi nhớ rằng nếu bạn cần phải cẩn thận với các Chuỗi bạn đã sử dụng. Bạn không thể thêm vào chữ thường với nhau. Tốt nhất nên khai báo 1 là một đối tượng String.
int child1ButtonPin = 13; // Đây là chốt mà nút nhấn của chúng ta được kết nối vớiint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Đọc trạng thái của nút (bật / tắt) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; int child2Strike = 0; int child3Strike = 0; int child4Strike = 0;
// chức năng thiết lập chạy một lần khi bạn nhấn đặt lại hoặc cấp nguồn cho bo mạch
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (con3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // hàm lặp đi lặp lại mãi mãi void loop () {// đọc trạng thái của nút (bật hoặc tắt) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Nút được nhấn {child1Strike ++; Serial.println (String ("Con 1 Có:") + child1Strike + "đình công");
if (child1Strike> = 3)
{Serial.println ("Con 1 được nối đất!"); } delay (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Nút được nhấn {child2Strike ++; Serial.println (String ("Con 2 co:") + child2Strike + "chup");
if (child2Strike> = 3)
{Serial.println ("Con 2 được nối đất!"); } delay (3000); }}
if (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Nút được nhấn {child3Strike ++; Serial.println (String ("Con 3 co:") + con3Strike + "chuoi");
if (child3Strike> = 3)
{Serial.println ("Con 3 được nối đất!"); } delay (3000); }}
if (child4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // Nút được nhấn {child4Strike ++; Serial.println (String ("Con 4 co:") + con4Strike + "chuoi");
if (child4Strike> = 3)
{Serial.println ("Con 4 được nối đất!"); } delay (3000); }}}
Bước 4: Thêm Buzzer
Bây giờ hãy đảm bảo rằng con bạn biết rằng chúng có cơ sở. Cho phép thêm một bộ rung. Để kết nối bộ rung, hãy làm theo các bước đơn giản sau.
- Thêm Buzzer vào breadboard của bạn, lên kế hoạch cho không gian vì màn hình LCD sắp xuất hiện.
- Kết nối phía Đầu tiên (bộ rung phải có dấu + ở phía đầu phía sau) với Ghim bạn chọn. Tôi đã làm 9.
- Kết nối phía bên kia với đường ray nối đất của bảng mạch của bạn.
Tiếp theo, sửa đổi mã của bạn để tắt bộ rung khi trẻ tiếp đất. Có một số cách khác nhau để viết mã cho bộ rung của bạn nhưng tôi thích âm báo (buzzerName, hertz, thời lượng) vì sự đơn giản của nó Vì vậy, một ví dụ về điều này sẽ là âm báo (buzzer, 4000, 300).
int child1ButtonPin = 13; // Đây là chốt mà nút nhấn của chúng ta được kết nối vớiint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Đọc trạng thái của nút (bật / tắt) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int buzzer = 2;
// chức năng thiết lập chạy một lần khi bạn nhấn đặt lại hoặc cấp nguồn cho bo mạch
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (con3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (buzzer, OUTPUT); } // hàm lặp đi lặp lại mãi mãi void loop () {// đọc trạng thái của nút (bật hoặc tắt) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Nút được nhấn {child1Strike ++; Serial.println (String ("Con 1 Có:") + child1Strike + "đình công");
if (child1Strike> = 3)
{Serial.println ("Con 1 được nối đất!"); âm báo (buzzer, 5000, 500); // Gửi âm thanh 5 hertz trong 5 mili giây
}
chậm trễ (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Nút được nhấn {child2Strike ++; Serial.println (String ("Con 2 co:") + child2Strike + "chup");
if (child2Strike> = 3)
{Serial.println ("Con 2 được nối đất!"); âm báo (buzzer, 5000, 500); } delay (3000); }}
if (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Nút được nhấn {child3Strike ++; Serial.println (String ("Con 3 co:") + con3Strike + "chuoi");
if (child3Strike> = 3)
{Serial.println ("Con 3 được nối đất!"); âm báo (buzzer, 5000, 500); } delay (3000); }}
if (child4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // Nút được nhấn {child4Strike ++; Serial.println (String ("Con 4 co:") + con4Strike + "chuoi");
if (child4Strike> = 3)
{Serial.println ("Con 4 được nối đất!"); âm báo (buzzer, 5000, 500); } delay (3000); }}}
Bước 5: Thêm màn hình LCD
Bây giờ hãy để một màn hình LCD để đọc rõ ràng và dễ dàng.
- Đầu tiên, thêm một chiết áp vào breadboard của bạn để điều khiển màn hình LCD. Hãy cẩn thận về nơi bạn đặt nó vì bạn có thể sắp hết dung lượng.
- Sử dụng phía trước bên trái để kết nối chiết áp của bạn với đường ray điện
- Sử dụng bên phải phía trước để nối đất chiết áp của bạn.
- Mặt sau sẽ được kết nối với màn hình LCD.
- Thêm màn hình LCD vào breadboard của bạn
- Nối đất chốt màn hình đầu tiên vào thanh nối đất
- Nối chốt thứ hai vào thanh ray điện.
- Chân LCD thứ ba đi đến Chân 8 trên Arduino
- Chân LCD thứ tư đi đến Chân 7 trên Arduino
- Thứ năm chuyển đến Pin 6 trên Arduino
- Chân thứ sáu chuyển đến chân 5 trên Arduino
- Các chân từ 7 đến 10 trên màn hình LCD trống
- Pin 11 chuyển đến Pin 5 trên Arduino
- Chân 12 đi vào đường ray nối đất
- Pin 13 chuyển đến Pin 4 trên Arduino
- Chân 14 đi đến mặt sau của chiết áp
- Chân 15 đi đến Power rail
- Chân 16 đi đến Đường sắt mặt đất.
Bây giờ bạn sẽ phải cập nhật mã của mình để sử dụng màn hình LCD. Đối với điều đó, bạn sẽ sử dụng Tinh thể lỏng libary. Hãy cẩn thận với các báo cáo in LCD của bạn. Hãy nhớ xóa màn hình khi bạn cần một tin nhắn mới. Cũng nhớ đặt con trỏ khi bạn muốn sử dụng hai dòng.
#bao gồm
Màn hình LCD LiquidCrystal (3, 4, 5, 6, 7, 8); // Đặt màn hình LCD
int child1ButtonPin = 13; // Đây là chốt mà nút nhấn của chúng ta được kết nối với int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Đọc trạng thái của nút (bật / tắt) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Trạng thái trước của nút được nhấn int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Có bao nhiêu Strikes một đứa trẻ có int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int buzzer = 9; // Buzzer
// chức năng thiết lập chạy một lần khi bạn nhấn đặt lại hoặc cấp nguồn cho bo mạch
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Con"); lcd.setCursor (0, 1); lcd.print ("Modifer Hành vi"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (con3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (buzzer, OUTPUT); } // hàm lặp đi lặp lại mãi mãi void loop () {lcd.setCursor (0, 0); // đọc trạng thái của nút (bật hoặc tắt) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Nút được nhấn {lcd.clear (); child1Strike ++; Serial.println (String ("Con 1 Có:") + child1Strike + "đình công"); lcd.print ("Con 1 Có:"); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print ("Đình công!");
if (child1Strike> = 3)
{Serial.println ("Con 1 được nối đất!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Con 1 is"); lcd.setCursor (0, 1); lcd.print ("Nối đất!");
âm báo (buzzer, 5000, 500); // Gửi âm thanh 5 hertz trong 5 mili giây
}
chậm trễ (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Nút được nhấn {child2Strike ++; Serial.println (String ("Con 2 co:") + child2Strike + "chup"); lcd.print ("Con 2 Có:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Đình công!"); if (child2Strike> = 3) {Serial.println ("Con 2 được nối đất!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Con 2 la"); lcd.setCursor (0, 1); lcd.print ("Nối đất!"); âm báo (buzzer, 5000, 500); } delay (3000); }}
if (child3ButtonState! = child3PreviousState)
{lcd.clear (); if (child3ButtonState == HIGH) // Nút được nhấn {child3Strike ++; Serial.println (String ("Con 3 co:") + con3Strike + "chuoi"); lcd.print ("Con 3 Có:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Đình công!"); if (child3Strike> = 3) {Serial.println ("Con 3 được nối đất!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Con 3 la"); lcd.setCursor (0, 1); lcd.print ("Nối đất!"); âm báo (buzzer, 5000, 500); } delay (3000); }}
if (child4ButtonState! = child4PreviousState)
{lcd.clear (); if (child4ButtonState == HIGH) // Nút được nhấn {child4Strike ++; Serial.println (String ("Con 4 co:") + con4Strike + "chuoi"); lcd.print ("Con 4 Có:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Đình công!");
if (child4Strike> = 3)
{Serial.println ("Con 4 được nối đất!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Con 4 la"); lcd.setCursor (0, 1); lcd.print ("Đã nối đất!"); âm báo (buzzer, 5000, 500); } delay (3000); }}} Và đó là tất cả những gì bạn cần để xây dựng Trình sửa đổi hành vi trẻ em của riêng bạn
Đề xuất:
Đồng hồ vũ trụ - Thay đổi màu sắc mỗi khi một phi hành gia vào không gian: 8 bước (có hình ảnh)
Đồng hồ vũ trụ - Thay đổi màu sắc mỗi khi một phi hành gia vào không gian: Xin chào! Bạn có phải là một người đam mê không gian? Nếu có thì hi-fi! Tôi yêu không gian và thiên văn học. Rõ ràng tôi không phải là phi hành gia để lên đó và có cái nhìn sâu hơn về vũ trụ. Nhưng mỗi khi tôi phát hiện ra rằng một người từ trái đất đã du hành lên bầu trời, tôi lại nhận ra
Bộ công cụ thực hành hàn SMD, hoặc cách tôi học cách ngừng lo lắng và yêu thích bộ công cụ giá rẻ của Trung Quốc: 6 bước
Bộ công cụ thực hành hàn SMD, hoặc Cách tôi học cách ngừng lo lắng và yêu thích bộ công cụ giá rẻ của Trung Quốc: Đây không phải là một tài liệu hướng dẫn về hàn. Đây là tài liệu có thể hướng dẫn về cách xây dựng một bộ tài liệu tiếng Trung giá rẻ. Câu ngạn ngữ là bạn nhận được những gì bạn phải trả, và đây là những gì bạn nhận được: Được ghi chép kém. Chất lượng bộ phận đáng nghi vấn. Không hỗ trợ. Vậy tại sao phải mua
Tạo PCB theo sở thích với các công cụ CAD chuyên nghiệp bằng cách sửa đổi " Quy tắc thiết kế ": 15 bước (có hình ảnh)
Tạo PCB theo sở thích với các công cụ CAD chuyên nghiệp bằng cách sửa đổi " Quy tắc thiết kế ": Thật tuyệt khi có một số công cụ bảng mạch chuyên nghiệp có sẵn cho những người có sở thích. Dưới đây là một số mẹo để sử dụng chúng
Lưu hành tinh và túi của bạn. $$ Chuyển đổi máy ảnh kỹ thuật số P&S giá rẻ của bạn thành có thể sạc lại: 4 bước (có hình ảnh)
Lưu hành tinh và túi của bạn. $$ Chuyển đổi Máy ảnh kỹ thuật số P&S giá rẻ của bạn thành Máy ảnh có thể sạc lại: Cách đây nhiều năm, tôi đã mua một Máy ảnh kỹ thuật số Dolphin Jazz 2.0 Megapixel. Nó có các tính năng và giá cả tốt. Nó cũng có cảm giác ngon miệng đối với các nhà hàng AAA. Không ai có thể tránh khỏi một thử thách, tôi nghĩ tôi sẽ sửa đổi nó để sử dụng pin có thể sạc lại để không lãng phí ba
Tấn công / sửa đổi Head Mounted Dispaly (HMD) để tạo ra màn hình lớn hơn: 8 bước
Hack / sửa đổi Head Mounted Dispaly (HMD) để Làm cho Màn hình Lớn hơn: Xin chào …. trong hướng dẫn đầu tiên của tôi, tôi muốn chỉ cho bạn cách hack / sửa đổi HMD đơn sắc từ Wild Planet. Sự sửa đổi này làm cho toàn bộ điều trở nên NHỎ hơn và nó làm cho bạn cảm thấy rằng bạn đang ngồi trong một CINEMA !!! Điều bất lợi là, th