2015. május 24., vasárnap

Apró fénysorompó

Sziasztok!

Első hosszabb cikkemben egy sorompómodellt fogok bemutatni nektek, egyenlőre csak az áramkörök szintjén.


Az áramkör programozott Chip-et fog tartalmazni, annak segítségével történik majd az érzékelés illetve a lámpa vezérlés.

A központi csip egy PIC16F628 vagy 16F628A lehet, a hex fájlt mind a két processzorhoz közzéteszem.

Az IC B jelölésű lábai fognak gondoskodni a lámpák vezérléséről valamint ha beépítésre kerül, akkor a sorompó mozgató motor kapcsolásáról is.

A program a MikroElektronika MikroC Pro for Pic 6.0.0 verziójával készült, én ezt a programot ismerem a legjobban.

Íme:
void b0_erzekelt(void) {
  PORTB.F5=0;
  PORTB.F4=0;
  while(PORTB.F1==0){
    PORTB.F2=1;
    PORTB.F3=0;
    Delay_ms(200);
    PORTB.F2=0;
    PORTB.F3=1;
    Delay_ms(200);
  }
  PORTB.F2=0;
  PORTB.F3=0;
  PORTB.F4=1;
  PORTB.F5=1;
}
                        
void b1_erzekelt(void) {
  PORTB.F5=0;
  PORTB.F4=0;
  while(PORTB.F0==0){
    PORTB.F2=1;
    PORTB.F3=0;
    Delay_ms(200);
    PORTB.F2=0;
    PORTB.F3=1;
    Delay_ms(200);
  }
  PORTB.F2=0;
  PORTB.F3=0;
  PORTB.F4=1;
  PORTB.F5=1;
}

void main() {
  TRISB0_bit=1; //a vonatot ez a kapcsoló érzékeli
  TRISB1_bit=1; //illetve ez
  TRISB2_bit=0; //ez az egyik LED
  TRISB3_bit=0; //ez a másik
  TRISB4_bit=0; //ez pedig a motor
  TRISB5_bit=0; //fehér lámpa
  PORTB.F2=0;
  PORTB.F3=0;
  PORTB.F5=1;
  figyel:
  while(1) {    //itt elkezdek egy végtelen kört...
    //érzékelés
    if(PORTB.F0==1){
      while(PORTB.F0==1){}
      b0_erzekelt();
      Delay_ms(500);
      goto figyel;
    }
    if(PORTB.F1==1){
      while(PORTB.F1==1){}
      b1_erzekelt();
      Delay_ms(500);
      goto figyel;
    }
  }            //...itt pedig lezárom
}

Természetesen ez a program koránt sem használja ki az IC adta lehetőségeket, de jó is így, legalább nem kell attól tartani, hogy valami hiba folytán túlterhelődik.
Íme az áramkör, egyszerű, igaz?
A rajzon egy relével helyettesítettem a sorompót, viszont ide érdemes inkább egy tranzisztort bekötni, úgy nem terhelődik annyira az IC.

A hex fájl itt érhető el 16F628A chip-hez.
A programot MikroC Pro-ban lefordíthatod bármilyen más PIC16 típusra, de ez a legkedvezőbb darab illetve a sima változata.

Alkatrészlista:
PIC16F628 / PIC16F628A
piros LED       2-4 db
fehér LED       1-2 db
gomb              2 db //csak a kísérleti áramkörhöz, a véglegesnél érdemes érzékelőt építeni (később)
10kohm ellenállás 2 db
BC182             2 db //ha sorompó is be van építve, ezzel a tranzisztorral érdemes kezelni a motort

Az áramkör elkészítésében örömmel segítek, kérésre a NYÁK lapot is kimarom és postázom, persze az igénylő terhére valamint ha szükséges, felprogramozok chipet, amennyiben elkülditek postán.
Ezekért érdeklődj E-mailben, ahol bármilyen más elektronikai dologban is örömmel segítek.
E-mail címem: hovanhenrik1@gmail.com

Hamarosan újra jelentkezem, amikor is egy forgalomirányító azaz rendőrlámpát fogok bemutatni.

Nincsenek megjegyzések:

Megjegyzés küldése