MODELOVANIE

Spoločne vytvorme modelárske Centrum Znalostí

Ak ste začiatočník:

Učíme sa navzájom – preto je tento projekt venovaný hlavne Vám.

Ak ste pokročilý:

Počas modelovania ste získali určite veľké množstvo skúseností o ktoré sa s nami môžete podeliť.

Ak ste profesionál:

Prešli ste veľký kus cesty a práve vy ste ten správny člen, ktorý vie tento projekt ďalej rozvýjať.

Svetelná križovatka do mestečka

Pre zvýšenie efektu obývanosti mestečka ako aj pre zvýšenie realistickosti som sa rozhodol vybudovať v mestečku svetelnú križovatku. Semafóry ako aj elektronika a program sú môj vlastný výmysel. Chcem sa s Vami podeliť o tento jednoduchý návod, ako si vytvoriť podobnú križovatku. Video s križovatkou môžete nájsť vo videogalérii.

Schéma samotnej elektroniky križovatky je jednoduchá. V podstate ide o arduino – v mojom prípade som použil Arduino Mini Pro kúpené cez ebay za približne 1,60€. Každé svetlo semafóru má vlastný digitálny výstup z arduina a je pripojené cez 120ohmový rezistor. Je to z toho dôvodu, že výstup arduina poskytne 5V, ale led diódy potrebujú približne 3V. Pokiaľ chceme predĺžiť životnosť ledky, odporúčam použiť rezistor, aj keď to samozrejme pracuje aj bez. Pokiaľ chcete väčšiu križovatku s viac svetlami, odporúčam použiť do schémy tranzistory, nakoľko arduino mini pro dokáže spracovať maximálne 200mA, 1 led odoberie 20-25mA. V mojom prípade to však nie je problém, pretože nikdy mi nesvieti všetkých 9 svetiel naraz.

Program semafóru je tiež dostatočne jednoduchý:

int cervena1 = 5;
int oranzova1 = 6;
int zelena1 = 7;
int cervena2 = 8;
int oranzova2 = 9;
int zelena2 = 10;
int cervena3 = 11;
int oranzova3 = 12;
int zelena3 = 13;

void setup (){
  pinMode (cervena1,OUTPUT);
  pinMode (oranzova1,OUTPUT);
  pinMode (zelena1,OUTPUT);
  pinMode (cervena2,OUTPUT);
  pinMode (oranzova2,OUTPUT);
  pinMode (zelena2,OUTPUT);
  pinMode (cervena3,OUTPUT);
  pinMode (oranzova3,OUTPUT);
  pinMode (zelena3,OUTPUT);
}

void loop (){
    digitalWrite(cervena1, HIGH);
    digitalWrite(oranzova1, LOW);
    digitalWrite(zelena1, LOW);
    digitalWrite(cervena2, LOW);
    digitalWrite(oranzova2, LOW);
    digitalWrite(zelena2, HIGH);
    digitalWrite(cervena3, LOW);
    digitalWrite(oranzova3, LOW);
    digitalWrite(zelena3, HIGH);
delay (15000);
    digitalWrite(cervena1, HIGH);
    digitalWrite(oranzova1, LOW);
    digitalWrite(zelena1, LOW);
    digitalWrite(cervena2, LOW);
    digitalWrite(oranzova2, LOW);
    digitalWrite(zelena2, HIGH);
    digitalWrite(cervena3, LOW);
    digitalWrite(oranzova3, HIGH);
    digitalWrite(zelena3, LOW);
delay(2000);
    digitalWrite(cervena1, HIGH);
    digitalWrite(oranzova1, LOW);
    digitalWrite(zelena1, LOW);
    digitalWrite(cervena2, LOW);
    digitalWrite(oranzova2, LOW);
    digitalWrite(zelena2, HIGH);
    digitalWrite(cervena3, HIGH);
    digitalWrite(oranzova3, LOW);
    digitalWrite(zelena3, LOW);
delay (15000);
    digitalWrite(cervena1, HIGH);
    digitalWrite(oranzova1, LOW);
    digitalWrite(zelena1, LOW);
    digitalWrite(cervena2, LOW);
    digitalWrite(oranzova2, HIGH);
    digitalWrite(zelena2, LOW);
    digitalWrite(cervena3, HIGH);
    digitalWrite(oranzova3, LOW);
    digitalWrite(zelena3, LOW);
delay (2000);
    digitalWrite(cervena1, HIGH);
    digitalWrite(oranzova1, HIGH);
    digitalWrite(zelena1, LOW);
    digitalWrite(cervena2, HIGH);
    digitalWrite(oranzova2, LOW);
    digitalWrite(zelena2, LOW);
    digitalWrite(cervena3, HIGH);
    digitalWrite(oranzova3, LOW);
    digitalWrite(zelena3, LOW);
delay (2000);
    digitalWrite(cervena1, LOW);
    digitalWrite(oranzova1, LOW);
    digitalWrite(zelena1, HIGH);
    digitalWrite(cervena2, HIGH);
    digitalWrite(oranzova2, LOW);
    digitalWrite(zelena2, LOW);
    digitalWrite(cervena3, HIGH);
    digitalWrite(oranzova3, LOW);
    digitalWrite(zelena3, LOW);
delay (15000);
    digitalWrite(cervena1, LOW);
    digitalWrite(oranzova1, HIGH);
    digitalWrite(zelena1, LOW);
    digitalWrite(cervena2, HIGH);
    digitalWrite(oranzova2, HIGH);
    digitalWrite(zelena2, LOW);
    digitalWrite(cervena3, HIGH);
    digitalWrite(oranzova3, HIGH);
    digitalWrite(zelena3, LOW);
delay (2000);    
}

Program síce vyzerá zložito na prvý pohľad, ale to iba preto, lebo som si vymyslel dlhší cyklus križovatky. Celý princíp spočíva iba v tom, že zapínate a vypínate jednotlivé výstupy arduina a teda svetlá semaforov. Programovanie ako aj vyhotovenie nie je zložité, ale pekne vyrieši tzv. život v meste.

Marek Duda


Dátum publikovania: 1. june 2020 · Autor: Marek Duda (odkaz na pôvodný zdroj)