Turinys:

Išmanusis interaktyvus šviesoforas: 5 žingsniai (su nuotraukomis)
Išmanusis interaktyvus šviesoforas: 5 žingsniai (su nuotraukomis)

Video: Išmanusis interaktyvus šviesoforas: 5 žingsniai (su nuotraukomis)

Video: Išmanusis interaktyvus šviesoforas: 5 žingsniai (su nuotraukomis)
Video: Vodafone NEO Smart Watch: Things To Know Before Buy // Real Life Review 2024, Lapkritis
Anonim
Išmanusis interaktyvus šviesoforas
Išmanusis interaktyvus šviesoforas

Pasiruošę sukurti geriausią ir interaktyviausią šviesoforą pasaulyje? Gerai! Šioje pamokoje paaiškinsime, kaip galite tai sukurti patys naudodami „Arduino“.

Reikalingi komponentai:- „Arduino“(..duh)- LM317 „Mosfet“- 2x 60 cm analoginės RGB LED juostelės (12 V)- PVC vamzdis (1 m x 125 mm)- kabeliai (raudona ir juoda)- metalinės plokštelės šviesos dangteliams- akrilas šviesai - piktogramos (patikrinkite flatcon.com, ar nėra.svg piktogramų)- purškiami juodai balti dažai.- elektros juosta- visi reikalingi litavimo komponentai- ekranas su reikiamu ekranu (nenaudojamas mokymo programoje)

1 žingsnis: 1 žingsnis: padarykite šviesos dangtelius

1 žingsnis: padarykite šviesos dangtelius
1 žingsnis: padarykite šviesos dangtelius

Dizainas tikrai priklauso nuo jūsų. Mes padarėme 15x15 cm dangtelį šviesoms laikyti. Mes supjaustėme tinkamo dydžio metalines plokštes ir panaudojome metalinį lenktuvą (ne, ne iš „Avatar“), kad sulenktume tinkamos formos dangtelius. Galinės plokštės buvo pagamintos iš kito komponento.

2 žingsnis: 2 žingsnis: PVC stulpo paruošimas

2 žingsnis: PVC stulpo paruošimas
2 žingsnis: PVC stulpo paruošimas

Iškirpkite 2 skylutes PVC stulpelyje, kad tilptų šviesos dangteliai. Tada naudokite juodą dažų purškiklį, kad nudažytumėte viską juodai. Jei norite, galite pridėti baltų juostelių ant stulpo apačios (įprasta Nyderlanduose).

3 žingsnis: 3 žingsnis: RGB šviesos diodų juostų surinkimas ir akrilo plokščių smėliavimas

3 žingsnis: RGB šviesos diodų juostelių surinkimas ir akrilo plokščių smėliavimas
3 žingsnis: RGB šviesos diodų juostelių surinkimas ir akrilo plokščių smėliavimas
3 žingsnis: RGB šviesos diodų juostelių surinkimas ir akrilo plokščių smėliavimas
3 žingsnis: RGB šviesos diodų juostelių surinkimas ir akrilo plokščių smėliavimas

Tada jums reikės surinkti RGB LED juosteles šviesos dangtelio viduje. Tvirtai pritvirtinkite juos prie dangtelio ir padėkite kuo arčiau priekio.

Toliau akrilo plokštėje turėsite nuvalyti pasirinktą simbolį. Paimkite juostą ir uždenkite visą akrilo plokštę. Tada iškirpkite norimą figūrą/figūrą. Po to plokštelę galite nuvalyti smėlio srove, kad gautumėte matinio stiklo efektą.

4 veiksmas: 4 veiksmas: prijunkite RGB šviesos diodų juosteles prie „Arduino“

4 veiksmas: prijunkite RGB šviesos diodų juosteles prie „Arduino“
4 veiksmas: prijunkite RGB šviesos diodų juosteles prie „Arduino“

Dabar ateina sudėtinga dalis: prijungti RGB LED juostas prie „Arduino“. Kai jungiate kaiščius, įsitikinkite, kad ant juostos 12v uždėjote 12v. Tarp kiekvienos spalvos, tokios raudonos ar žalios, turite įdėti mosfetą. Prijunkite šviesos diodų juostos duomenis prie vidurinio „Mosfet“kaiščio, o kairįjį - prie „Arduino“. Dešinysis kaištis turi grįžti į „Arduino“žemę.

5 veiksmas: 5 veiksmas: parašykite „Arduino“kodą

5 veiksmas: parašykite „Arduino“kodą
5 veiksmas: parašykite „Arduino“kodą

Šis „Arduino“kodas valdomas „Bluetooth“, nes nenaudojome vidinio ekrano. Taigi kodas yra valdomas naudojant „Bluetooth“pranešimus ciklo () funkcijoje.

#define r 6 #define g 11 #Include

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

#define piktasLength 4

#define fall #3 #define happy

bool mygtukas Paspaustas;

int currentMillis; int previousMillis;

int animation1Delay;

int animation2Delay; int animation3Delay; int animation4Delay;

bool animation1Done = false;

bool animation2Done = false; bool animation3Done = false; bool animation4Done = false; bool animacija5Done = false;

bool blockLight = klaidinga;

bool lightRed = tiesa;

int currentAnimationDelay;

void setup () {

// įdėkite čia savo sąrankos kodą, kad paleistumėte vieną kartą: pinMode (r, OUTPUT); pinMode (g, OUTPUT);

Serial.begin (9600);

mySerial.begin (38400); Serial.setTimeout (25); mygtukasSpaustas = klaidingas; currentMillis = 0; previousMillis = 0;

animation1Delay = vaikščiojimo ilgis * 1000;

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

// currentAnimationDelay = animation1Delay * 1000;

lightRed = tiesa; }

void loop () {

// uždelsimas (20);

// įdėkite čia savo pagrindinį kodą, kad jis būtų paleistas pakartotinai: unsigned long currentMillis = millis (); if (buttonPressed == true) {if (animation1Done == false) {if (currentMillis - previousMillis> animation1Delay) {Serial.println ("0"); previousMillis = dabartinisMillis; animation1Done = tiesa; }} else if (animation2Done == false ir animation1Done == true) {if (currentMillis - previousMillis> animation2Delay) {Serial.println ("1"); previousMillis = dabartinisMillis; animation2Done = tiesa; }} else if (animation3Done == false ir animation2Done == true) {if (currentMillis - previousMillis> animation3Delay) {Serial.println ("2"); //Serial.println("sound:green "); previousMillis = dabartinisMillis; animation3Done = tiesa; šviesiai raudona = klaidinga; }} else if (animation4Done == false ir animation3Done == true) {if (currentMillis - previousMillis> animation4Delay) {previousMillis = currentMillis; animation4Done = tiesa; Serial.println („FLSH“); }}}

jei (Serial.available ()) {

Eilutė str = Serial.readString (); if (str == "CMD: BUTTON_PRESSED") {

animation1Done = false;

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

animation1Delay = vaikščiojimo ilgis * 1000;

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

// currentAnimationDelay = animation1Delay * 1000;

lightRed = tiesa; Serial.println ("3"); buttonPressed = tiesa; previousMillis = dabartinisMillis; }

if (str == "RED") {

blockLight = klaidinga; lightRed = tiesa; }

if (str == "GREEN") {

blockLight = klaidinga; šviesiai raudona = klaidinga; }

if (str == "ŠVIESA: ŽALIA: IŠJUNGTA") {

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

if (blockLight == false) {

jei (šviesiai raudona == tiesa) {

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

Rekomenduojamas: