Sari la conținut
ELFORUM - Forumul electronistilor

banda leduri loading


kotezzyno

Postări Recomandate

Fara nici o poveste trec direct la subiect. Vreau sa construiesc o banda cu 30 leduri THT dar ce nu stiu cum sa fac ca aceasta banda sa se aprinda un led cate un led doar dintr-un capat spre celalalt capat in maxim 2 secunde ce imi sugerati ce modul sa folosesc un LM8027 sau ceva de genu?

Link spre comentariu

da dar"

1. ledurile din urma sa ramana aprinse

2. si atunci cand ajunge la capat sa ramana aprinsa toata banda pana ii tai tensiunea

P.S gen VU metru

Link spre comentariu

Salut!

 

Se poate face foarte simplu folosind un controller cu 30 GPIO sau cu aproape orice microcontroller (preferabil cu periferic SPI) si doua cip-uri TLC5940. In al 2 lea caz, se poate face si dimming pe fiecare LED in parte.

 

Sau cu un controller PIC, AVR,ARM, ce vrei tu, si cativa registri 595. 

Daca ai sa cauti pe net, sunt nenumarate exemple Arduino + 595.

Editat de mars01
Link spre comentariu

ar fii ceva cu TLC5940 dar fara arduino prea costisitor mi se pare.

 

Eu o numesc "loading band" cea ce vreau sa fac, dar cand caut pe net nu gasesc cea ce vreau nu imi da nici o schema ceva cu de exemplu: "loading band schematic" poate stii cum sa caut mai pe sleau

 

o schema gen un pic 2 sau 3 cipuri pe acolo niste rezistente si un potentiometru pentru reglarea timpului de aprindere cam asa ceva as vrea pentru incepatori :)) daca nu se poate cum spune`ti voi nu conteaza dar de preferat cam asa sa fie mersi.
 

Editat de kotezzyno
Link spre comentariu

Salut!

 

Ca sa nu poluam aceasta sectiune, poate cineva va muta acest topic la MICROCONTROLERE/PIC, adica aici: http://www.elforum.info/forum/5-pic/

 

Am facut ce ai nevoie cu un PIC 12F675 si 4 registri tip 74HC595, gasesti proiectul atasat cat si simularea facuta in Proteus 8. Sper ca te descurci sa faci si tu schema pornind de la schema pe care am facut-o pentru simulare. Dar pentru ca schema este facuta specific pentru simulare, lipsesc anumite lucruri acolo (cum ar fi cate un tranzistor NPN cu o rezistenta de cca 220 ohmi in baza conectat la iesirea din fiecare 595 iar din colector in VCC pui LED-ul).

 

Din potentiometrul RV1 reglezi durata pana se activeaza toate cele 30 LED-uri.

Din potentiometrul RV2 reglezi durata cat sta banda stinsa pana trece la urmatorul ciclu.

#define DATA_pin    GP2_bit#define LATCH_pin   GP4_bit#define CLOCK_pin   GP5_bit// this array will hold all the possible states for those 30 LED'sconst unsigned long byte[] = {1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, 16777215, 33554431, 67108863, 134217727, 268435455, 536870911, 1073741823 };void init() { ANS0_bit = 1;   //analog input, first pot to adjust the delay between LED's ANS1_bit = 1;   //analog input, second pot to adjust the delay between each sequence ANS2_bit = 0;   //digital IO ANS3_bit = 0;   //digital IO ANSEL = 0;  CMCON = 0x07;   //disable comparators  TRISIO0_bit = 1;          //GP0 aka ANS0 is INPUT TRISIO1_bit = 1;          //GP1 aka ANS1 is INPUT TRISIO2_bit = 0;          //GP2 is OUTPUT TRISIO4_bit = 0;          //GP4 is OUTPUT TRISIO5_bit = 0;          //GP5 is OUTPUT  //init 595 pins DATA_pin = 0; LATCH_pin = 0; CLOCK_pin = 0;  //init ADC module ADC_init();}// this function will shift data to the next positionvoid clock() { CLOCK_pin = 1; CLOCK_pin = 0;}// the mikroC delay_ms does not take a variable as a parameter// therefore I had to do this hackvoid delay(unsigned int value) { int i; for (i = 0; i < value; i++) {  delay_ms(1); }}// this function send the serial data with MSB firstvoid serial_write(unsigned long datas) {   unsigned short bits;   LATCH_pin = 0;   CLOCK_pin = 0;      for (bits = 0; bits < 32; bits++) {    if (datas & (1uL << (31 - bits))) {     DATA_pin  = 1;    }    else DATA_pin = 0;    clock();   }   LATCH_pin = 1;   DATA_pin = 0;}void main() {  char i;  init();               //initializing    while(1) {      ADC_read(0);        //just a dumb read to discard    ADC_read(1);        //just a dumb read to discard        serial_write(0uL);  //write LOW on all the LED's    delay(ADC_read(1)); //initial delay. It is adjustable through POT on AN1       for (i = 0; i < 30; i++) {        serial_write(byte[i]); // write into the serial the values from the array byte[]        delay(ADC_read(0)>>3); // delay between each active LED. Adjustable with POT on AN0    }  }}

LOAD_LED.zip

Editat de mars01
Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări