Përmbajtje:
Video: Semafor inteligjent interaktiv: 5 hapa (me fotografi)
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
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
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
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
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
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
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); }}}