Clip các sản phẩm tham dự cuộc thi Sensors & LEDs 2010

Discussion in 'Sensors & LEDs 12/2010' started by admin, Mar 1, 2011.

  1. admin

    admin Pay It Forward Staff Member

    Kết quả cuộc thi SENSORS & LEDs 2010
    Giải nhất: KLV-3UP
    Giải nhì: BK-PAW, QHH1
    Giải ba: LVL-TD08, EVEREST
    Giải KK: NEGUP, NMN-BK, LVL, HiNaMi, BK-CGT



    Clip một số sản phẩm Sensors & LEDs tham dự cuộc thi (8/16 sản phẩm)

    KLV-3UP
    <Còn tiếp>

    Các đội sau đây chưa gửi clip về BTC :)
    QHH1
    EVEREST
    NEGUP
    BKN
    BK-CGT
    BK 825
    CUIVTP
    THE FALLEN

    Chúc các đội sớm hoàn thành clip của đội mình ;)

     
  2. admin

    admin Pay It Forward Staff Member

    BK-PAW


    LVL-TD08


    HiNaMi clip1


    HiNaMi clip2
     
  3. admin

    admin Pay It Forward Staff Member

    Tiếp tục 2 clip

    PQT-PRO


    MPN
     
  4. không biết các bạn làm sản phẩm đèn nháy theo nhạc có thể cho mình cái sơ đồ mạch với cái code của các bạn được không vậy. mình đang định làm cái chơi cho vui mà ko biết cách giải thuật viết code cho nó sao cả.
     
  5. anhxtuan

    anhxtuan TOT

  6. cảm ơn bạn đã chia sẽ nhưng trong phần đó không có code không biết các bạn đội BK PAW có còn code không có thể cho mình tham khảo tý. hoặc các bạn nêu hướng lập trình cũng được. và hầu như các file trên không nêu cách kết nối với pic như thế nào cả. xuất ra led là dùng phương pháp nào chốt led hay là quét led.
     
  7. vmhoang68

    vmhoang68 TOT

    Đây là code của đội BK_PAW. Gửi các bạn tham khảo.

    Code:
    /*------------------------------------------------------------------+
    |			*Chuong trinh PIC16F887 va VU Meter	__BK_PAW		|
    |			*Ngay viet: 12/2010									|
    +-------------------------------------------------------------------+---------------+
    +Mo ta phan cung:																	|
    |	Mach hien thi do lon 3 dai tan so am thanh dung phuong phap chot led			|
    |		Dai tan so thu nhat:
    |			nhan tin hieu analog tu pin RE0
    |			xuat ra 8 bit du lieu: pin RA0 va 7 pin port B gom RB1->RB7
    |		Dai tan so thu hai:
    |			nhan tin hieu analog tu pin RE1
    |			xuat ra cac chan PORTC
    |		Dai tan so thu hai:
    |			nhan tin hieu analog tu pin RE2
    |			xuat ra cac chan PORTD
    |	Pin RB0 dung lam ngat ngoai de chuyen doi kieu hien thi							|
    |	Xuat muc 1 den sang, muc 0 den tat			
    +Mach co 8 trang thai hien thi gom:													|
    |	0: am thanh cang lon thi cang nhieu den sang
    |	1: giong tthai 1 nhung sau 1,5s thi den se dich phai 1 bit
    |		su dung bien k de kiem soat so lan dich nghia la cu sau 2s vao chuong trinh ngat timer1
    |		thi bien k se duoc tang len 1. Moi lan vao chuong trinh doi thi du lieu se duoc dich lai
    |		tu dau su dung bien k.
    |	2: giong tthai 2 nhung den se dich trai 1 bit
    |	3: am thanh cang manh thi den nhay cang nhanh (ca 8 den nhay 1 luc)
    |	4: giong tthai 3 nhung den se sang tat xen ke
    |	5: am thanh cang lon thi cang it den sang (nguoc lai tthai 1)
    |	6: giong tthai 3 nhung tin hieu doc duoc phai lon hon 1/2 tam toan thang thi moi sang	
    |	7: ket hop 3 tthai so 4,1,3														|
    +----------------------------------------------------------------------------------*/
    
    
    #include <htc.h>
    
    __CONFIG(XT & WDTDIS & PWRTEN & MCLREN & UNPROTECT & SWBOREN & IESODIS & FCMDIS & LVPDIS & DEBUGDIS); //1st config. Word
    
    __CONFIG(BORV21); //2st config. Word
    
    #define _XTAL_FREQ 	4000000 //tan so thach anh 4Mhz
    							//khai bao tan so thach anh dung cho lenh delay 
    
    /***********************************************************************+
    |				             VARIABLES									|
    +-----------------------------------------------------------------------*/
    	
    unsigned char k;						//luu so lan da dich trai/phai
    unsigned char trangthai;				//kieu chay
    unsigned char laptm1;					//luu so lan lap timer 1
    unsigned int gtthap,gtgiua,gtcao;		//luu gia tri de hien thi dung trong trang thai 3 va 4
    unsigned int tgthap,tggiua,tgcao;		//luu thoi gian sang tat den dung trong trang thai 3 va 4
    
    /***********************************************************************+
    |								SUBROUTINES								|
    +-----------------------------------------------------------------------*/										
    void init_port();
    void init_adc();
    void init_int();
    unsigned int ReadADC();
    unsigned char doi(unsigned int tmp, unsigned char trangthaitam);
    unsigned char dichtrai(unsigned char dulieut);
    unsigned char dichphai(unsigned char dulieup);
    
    /***********************************************************************+
    |								MAIN PROGRAM							|
    +-----------------------------------------------------------------------*/										
    
    
    void main()
    {	
    	unsigned int thap,giua,cao;					//cac bien luu du lieu doc duoc tu cac pin ADC
    	unsigned char xthap,xgiua,xcao;				//cac bien luu du lieu se xuat ra port
    	unsigned char tgthaptam,tggiuatam,tgcaotam;	/*cac bien tam luu thoi gian de so sanh voi
    												thoi gian dang su dung dung trong tthai 3 va 4*/
    	
    	init_port();
    	init_int();	
    	init_adc();
    
    	k=0;										//chua dich lan nao
    
    	while(1){
    	/*-----------------------------------------------------------------------	
    					TRANG THAI 0 1 2 5
    	-----------------------------------------------------------------------*/
    		if(trangthai==0|trangthai==1|trangthai==2|trangthai==5)	//trang thai 0,1,2,5 xu ly so den sang
    		{
    
    	//-------------------------xu ly dai tan so thu nhat------------------------
    		CHS0=1;					//doc chan AN5
    		CHS1=0;
    		thap=ReadADC();
    		xthap=doi(thap,trangthai);
    		if((xthap%2)==1)	RA0=1;	//chuyen RB0 thanh RA0
    		else				RA0=0;
    		PORTB=xthap;
    		__delay_ms(10);
    	
    	//-------------------------xu ly dai tan so thu hai------------------------
    		CHS0=0;					//doc chan AN6
    		CHS1=1;
    		giua=ReadADC();
    		xgiua=doi(giua,trangthai);
    		PORTC=xgiua;
    		__delay_ms(10);
    	//-------------------------xu ly dai tan so thu ba------------------------	
    		CHS0=1;					//doc chan AN7
    		cao=ReadADC();
    		xcao=doi(cao,trangthai);
    		PORTD=xcao;
    		__delay_ms(10);
    		}
    	
    
    	/*-----------------------------------------------------------------------	
    					TRANG THAI 3 VA 4
    	-----------------------------------------------------------------------*/	
    
    			else if(trangthai==3|trangthai==4)		//trang thai 3 va 4 xu ly thoi gian
    		{
    	//-------------------------xu ly dai tan so thu nhat------------------------		
    		CHS0=1;					//doc chan AN5
    		CHS1=0;
    		thap=ReadADC();
    		tgthaptam=doi(thap,trangthai);
    		if(tgthaptam<tgthap)
    		tgthap=tgthaptam;
    			if(tgthap==0)			
    			{	tgthap=19;
    				gtthap=~(gtthap);			//lay dao portB
    				if((gtthap%2)==1)	RA0=1;	//chuyen RB0 thanh RA0
    				else				RA0=0;
    				PORTB=gtthap;
    			}
    			else
    			{	tgthap--;
    				__delay_ms(20);
    			};
    	
    	//-------------------------xu ly dai tan so thu hai------------------------
    		CHS0=0;						//doc chan AN6
    		CHS1=1;
    		giua=ReadADC();
    		tggiuatam=doi(giua,trangthai);
    		if(tggiuatam<tggiua)
    		tggiua=tggiuatam;
    			if(tggiua==0)			
    			{	tggiua=19;
    				gtgiua=~(gtgiua);	//lay dao portC
    				PORTC=gtgiua;
    			}
    			else
    			{tggiua--;
    			__delay_ms(20);
    			};
    	
    	//-------------------------xu ly dai tan so thu ba------------------------	
    		CHS0=1;						//doc chan AN7
    		cao=ReadADC();
    		tgcaotam=doi(cao,trangthai);
    		if(tgcaotam<tgcao)
    		tgcao=tgcaotam;
    			if(tgcao==0)			
    			{	tgcao=19;
    				gtcao=~(gtcao);		//lay dao portD
    				PORTD=gtcao;
    			}
    			else
    			{tgcao--;
    			__delay_ms(20);
    			};
    		}
    	
    	
    	/*-----------------------------------------------------------------------	
    					TRANG THAI 6
    	-----------------------------------------------------------------------*/
    		else if(trangthai==6)						//trang thai 6
    		{
    	//-------------------------xu ly dai tan so thu nhat------------------------	
    		CHS0=1;			//xu ly xuat port B
    		CHS1=0;
    		thap=ReadADC();
    		tgthaptam=doi(thap,trangthai);
    	if((tgthaptam<10)|(tgthap!=10))
    	{
    		if(tgthaptam<10)			
    			{if(tgthaptam<tgthap)				/*neu thoi gian lay duoc nho hon thoi gian dang su dung
    											thi dung thoi gian moi lay duoc de su dung*/
    			tgthap=tgthaptam;
    			};
    		if((gtthap%2)==1)		RA0=1;	//chuyen RB0 thanh RA0
    		else					RA0=0;
    		PORTB=gtthap;
    
    		if(tgthap==0)			
    		{	tgthap=10;
    			gtthap=~(gtthap);	//lay dao portB
    			if((gtthap%2)==1)	//chuyen RB0 thanh RA0
    			RA0=1;
    			else
    			RA0=0;
    			PORTB=gtthap;
    		}
    		else
    		{	tgthap--;
    			__delay_ms(21);
    		};
    	}
    	else
    	{
    		PORTB=0;
    		RA0=0;
    		gtthap=0xff;
    	};
    	
    	//-------------------------xu ly dai tan so thu hai------------------------		
    		CHS0=0;		//xu ly xuat port C
    		CHS1=1;
    		giua=ReadADC();
    		tggiuatam=doi(giua,trangthai);
    	if((tggiuatam<10)|(tggiua!=10))
    	{
    		if(tggiuatam<10)
    		{
    			if(tggiuatam<tggiua)
    			tggiua=tggiuatam;
    		};
    		PORTC=gtgiua;
    
    		if(tggiua==0)			
    		{	tggiua=10;
    			gtgiua=~(gtgiua);	//dao port C
    			PORTC=gtgiua;
    		}
    		else
    		{tggiua--;
    		__delay_ms(21);
    		};
    	}
    	else
    	{
    		PORTC=0;
    		gtgiua=0xff;
    	};
    	
    	//-------------------------xu ly dai tan so thu ba------------------------		
    		CHS0=1;				//xu ly xuat port D
    		cao=ReadADC();
    		tgcaotam=doi(cao,trangthai);
    	if((tgcaotam<10)|(tgcao!=10))
    	{
    		if(tgcaotam<10)
    		{
    			if(tgcaotam<tgcao)
    			tgcao=tgcaotam;
    		};
    		PORTD=gtcao;
    		if(tgcao==0)			
    		{	tgcao=10;
    			gtcao=~(gtcao);	//lay dao portD
    			PORTD=gtcao;
    		}
    		else
    		{tgcao--;
    		__delay_ms(21);
    		};
    	}
    	else
    	{
    		PORTD=0;
    		gtcao=0xff;
    	};
    	}							//ket thuc trang thai 6
    	
    
    	/*-----------------------------------------------------------------------	
    					TRANG THAI 7
    	-----------------------------------------------------------------------*/	
    		else if(trangthai==7)	//bat dau trang thai 7 (hon hop)
    		{
    		CHS0=1;
    		CHS1=0;
    		thap=ReadADC();
    		tgthaptam=doi(thap,4);
    		if(tgthaptam<tgthap)
    		tgthap=tgthaptam;
    			if(tgthap==0)			
    			{	tgthap=19;
    				gtthap=~(gtthap);	//lay dao portB
    				if((gtthap%2)==1)	//chuyen RB0 thanh RA0
    				RA0=1;
    				else
    				RA0=0;
    				PORTB=gtthap;
    			}
    			else
    			{tgthap--;
    			__delay_ms(20);
    			};
    	
    	
    		CHS0=0;
    		CHS1=1;
    		giua=ReadADC();
    		xgiua=doi(giua,1);
    		PORTC=xgiua;
    		__delay_ms(10);
    	
    	
    		CHS0=1;
    		cao=ReadADC();
    		tgcaotam=doi(cao,3);
    	if((tgcaotam<10)|(tgcao!=10))
    	{
    		if(tgcaotam<10)
    		{
    		if(tgcaotam<tgcao)
    		tgcao=tgcaotam;
    		};
    			PORTD=gtcao;
    			if(tgcao==0)			
    			{	tgcao=10;
    				gtcao=~(gtcao);	//lay dao portD
    				PORTD=gtcao;
    			}
    			else
    			{tgcao--;
    			__delay_ms(21);
    			};
    	}
    	else
    	{
    		PORTD=0;
    		gtcao=0xff;
    	};
    	};							//ket thuc trang thai 7
    	
    	
    	
    };							//ket thuc vong lap while
    }
    
    
    
    
     
  8. vmhoang68

    vmhoang68 TOT

    Tiếp tục, bài dài quá nên không gửi 1 lần được.

    Code:
    /***********************************************************************+
    |					CAC CHUONG TRINH KHOI TAO PORT						|
    +-----------------------------------------------------------------------*/
    
    void init_port(){
    	TRISA=0;
    	TRISB=0x01;
    	TRISC=0;
    	TRISD=0;
    	TRISE0=1;
    	TRISE1=1;
    	TRISE2=1;
    	ANSEL = 0;
    	ANSELH = 0;
    };
    
    void init_int(){
    	INTF = 0;//co bao ngat ngoai
    	INTE = 1;//cho phep ngat ngoai
    	INTEDG=0;//ngat canh xuong
    
    	TMR1L = 0;	//interrupt after 0.5s
    	TMR1H = 0;
    	
    	T1CON = 0x35;	//External Clock/8
    				
    	TMR1IF = 0;	//clear t1 interrupt
    	TMR1IE = 1;
    	
    	PEIE = 1;	//enable interrupts peripral	
    	GIE = 1;	//enable global interrupts
    };
    
    void init_adc(){
    	ANS5 = 1;	//cac chan nhan ADC la analog
    	ANS6 = 1;	//dung 3 chan PORT E
    	ANS7 = 1;
    	
    	ADCON1 = 0;
    	ADFM = 1;
    	
    	ADCON0 = 0;
    	ADCS0 = 1;
    
    	CHS2=1;		//su dung 3 chan ADC 5,6,7 nen bit thu 3 luon bang 1
    
    	ADON = 1;
    };
    
    
    /***********************************************************************+
    |					CHUONG TRINH PHUC VU NGAT 							|
    +-----------------------------------------------------------------------*/
    
    void interrupt isr(){
    	if(TMR1IF && TMR1IE){
    		TMR1IF  = 0;		//clear T1 interrupt flag
    		if(laptm1==0)		//thuc hien lenh sau 4 lan vao ngat timer 1
    		{	laptm1=3;
    			if(k==7)		//thay doi k de thay doi vi tri cua day led
    			k=0;
    			else
    			k++;
    		}
    		else
    		laptm1--;
    		};
    		
    	if(INTE && INTF)		//Ngat ngoai de thay doi trang thai hien thi
    		{
    		INTE=0;
    		INTF = 0;			//xoa co ngat ngoai
    		trangthai++;
    		if(trangthai==3)
    		{gtthap=0xff;gtgiua=0xff;gtcao=0xff;
    		PORTB=0xff;
    		RA0=1;
    		PORTC=0xff;
    		PORTD=0xff;
    		}
    		else if(trangthai==4|trangthai==7)
    		{gtthap=0xaa;gtgiua=0x55;gtcao=0xaa;
    		PORTB=0xAA;
    		RA0=0;
    		PORTC=0x55;
    		PORTD=0xAA;
    		}
    		else if(trangthai==6)
    		{gtthap=0xff;gtgiua=0xff;gtcao=0xff;
    		tgthap=10;tggiua=10;tgcao=10;
    		}		
    		else if(trangthai==8)
    		trangthai=0;
    		INTE=1;
    		};
    }
    
    /***********************************************************************+
    |			CHUONG TRINH KIEM TRA VA DICH TRAI 8 BIT DU LIEU			|
    +-----------------------------------------------------------------------*/
    unsigned char dichtrai(unsigned char dulieut)
    {
    	if(dulieut>127)		//kiem tra bit thu 7 co bang 1 khong
    	{dulieut<<=1;
    	dulieut|=1;
    	}
    	else
    	{dulieut<<=1;}
    	return(dulieut);
    };
    
    
    /***********************************************************************+
    |			CHUONG TRINH KIEM TRA VA DICH PHAI 8 BIT DU LIEU			|
    +-----------------------------------------------------------------------*/
    unsigned char dichphai(unsigned char dulieup)
    {
    	if((dulieup%2)==1)	//kiem tra bit 0 co bang 1 khong
    	{dulieup>>=1;
    	dulieup|=0x80;
    	}
    	else
    	dulieup>>=1;
    	return(dulieup);
    };
    
    
    /***********************************************************************+
    |	CHUONG TRINH DOI DO LON TIN HIEU DOC DUOC VE CAC GIA TRI CAN THIET	|
    +-----------------------------------------------------------------------*/
    	/*tmp la bien luu do lon tin hieu doc duoc
    	  trangthaitam la bien giu trang thai mong muon hien thi*/
    
    unsigned char doi(unsigned int tmp,unsigned char trangthaitam)
    {
    	unsigned char tam,i;	//luu gia tri truoc khi dich va so lan dich
    	unsigned char tgtam;	//luu so lan lap su dung o trang thai 3,4
    	
    	if((0<=tmp)&(tmp<=50))
    	{tam=((0x00));
    	tgtam=19;
    	}
    
    	else if((50<tmp)&(tmp<=140))
    	{tam=((0x01));
    	tgtam=16;
    	}
    	
    	else if((140<tmp)&(tmp<=240))
    	{tam=((0x03));
    	tgtam=13;
    	}
    
    	else if((240<tmp)&(tmp<=340))
    	{tam=((0x07));
    	tgtam=11;
    	}
    
    	else if((340<tmp)&(tmp<=450))
    	{tam=((0x0f));
    	tgtam=8;
    	}
    
    	else if((450<tmp)&(tmp<=570))
    	{tam=((0x1f));
    	tgtam=6;
    	}
    
    	else if((570<tmp)&(tmp<=700))
    	{tam=((0x3f));
    	tgtam=4;
    	}
    
    	else if((700<tmp)&(tmp<=889))
    	{tam=((0x7f));
    	tgtam=2;
    	}
    
    	else
    	{tam=((0xff));
    	tgtam=1;
    	};
    	
    	if(trangthaitam==0)								//dung yen 
    	{if(tam==0)
    	tam=(1);
    	return(tam);
    	}
    		else if(trangthaitam==1)					//vua dich phai vua sang
    		{if(tam==0)
    		tam=(1);
    		for(i=0;i<k;i++)
    		tam=dichphai(tam);
    		return(tam);
    		}
    	else if(trangthaitam==2)						//vua dich trai vua sang
    	{if(tam==0)
    	tam=(1);
    	for(i=0;i<k;i++)
    	tam=dichtrai(tam);
    	return(tam);
    	}
    		else if(trangthaitam==5)					//dung yen va thuong sang
    		return(~tam);
    		
    		else								/*den sang het va nhap nhay nhanh hay cham tuy nhac
    												den sang xen ke
    												trang thai 6*/
    		return(tgtam);
    			
    };
    
    
    /***********************************************************************+
    |					CHUONG TRINH DOC DU LIEU ADC						|
    +-----------------------------------------------------------------------*/	
    
    unsigned int ReadADC()
    {
    	__delay_us(20);
    	GODONE = 1;
    	while(GODONE);
    	return ((((unsigned int)ADRESH)<<8)|ADRESL);
    };
     
  9. thank bạn đã share. không biết bạn có thể nói rõ hơn cho mình ở chổ ngắt không.mình không biết bạn dùng mạch gì để tạo ngắt nữa.
     
  10. vmhoang68

    vmhoang68 TOT

    Ngắt ngoài thì hồi đó mình làm ngắt ngoài dùng nút bấm nhưng bạn có thể cải tiến lại là dùng quang trở hoặc hồng ngoại cho ngầu, lướt tay qua nó 1 cái là đổi kiểu thì hay hơn. Mạch tạo ngắt ngoài mình sử dụng giống như cái nút nhất reset của mạch main pic đó.
     
  11. thank bạn nhé. ah bạn cho mình hỏi tiếp cái nữa nhé không biết cái mạch led của bạn có phải là một chân điều khiển một dãy led ko. mà mấy cái dãy led màu đỏ nối sao vậy. còn cái tấm kính trên bo led bạn mua ở đâu thế có thể chỉ chổ cho mình được không
     
  12. vmhoang68

    vmhoang68 TOT

    Đúng rồi, làm như vậy nhằm mục đích tăng mức độ hoành tráng của sản phẩm đi lòe thiên hạ. Mấy cái led đỏ nối đối nhau, nghĩa là bóng bên này sáng thì bóng đối xứng cũng sáng, nối như thế nào là tùy mức độ sáng tạo của bạn, có cái là hơi bị khó nối dây, dễ lộn lắm. Cái tấm mica đó thì ra mấy tiệm làm bảng led trang trí đặt là được thôi, hơi bị mắc đó.
     
  13. tranhieu_hcmut

    tranhieu_hcmut Cố Vấn CLB Staff Member

    Cần cách ly giữa PIC & led bằng ULN2803 & trở công suất. tính toán để áp trên mỗi led khoảng 2.5 -> 3.5 V (tuỳ loại led), dòng từ 15 -> 25ma. Lúc trước hàn xong cái đống led đó mình cũng muốn lòi cả mắt...hic hic
     
  14. anhcmut

    anhcmut TOT

  15. vmhoang68

    vmhoang68 TOT

    Mạch nguyên lý gì mà chơi file obj lên là sao? Up file .dsn lên mới được. Cái khó bây giờ là vấn đề nguồn. Muốn đẹp với tiện thì dùng nguồn pin nhưng dùng thêm opamp rồi tụ rồi ic nữa e pin nhanh hết. Có đề nghị gì không?
     
  16. vmhoang68

    vmhoang68 TOT

    Thêm nữa, tính làm cái cây nến có thể đáp ứng theo sức mạnh mình thổi cơ, nghĩa là nếu mình thổi mạnh thì tắt luôn nhưng nếu thổi yếu yếu thì nó sẽ lập lờ. Muốn làm như vầy thì t nghĩ chắc chỉ có nước đọc adc liên tục thôi chứ ko dùng 74hc14 được đâu.
     
  17. cubo_pro

    cubo_pro Trứng gà

  18. nguyendungbkc

    nguyendungbkc Trứng gà

    link khôn g xem dc bạn ơi !
     
Loading...

Share This Page