Ухаалаг интерактив гэрлэн дохио: 5 алхам (зурагтай)
Ухаалаг интерактив гэрлэн дохио: 5 алхам (зурагтай)
Anonim
Ухаалаг интерактив гэрлэн дохио
Ухаалаг интерактив гэрлэн дохио

Дэлхийн хамгийн шилдэг, хамгийн интерактив гэрлэн дохиог бүтээхэд бэлэн үү? Сайн байна! Энэхүү гарын авлагад бид Arduino ашиглан хэрхэн бие даан бүтээх талаар тайлбарлах болно.

Шаардлагатай бүрэлдэхүүн хэсгүүд:- Arduino (..duh)- LM317 Mosfet- 2x 60cm аналог RGB LED зурвас (12V)- PVC хоолой (1м х 125мм)- Кабель (улаан ба хар)- Гэрлийн тагны металл хавтан- Гэрэлд зориулсан акрил -icons (.svg дүрсийг flaticon.com хаягаар шалгана уу)- Spraycan хар ба цагаан будаг.- Цахилгаан соронзон хальс- Шаардлагатай бүх гагнуурын бүрэлдэхүүн хэсгүүд- Шаардлагатай бамбай бүхий дэлгэц (зааварт ашиглагдаагүй)

Алхам 1: Алхам 1: Хөнгөн таг хийнэ

Алхам 1: Хөнгөн таг хийнэ
Алхам 1: Хөнгөн таг хийнэ

Загвар нь үнэхээр танаас хамаарна. Бид гэрлийг хадгалахын тулд 15х15 см хэмжээтэй малгай хийсэн. Бид металл хавтанг зөв хэмжээгээр хайчилж, тагийг зөв хэлбэртэй нугалахад металл нугалагч (үгүй, Аватараас биш) ашигласан. Арын хавтанг өөр бүрэлдэхүүн хэсгээр хийсэн.

Алхам 2: Алхам 2: PVC туйлыг бэлтгэх

Алхам 2: PVC туйлыг бэлтгэх
Алхам 2: PVC туйлыг бэлтгэх

Гэрлийн тагийг тааруулахын тулд PVC шонгийн 2 нүхийг хайчилж ав. Дараа нь хар будаг шүршигч ашиглан бүх зүйлийг хараар будна. Хэрэв та хүсвэл туйлын ёроолд цагаан зураас нэмж болно (Нидерландад түгээмэл байдаг).

Алхам 3: Алхам 3: RGB LED туузыг угсрах, нийлэг хавтанг элсээр цэвэрлэх

Алхам 3: RGB LED туузыг угсрах, нийлэг хавтанг элсээр цэвэрлэх
Алхам 3: RGB LED туузыг угсрах, нийлэг хавтанг элсээр цэвэрлэх
Алхам 3: RGB LED туузыг угсрах, нийлэг хавтанг элсээр цэвэрлэх
Алхам 3: RGB LED туузыг угсрах, нийлэг хавтанг элсээр цэвэрлэх

Дараа нь та гэрлийн тагны дотор RGB LED туузыг угсрах хэрэгтэй. Тэднийг малгайныхаа эргэн тойронд чангалж, урд талдаа аль болох ойрхон байрлуул.

Дараа нь та нийлэг хавтан дээр сонгосон тэмдгийг элсээр цэвэрлэх хэрэгтэй болно. Соронзон хальс аваад нийлэг хавтанг бүхэлд нь таглана. Дараа нь хүссэн хэлбэр/дүрсээ хайчилж ав. Үүний дараа та хавтанг элсээр цэвэрлэж, царцсан шил шиг эффект авах боломжтой.

Алхам 4: Алхам 4: RGB LED туузыг Arduino руу холбоно уу

Алхам 4: RGB LED туузыг Arduino руу холбоно уу
Алхам 4: RGB LED туузыг Arduino руу холбоно уу

RGB LED туузыг Arduino -тэй холбох нь хамгийн хэцүү хэсэг юм. Тээглүүрийг холбохдоо туузныхаа 12 вольт дээр 12 вольтыг тавьсан эсэхээ шалгаарай. Улаан эсвэл ногоон өнгийн өнгө бүрийн хооронд та мосфет тавих хэрэгтэй. Удирдсан туузны өгөгдлийг мосфетийн дунд зүү, зүүн зүүг Arduino -тойгоо холбоно уу. Зөв зүү нь Arduino -ийн газар руу буцах ёстой.

Алхам 5: Алхам 5: Arduino кодыг бичнэ үү

Алхам 5: Arduino кодыг бичнэ үү
Алхам 5: Arduino кодыг бичнэ үү

Энэхүү Arduino кодыг bluetooth удирддаг, учир нь бид дотоод дэлгэц ашиглаагүй. Тиймээс кодыг bluetooth мессежээр дамжуулан loop () функцээр хянадаг.

#тодорхойлох r 6 #тодорхойлох g 11 #оруулах

SoftwareSerial mySerial (10, 11); // RX, TX

#ууртайг тодорхойлох Урт 4

#унаж буйг тодорхойлох Урт 3 #аз жаргалтайг тодорхойлох Урт 4 #Утасны Уртыг 13 тодорхойлох

bool товчлуур дарагдсан;

int currentMillis; int өмнөхMillis;

int animation1Delay;

int animation2Delay; int animation3Delay; int animation4Delay;

bool animation1Done = худал;

bool animation2Done = худал; bool animation3Done = худал; bool animation4Done = худал; bool animation5Done = худал;

bool blockLight = худал;

bool lightRed = үнэн;

int currentAnimationDelay;

хүчингүй тохиргоо () {

// нэг удаа ажиллуулахын тулд тохиргооны кодоо энд оруулна уу: pinMode (r, OUTPUT); pinMode (g, OUTPUT);

Цуваа эхлэх (9600);

mySerial.begin (38400); Serial.setTimeout (25); buttonPressed = худал; currentMillis = 0; өмнөхMillis = 0;

animation1Delay = алхах урт * 1000;

animation2Delay = wavingLength * 1000; animation3Delay = happyLength * 1000; animation4Delay = walkingOutLength * 1000;

// currentAnimationDelay = animation1Delay * 1000;

lightRed = үнэн; }

void loop () {

// саатал (20);

// давтан ажиллуулахын тулд үндсэн кодоо энд оруулна уу: unsigned long currentMillis = millis (); if (buttonPressed == true) {if (animation1Done == false) {if (currentMillis - previousMillis> animation1Delay) {Serial.println ("0"); өмнөхMillis = одоогийнMillis; animation1Done = үнэн; }} else if (animation2Done == false ба animation1Done == true) {if (currentMillis - previousMillis> animation2Delay) {Serial.println ("1"); өмнөхMillis = одоогийнMillis; animation2Done = үнэн; }} else if (animation3Done == false and animation2Done == true) {if (currentMillis - previousMillis> animation3Delay) {Serial.println ("2"); //Serial.println("sound:green "); өмнөхMillis = одоогийнMillis; animation3Done = үнэн; lightRed = худал; }} өөр if (animation4Done == худал ба animation3Done == үнэн) {if (currentMillis - previousMillis> animation4Delay) {өмнөхMillis = currentMillis; animation4Done = үнэн; Serial.println ("FLSH"); }}}

if (Serial.available ()) {

String str = Serial.readString (); хэрэв (str == "CMD: BUTTON_PRESSED") {

animation1Done = худал;

animation2Done = худал; animation3Done = худал; animation4Done = худал; animation5Done = худал;

animation1Delay = алхах урт * 1000;

animation2Delay = wavingLength * 1000; animation3Delay = happyLength * 1000; animation4Delay = walkingOutLength * 1000;

// currentAnimationDelay = animation1Delay * 1000;

lightRed = үнэн; Serial.println ("3"); buttonPressed = үнэн; өмнөхMillis = одоогийнMillis; }

хэрэв (str == "RED") {

blockLight = худал; lightRed = үнэн; }

хэрэв (str == "НОГООН") {

blockLight = худал; lightRed = худал; }

if (str == "LIGHT: GREEN: OFF") {

blockLight = үнэн; analogWrite (g, 255); } if (str == "LIGHT: GREEN: ON") {blockLight = үнэн; analogWrite (g, 0); } //Serial.println(str); }

хэрэв (blockLight == худал) {

хэрэв (lightRed == үнэн) {

analogWrite (r, 0); analogWrite (g, 255); } if (lightRed == false) {analogWrite (r, 255); analogWrite (g, 0); }}}

Зөвлөмж болгож буй: