Mundarija:

Smart interaktiv svetofor: 5 qadam (rasmlar bilan)
Smart interaktiv svetofor: 5 qadam (rasmlar bilan)

Video: Smart interaktiv svetofor: 5 qadam (rasmlar bilan)

Video: Smart interaktiv svetofor: 5 qadam (rasmlar bilan)
Video: PLAYDEADS INSIDE SCARES EVERYONE OUTSIDE 2024, Noyabr
Anonim
Smart interaktiv svetofor
Smart interaktiv svetofor

Dunyodagi eng yaxshi va interaktiv svetoforni qurishga tayyormisiz? Yaxshi! Ushbu qo'llanmada biz Arduino -dan qanday qilib o'zingiz qurishingiz mumkinligini tushuntiramiz.

Kerakli komponentlar:- Arduino (..duh)- LM317 Mosfet- 2x60 sm analog RGB LED chiziqlar (12V)- PVX quvur (1m x 125mm)- Kabellar (qizil va qora)- Yorug'lik qopqog'i uchun metall plitalar- Yorug'lik uchun akril. - piktogramma (.svg piktogramma uchun flaticon.com saytini tekshiring)- Spraycan qora va oq bo'yoq.- Elektr tasmasi- Barcha kerakli lehim komponentlari- Kerakli ekranli displey (qo'llanmada ishlatilmaydi)

1-qadam: 1-qadam: yorug'lik qopqoqlarini yarating

1-qadam: yorug'lik panellarini yarating
1-qadam: yorug'lik panellarini yarating

Dizayn haqiqatan ham sizga bog'liq. Chiroqlarni ushlab turish uchun biz 15x15 sm hajmdagi qopqoq tayyorladik. Biz metall plitalarni kerakli o'lchamda kesib oldik va to'g'ri bichimdagi qopqoqlarni egish uchun metall bükücü (no, Avatar) ishlatdik. Orqa panellar boshqa komponentdan qilingan.

2 -qadam: 2 -qadam: PVX qutbini tayyorlash

2 -qadam: PVX qutbini tayyorlash
2 -qadam: PVX qutbini tayyorlash

PVX qutbidagi yorug'lik qopqog'iga mos keladigan 2 teshikni kesib oling. Keyin hamma narsani qora rangga bo'yash uchun qora bo'yoq purkagichidan foydalaning. Agar xohlasangiz, qutbning pastki qismiga oq chiziqlar qo'shishingiz mumkin (Gollandiyada keng tarqalgan).

3 -qadam: 3 -qadam: RGB LED chiziqlarini yig'ish va akril plastinkalarni qum bilan tozalash

3 -qadam: RGB LED chiziqlarini yig'ish va akril plastinkalarni qum bilan tozalash
3 -qadam: RGB LED chiziqlarini yig'ish va akril plastinkalarni qum bilan tozalash
3 -qadam: RGB LED chiziqlarini yig'ish va akril plastinkalarni qum bilan tozalash
3 -qadam: RGB LED chiziqlarini yig'ish va akril plastinkalarni qum bilan tozalash

Keyin siz RGB LED chiziqlarini yorug'lik qopqog'iga yig'ishingiz kerak. Ularni qopqoq atrofiga mahkam o'rnating va iloji boricha old tomonga yaqinroq joylashtiring.

Keyin akril plastinkada tanlangan belgini qum bilan tozalashingiz kerak bo'ladi. Bir oz lenta oling va butun akril plitani yoping. Keyin kerakli shaklni/shaklni kesib oling. Shundan so'ng, siz muzli oynaga o'xshash effekt olish uchun plastinkani qum bilan tozalashingiz mumkin.

4 -qadam: 4 -qadam: RGB LED chiziqlarini Arduino -ga ulang

4 -qadam: RGB LED chiziqlarini Arduino -ga ulang
4 -qadam: RGB LED chiziqlarini Arduino -ga ulang

Endi qiyin qism keladi: RGB LED chiziqlarini Arduino -ga ulash. Pimlarni ulayotganingizda, chiziqni 12v ga 12v qo'yganingizga ishonch hosil qiling. Qizil yoki yashil ranglarning har birining orasiga mosfet qo'yish kerak. Chiziqli ma'lumotni mosfetning o'rta piniga va chap pinni Arduino -ga ulang. O'ng pin Arduino tagiga qaytishi kerak.

5 -qadam: 5 -qadam: Arduino kodini yozing

5 -qadam: Arduino kodini yozing
5 -qadam: Arduino kodini yozing

Bu Arduino kodi bluetooth orqali boshqariladi, chunki biz ichki displeydan foydalanmaganmiz. Shunday qilib, kod bluetooth xabarlari orqali loop () funktsiyasida boshqariladi.

#define r 6 #define g 11 #include

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

#g'azablangan uzunlikni aniqlang 4

#yiqilish uzunligini 3 belgilang #baxtli uzunlikni aniqlang 4 #telefon uzunligini aniqlang 13 #gaplashishni aniqlang 5 #aniq yurishni aniqlang uzunlik 4 #aniq yurishni aniqlang uzunlik 4 #to'lqinni aniqlang uzunlik 6

bool tugmasi bosildi;

int currentMillis; int previousMillis;

int animatsiyasi1Delay;

int animation2Delay; int animatsiya3Delay; int animation4Delay;

bool animatsiyasi1Done = noto'g'ri;

bool animation2Done = noto'g'ri; bool animatsiya3Done = noto'g'ri; bool animation4Done = noto'g'ri; bool animatsiyasi5Done = noto'g'ri;

bool blockLight = noto'g'ri;

bool lightRed = rost;

int currentAnimationDelay;

bo'sh o'rnatish () {

// bir marta ishga tushirish uchun sozlash kodini bu erga qo'ying: pinMode (r, OUTPUT); pinMode (g, OUTPUT);

Serial.begin (9600);

mySerial.begin (38400); Serial.setTimeout (25); buttonPressed = false; currentMillis = 0; oldingiMillis = 0;

animatsiya1Delay = yurish uzunligi * 1000;

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

// currentAnimationDelay = animation1Delay * 1000;

lightRed = rost; }

void loop () {

// kechikish (20);

// qayta ishga tushirish uchun asosiy kodingizni bu erga qo'ying: unsigned long currentMillis = millis (); if (buttonPressed == true) {if (animation1Done == false) {if (currentMillis - previousMillis> animation1Delay) {Serial.println ("0"); oldingiMillis = joriyMillis; animatsiya1Done = rost; }} if if (animation2Done == false va animation1Done == true) {if (currentMillis - previousMillis> animation2Delay) {Serial.println ("1"); oldingiMillis = joriyMillis; animatsiya2Done = rost; }} boshqa if (animation3Done == noto'g'ri va animation2Done == rost) {if (currentMillis - previousMillis> animation3Delay) {Serial.println ("2"); //Serial.println("sound:green "); oldingiMillis = joriyMillis; animatsiya3Done = rost; lightRed = noto'g'ri; }} boshqa if (animation4Done == noto'g'ri va animation3Done == rost) {if (currentMillis - previousMillis> animation4Delay) {previousMillis = currentMillis; animatsiya4Done = rost; Serial.println ("FLSH"); }}}

agar (Serial.available ()) {

String str = Serial.readString (); agar (str == "CMD: BUTTON_PRESSED") {

animatsiya1Done = noto'g'ri;

animatsiya2Done = noto'g'ri; animatsiya3Done = noto'g'ri; animatsiya4Done = noto'g'ri; animatsiya5Done = noto'g'ri;

animatsiya1Delay = yurish uzunligi * 1000;

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

// currentAnimationDelay = animation1Delay * 1000;

lightRed = rost; Serial.println ("3"); buttonPressed = rost; oldingiMillis = joriyMillis; }

agar (str == "RED") {

blockLight = noto'g'ri; lightRed = rost; }

agar (str == "Yashil") {

blockLight = noto'g'ri; lightRed = noto'g'ri; }

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

blockLight = to'g'ri; analogWrite (g, 255); } agar (str == "LIGHT: GREEN: ON") {blockLight = true; analogWrite (g, 0); } //Serial.println(str); }

agar (blockLight == noto'g'ri) {

agar (lightRed == rost) {

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

Tavsiya: