Banská Štiavnica, Slovenská Republika +421 948 156 987 info@netbis.sk
Slovak Czech English German

Prihlásenie

Dotácie

Ďakujem za Vaše príspevky. Budú použité na rozšírenie a stavbu koľajiska, taktiež nákup lokomotív, vlakov a iných doplnkov. Informácie o Vašej karte ani účte sa ku mne nedostanú, celé je to spravované cez PayPal, teda bezpečnosť zaručená. Ešte raz ďakujem



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

Pre pridávanie komentárov sa prihláste prosím.

Marek Duda