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.
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