Përmbajtje:

Semafor inteligjent interaktiv: 5 hapa (me fotografi)
Semafor inteligjent interaktiv: 5 hapa (me fotografi)

Video: Semafor inteligjent interaktiv: 5 hapa (me fotografi)

Video: Semafor inteligjent interaktiv: 5 hapa (me fotografi)
Video: Webinar 1: Mësimdhënia e të menduarit kritik dhe zgjidhjes së problemeve në klasë 2024, Nëntor
Anonim
Semafor inteligjent interaktiv
Semafor inteligjent interaktiv

Gati për të ndërtuar semaforin më të mirë dhe më interaktiv në botë? Mirë! Në këtë tutorial, ne do të shpjegojmë se si mund të ndërtoni një vetë duke përdorur Arduino.

Komponentët e kërkuar:- Arduino (..duh)- LM317 Mosfet- 2x 60cm Rripa Analog RGB LED (12V)- Tub PVC (1m x 125mm)- Kabllo (të kuqe dhe të zeza)- Pllaka metalike për kapakët e dritës- Akril për dritën -ikonet (kontrolloni flaticon.com për ikonat.svg)- Spraycan bojë bardh e zi.- Shirit elektrik- Të gjithë përbërësit e kërkuar të saldimit- Ekran me mburojën e kërkuar (nuk përdoret në mësim)

Hapi 1: Hapi 1: Bëni kapakët e dritës

Hapi 1: Bëni kapakët e dritës
Hapi 1: Bëni kapakët e dritës

Dizajni varet nga ju. Ne kemi bërë një kapak 15x15cm për të mbajtur dritat. Ne i kemi prerë pllakat metalike në madhësinë e duhur dhe kemi përdorur një pincë metalike (jo, jo nga Avatar) për të përkulur kapelet në format e duhura. Pllakat e pasme janë bërë nga një përbërës tjetër.

Hapi 2: Hapi 2: Përgatitja e Polit të PVC

Hapi 2: Përgatitja e Polit të PVC
Hapi 2: Përgatitja e Polit të PVC

Pritini 2 vrima në shtyllën PVC për t'iu përshtatur kapakëve të dritës. Pastaj përdorni një spërkatës me bojë të zezë për të lyer të gjithë sendin në të zezë. Nëse dëshironi, mund të shtoni vija të bardha në pjesën e poshtme të shtyllës (e zakonshme në Holandë).

Hapi 3: Hapi 3: Montimi i shiritave LED RGB dhe shpërthimi i pllakave akrilike

Hapi 3: Montimi i shiritave LED RGB dhe shpërthimi i pllakave akrilike
Hapi 3: Montimi i shiritave LED RGB dhe shpërthimi i pllakave akrilike
Hapi 3: Montimi i shiritave LED RGB dhe shpërthimi i pllakave akrilike
Hapi 3: Montimi i shiritave LED RGB dhe shpërthimi i pllakave akrilike

Tjetra do t'ju duhet të mblidhni shiritat LED RGB brenda kapakut të dritës. Vendosini ato fort rreth kapakut dhe vendosini sa më afër pjesës së përparme të jetë e mundur.

Tjetra, do t'ju duhet të pastroni simbolin e zgjedhur për pllakën akrilike. Merrni një kasetë dhe mbuloni të gjithë pjatën akrilike. Pastaj prerë formën/figurën që dëshironi. Pas kësaj, ju mund ta rrëzoni pllakën për të marrë një efekt të ngjashëm me xhamin e mbuluar me brymë.

Hapi 4: Hapi 4: Lidhni shiritat LED RGB me Arduino

Hapi 4: Lidhni shiritat LED RGB me Arduino
Hapi 4: Lidhni shiritat LED RGB me Arduino

Tani vjen pjesa e ndërlikuar: lidhja e shiritave LED RGB me Arduino. Kur lidhni kunjat, sigurohuni që ta vendosni 12v në 12v të shiritit tuaj. Midis secilës ngjyrë, kaq të kuqe ose jeshile, duhet të vendosni një mosfet. Lidhni të dhënat e shiritit led me kunjin e mesëm të mosfetit, dhe kunjin e majtë me Arduino -n tuaj. Kunja e djathtë duhet të kthehet në tokën e Arduino.

Hapi 5: Hapi 5: Shkruani Kodin Arduino

Hapi 5: Shkruani Kodin Arduino
Hapi 5: Shkruani Kodin Arduino

Ky kod Arduino kontrollohet nga bluetooth, sepse nuk kemi përdorur një ekran të brendshëm. Pra, kodi kontrollohet përmes mesazheve bluetooth në funksionin loop ().

#përcakto r 6 #përcakto g 11 #përfshi

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

#përcakto zemëriminGjatësia 4

#përcakto rënienGjatë 3 #përkufizo lumturLength 4 #përkufizo në TelefonGjatë 13 #përcakto të folurit Gjatësia 5 #përcakto ecjenLength 4 #përcakto ecjeJashtatëGjatë 4 #përcakto valëzimGjatësia 6

butoni boolPressed;

int aktualeMillis; int previousMillis;

int animacion1Vonesë;

int animacion2Vonesë; int animacion3Vonesë; int animacion4Vonesë;

bool animation1Done = false;

bool animation2Done = false; bool animation3Done = false; bool animation4Done = false; bool animation5Done = false;

bool blockLight = false;

bool lightRed = e vërtetë;

int aktualeAnimationVonesa;

void setup () {

// vendosni kodin tuaj të konfigurimit këtu, për të ekzekutuar një herë: pinMode (r, OUTPUT); pinMode (g, OUTPUT);

Serial.filloj (9600);

mySerial.filloj (38400); Serial.setTimeout (25); buttonPressed = false; aktualeMillis = 0; previousMillis = 0;

animacion1Vonesë = ecje Gjatësia * 1000;

animacion2Vonesë = valë Gjatësia * 1000; animacion3Vonesë = lumturLength * 1000; animacion4Vonesë = ecjeOutLength * 1000;

// currentAnimationDelay = animacion1Vonesë * 1000;

lightRed = e vërtetë; }

lak void () {

// vonesë (20);

// vendosni kodin tuaj kryesor këtu, për të ekzekutuar në mënyrë të përsëritur: aktuale e panënshkruar e gjatëMillis = millis (); if (buttonPressed == true) {if (animation1Done == false) {if (currentMillis - previousMillis> animation1Delay) {Serial.println ("0"); previousMillis = aktualMillis; animacion1Done = e vërtetë; }} tjetër if (animation2Done == false dhe animation1Done == true) {if (currentMillis - previousMillis> animation2Delay) {Serial.println ("1"); previousMillis = aktualMillis; animacion2Done = e vërtetë; }} tjetër if (animation3Done == false dhe animation2Done == true) {if (currentMillis - previousMillis> animation3Delay) {Serial.println ("2"); //Serial.println("tound:green "); previousMillis = aktualMillis; animacion3Done = e vërtetë; lightRed = false; }} tjetër nëse (animation4Done == false dhe animation3Done == true) {if (currentMillis - previousMillis> animation4Delay) {previousMillis = currentMillis; animacion4Done = e vërtetë; Serial.println ("FLSH"); }}}

nëse (Seriali i disponueshëm ()) {

String str = Serial.readString (); nëse (str == "CMD: BUTTON_PRESSED") {

animacion1Done = false;

animacion2Done = false; animacion3Done = false; animacion4Done = false; animacion5Done = false;

animacion1Vonesë = ecje Gjatësia * 1000;

animacion2Vonesë = valëzim Gjatësia * 1000; animacion3Vonesë = lumturLength * 1000; animacion4Vonesë = ecjeOutLength * 1000;

// currentAnimationDelay = animacion1Vonesë * 1000;

lightRed = e vërtetë; Serial.println ("3"); buttonPressed = e vërtetë; previousMillis = aktualMillis; }

nëse (str == "KUQ") {

blockLight = false; lightRed = e vërtetë; }

nëse (str == "GREEN") {

blockLight = false; lightRed = false; }

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

blockLight = e vërtetë; analogWrite (g, 255); } if (str == "LIGHT: GREEN: ON") {blockLight = true; analogWrite (g, 0); } //Serial.println(str); }

nëse (blockLight == false) {

nëse (lightRed == vërtetë) {

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

Recommended: