2015. június 30., kedd

Index

Kedves olvasók!
A mai cikkemben egy egyszerű és egy bonyolult indexmegoldást fogok veletek ismertetni.



Az egyszerűbb egy könnyen kivitelezhető NE555-ös IC-vel megvalósított darab, a következő egy programozott kivitel, egy PIC16 szériás IC-vel, aminek mindössze 4 lába szükséges, tehát a többit szabadon használhatjuk.

A Program a mostani esetben egy fejlődő darab lesz, cikkenként bővül, de mindig leközlöm az aktuális részt önállóan is valamint a teljes programot.

Ha a végére értünk egy teljesen lámpavezérlést fogunk kapni.

Kezdjük is az index vezérléssel, hiszen ez a mostani téma:

Az NE555-ös vezérlésnél lényegében csak egy kapcsoló (lehetőleg 3 állású (BE-KI-BE)) és a villogó áramkör kell.

Az R1 és R2 lehet trimmer potméter, ezekkel hangolható az eszköz, a Kondenzátor pedig 47-470uF közötti legyen, ehhez kell az ,ellenállást mérni.
számolt értékek:
R1= 2.61 kOhm
R2= 14.0 kOhm
C =   47 uF

A programozott változat: 

Legelőször is, mint minden program esetén, meg kell adni a lábak állapotát. A későbbiekben ezt egy rendszer alapján fogjuk beállítani, amit most állítok fel: Kapcsolók a PORTB lábakon míg a LED-ek a PORTA lábakon.

TRISB0_bit = 1;      //ez az egyik oldali index(legyen bal)
TRISB1_bit = 1;      //ez a másik oldal (akkor ez a jobb)
TRISA0_bit = 0;      //akkor követve ez a bal index
TRISA1_bit = 0;      //így pedig ez a jobb oldali

Most, hogy megadtuk az IC-nek, hogy melyik láb mi is, lehet adni neki a munkát, amit el kell végeznie:

while(1){
 if(PORTB.F0==1){
  PORTA.F0=1;
  Delay_ms(500);
  PORTA.F0=0;
  Delay_ms(500);
 }
 if(PORTB.F1==1){
  PORTA.F1=1;
  Delay_ms(500);
  PORTA.F1=0;
  Delay_ms(500);
 }
}

Ezzel is megvagyunk, így elméletileg működik is az index.

A teljes program így kell, hogy kinézzen:

void main(){
 TRISB0_bit = 1;      //ez az egyik oldali index(legyen bal)
 TRISB1_bit = 1;      //ez a másik oldal (akkor ez a jobb)
 TRISA0_bit = 0;      //akkor követve ez a bal index
 TRISA1_bit = 0;      //így pedig ez a jobb oldali
 while(1){
  if(PORTB.F0==1){
   PORTA.F0=1;
   Delay_ms(500);
   PORTA.F0=0;
   Delay_ms(500);
  }
  if(PORTB.F1==1){
   PORTA.F1=1;
   Delay_ms(500);
   PORTA.F1=0;
   Delay_ms(500);
  }
 } 
}

A következő részben a 3 állású fényszórót fogjuk megvalósítani.

Nincsenek megjegyzések:

Megjegyzés küldése