خیلی ممنون دوستان
(۰۶-شهریور-۱۳۹۲, ۱۷:۳۱:۵۶)sharin نوشته است: @هادی:
قبلا به چشم خورده بود این موضوع ، اما چون خودم کار نکردم به ذهن ندارم.
شاید اگر برای همه ی پایه ها یه مقاومت pull down بذاری مشکل حل بشه. تو نت هم یه سرچی بزن. موفق باشی.
پول دون گذاشتم ولی تاثیری نداشت
هر چی گشتم هیچی ندیدم
چی سرچ کنم؟
(۰۶-شهریور-۱۳۹۲, ۲۱:۱۴:۴۸)Ambassador نوشته است: @هادی جان
من یه بار توتابلو به این مشکل برخوردم، میخواست قسمتی از یک حرف رو روشن کنم کلش روشن میشد، آخرش امدم کل حرف رو روشن کردم تا خرابیش به چشم نیاد، اما خب مشکل از ال ای دی نمیتونه باشه چون با همون ال ای دی ها یه تابلو دیگه بستم مشکلی نداشت. من میگم نمیشه از زیادی داغ شدن ال ای دی ها باشه؟
اصلا ال ای دی ها داغ نمی کنن
این خیلی کمه توی اون ساعت کلا بیخیالش شدیم ولی می خوام بفهمم دقیقا چشه چون هرچی نور ال ای دی ها رو بیشتر میکنم ضایعتر میشه می خوام کلا حذفشون کنم
(۰۶-شهریور-۱۳۹۲, ۲۲:۵۸:۴۷)r0b0 نوشته است: با پول دان به احتمال بالا درست میشه
نشد مدارش و بذار بررسی کنیم
++
با ترانزیستور هم میتونی طبقات (هر 7تا قسمت) و از هم جدا کنی
با کوپلر کلا جداشون کردم و همون طور که آقا مرتضی گفتن با ترانزیستور تقویتشون کردم
شماتیک پیوست شد فقط بین سگمنت ها و میکرو کوپلر و ترانزیستور گذاشتم بقیش همینه
(۰۷-شهریور-۱۳۹۲, ۰۰:۲۷:۴۶)behzady نوشته است: مشکل از اینه که کد برنامه رو نمی زاری
-
کلا منم این مشکل رو داشتم چون سرعت بالا هست مثل اینکه LED خاموش نمی شه(اگه مدار درایو هم گذاشتی بین میکرو و LED ها اونم ممکنه خاموش نشه)
کلا من چون مدارم رو ساخته بودم و پول دون نمی شد بزارم قبلا تغییر LED های روشن اول کل پایه هارو صفر می کردم (همه خاموش برن لالا) بعد یه وقفه خیلی کم (مثلا نصف اون مقداری که الان بین سویچ LED ها گذاشتی) بعد دوباره LED ها رو روشن می کردم ...
من فرکانس متر ندارم ولی تو پروتئوس چک کردم فرکانس هر پایه از 40 هرتز بیشتر نمیشه و کوپلر هم تا 80 کیلو جواب میده مشکل از این نمی تونه باشه
کلا سخت افزارم سالمه خیلی چکش کردم
این سورس برنامه به زبان سی
کد:
#include <mega16.h>
#include <delay.h>
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=4
.equ __scl_bit=5
#endasm
#include <i2c.h>
#include <ds1307.h>
char sega[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
int d=5,e;
unsigned char ym,mmo,dm,h,m,s;
unsigned long int ys1,ym1;
int ym2,ys2,ys,mso,ds,mmo1,mso1,k,del=1;
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
e++;
if(e==2){
e=0;
s++;
d++;
}
if (e==0) {
PORTD.4=1;
PORTB.7=1;
}
else{
PORTD.4=0;
PORTB.7=0;
}
if (s==0) {
PORTB.3=1;
}
else{
PORTB.3=0;
}
}
#define ADC_VREF_TYPE 0x00
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
void main(void)
{
int a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a15,a16;
int dama,me,me1,incr,decr,chm;
PORTA=0x00;
DDRA=0xFE;
PORTB=0x00;
DDRB=0x8F;
PORTC=0x00;
DDRC=0x0F;
PORTD=0x00;
DDRD=0xFF;
ASSR=0x08;
TCCR2=0x04;
TCNT2=0x00;
TIMSK=0x40;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x82;
#asm("sei")
i2c_init();
rtc_init(0,0,0);
rtc_get_time(&h,&m,&s);
rtc_get_date(&dm,&mmo,&ym);
//***************************************
ym1=ym+2000;
k=ym1%4;
ym1=ym1-1;ym1=ym1*365;
if(mmo==1){mmo1=0;}
if(mmo==2){mmo1=31;}
if(mmo==3){mmo1=59;}
if(mmo==4){mmo1=90;}
if(mmo==5){mmo1=120;}
if(mmo==6){mmo1=151;}
if(mmo==7){mmo1=181;}
if(mmo==8){mmo1=212;}
if(mmo==9){mmo1=243;}
if(mmo==10){mmo1=273;}
if(mmo==11){mmo1=304;}
if(mmo==12){mmo1=334;}
if(k==0){mmo1++;}
ym1=ym1+mmo1;
ym1=ym1+dm;
ym2=ym+2000;
ym2--;
ym2=ym2/4;
ym1=ym1+ym2;
ym1=ym1-226899;
ys2=ym2-155;
ys1=ym1-ys2;
ys=ys1/365;
ys=ys+1;
mso1=ys1%365;
mso=1;
if(mso1>31){mso++;mso1=mso1-31;}
if(mso1>31){mso++;mso1=mso1-31;}
if(mso1>31){mso++;mso1=mso1-31;}
if(mso1>31){mso++;mso1=mso1-31;}
if(mso1>31){mso++;mso1=mso1-31;}
if(mso1>31){mso++;mso1=mso1-31;}
if(mso1>30){mso++;mso1=mso1-30;}
if(mso1>30){mso++;mso1=mso1-30;}
if(mso1>30){mso++;mso1=mso1-30;}
if(mso1>30){mso++;mso1=mso1-30;}
if(mso1>30){mso++;mso1=mso1-30;}
ds=mso1;
if(ds==0){ds=31;mso--;}
if(mso==0){ds=30;mso=12;}
//*****************************
while (1)
{
if(TCNT2<128){PORTC.3=1;chm=1;}else{PORTC.3=0;chm=0;}
if (dm==0){dm--;mmo--;}
if(dm>31){
if(mmo==1){dm=31;}
if(mmo==2){if(k==0){dm=29;}else{dm=28;}}
if(mmo==3){dm=31;}
if(mmo==4){dm=30;}
if(mmo==5){dm=31;}
if(mmo==6){dm=30;}
if(mmo==7){dm=31;}
if(mmo==8){dm=31;}
if(mmo==9){dm=30;}
if(mmo==10){dm=31;}
if(mmo==11){dm=30;}
if(mmo==12){dm=31;}
}
//***********************************************************************
if((PINB.6==1) && (me1==0)) {me++;me1=1;}
if((PINB.6==0) && (me1==1)) {me1=0;}
if(me==7) {
me=0;
rtc_set_time(h,m,s);
rtc_set_date(dm,mmo,ym);
}
if(me==0){
if(s>59){s=0;m++;}
if(m>59){m=0;h++;}
if(h>23){h=0;ds++;dm++;}
if(mso>6){if(ds>31){ds=0;dm=0;mso++;mmo++;}}else{if(ds>30){ds=0;dm=0;mso++;mmo++;}}
if (mso>12){mso=0;mmo=0;ys++;ym++;}}
else{
if(s>59){s=0;}
if(m>59){m=0;}
if(h>23){h=0;}
if(mso>6){if(ds>31){ds=1;dm=1;}}else{if(ds>30){ds=1;dm=1;}}
if(mso>12){mso=0;mmo=0;}
}
//***************************
a1=s%10;a2=s/10;
//**********
a3=m%10;a4=m/10;
//**********
a5=h%10;a6=h/10;
//**********
a7=ds%10;a8=ds/10;
//**********
a9=mso%10;a10=mso/10;
//**********
a11=ys%10;
//**********
a12=ys%100;a12=a12/10;
//**********
a13=ys%1000;a13=a13/100;
//**********
a15=dama%10;a16=dama/10;
//***************************
PORTA.1=0;PORTA.2=0;PORTA.3=0;PORTA.4=0;PORTA.5=0;PORTA.6=0;PORTA.7=0;
PORTA.1=1;PORTD=sega[a1];delay_ms(del);//PORTA.1=0;
PORTA.1=0;PORTA.2=0;PORTA.3=0;PORTA.4=0;PORTA.5=0;PORTA.6=0;PORTA.7=0;delay_ms(del);
PORTA.2=1;PORTD=sega[a2];delay_ms(del);//PORTA.2=0;
PORTA.1=0;PORTA.2=0;PORTA.3=0;PORTA.4=0;PORTA.5=0;PORTA.6=0;PORTA.7=0;delay_ms(del);
PORTA.3=1;PORTD=sega[a3];delay_ms(del);//PORTA.3=0;
PORTA.1=0;PORTA.2=0;PORTA.3=0;PORTA.4=0;PORTA.5=0;PORTA.6=0;PORTA.7=0;delay_ms(del);
PORTA.4=1;PORTD=sega[a4];delay_ms(del);//PORTA.4=0;
PORTA.1=0;PORTA.2=0;PORTA.3=0;PORTA.4=0;PORTA.5=0;PORTA.6=0;PORTA.7=0;delay_ms(del);
PORTA.5=1;PORTD=sega[a5];delay_ms(del);//PORTA.5=0;
PORTA.1=0;PORTA.2=0;PORTA.3=0;PORTA.4=0;PORTA.5=0;PORTA.6=0;PORTA.7=0;delay_ms(del);
PORTA.6=1;PORTD=sega[a6];delay_ms(del);//PORTA.6=0;
PORTA.1=0;PORTA.2=0;PORTA.3=0;PORTA.4=0;PORTA.5=0;PORTA.6=0;PORTA.7=0;delay_ms(del);
PORTA.7=1;PORTD=sega[a7];delay_ms(del);//PORTA.7=0;
PORTB.0=0;PORTB.1=1;PORTB.2=1;PORTB.3=1;PORTB.7=1;delay_ms(del);
PORTB.0=1;PORTD=sega[a8];delay_ms(del);//PORTB.0=0;
PORTB.0=0;PORTB.1=0;PORTB.2=0;PORTB.3=0;PORTB.7=0;delay_ms(del);
PORTB.1=1;PORTD=sega[a9];delay_ms(del);//PORTB.1=0;
PORTB.0=0;PORTB.1=0;PORTB.2=0;PORTB.3=0;PORTB.7=0;delay_ms(del);
PORTB.2=1;PORTD=sega[a10];delay_ms(del);//PORTB.2=0;
PORTB.0=0;PORTB.1=0;PORTB.2=0;PORTB.3=0;PORTB.7=0;delay_ms(del);
PORTB.3=1;PORTD=sega[a11];delay_ms(del);//PORTB.3=0;
PORTB.0=0;PORTB.1=0;PORTB.2=0;PORTB.3=0;PORTB.7=0;delay_ms(del);
PORTB.7=1;PORTD=sega[a12];delay_ms(del);//PORTB.7=0;
PORTC.0=0;PORTC.1=0;PORTC.2=0;delay_ms(del);
PORTC.0=1;PORTD=sega[a13];delay_ms(del);//PORTC.0=0;
PORTC.0=0;PORTC.1=0;PORTC.2=0;delay_ms(del);
PORTC.1=1;PORTD=sega[a15];delay_ms(del);//PORTC.1=0;
PORTC.0=0;PORTC.1=0;PORTC.2=0;delay_ms(del);
PORTC.2=1;PORTD=sega[a16];delay_ms(del);//PORTC.2=0;
//***********************************************************************
if(d==5){d=0;ADCSRA|=0x40;dama=read_adc(0);dama=dama/2;}
//***********************************************************************
if((PINB.4==1)&&(incr==0)){incr=1;
if(me==1){s=0;}
if(me==2){m++;}
if(me==3){h++;}
if(me==4){ds++;dm++;}
if(me==5){mso++;mmo++;}
if(me==6){ys++;ym++;}
}
if((PINB.4==0)&&(incr==1)){incr=0;}
//'***********************************************************************
if((PINB.5==1)&&(decr==0)){decr=1;
if(me==1){s=0;}
if(me==2){m--;}
if(me==3){h--;}
if(me==4){ds--;dm--;}
if(me==5){mso--;mmo--;}
if(me==6){ys--;ym--;}
}
if((PINB.5==0)&&(decr==1)){decr=0;}
//'***********************************************************************
};
}
خوب یه سوال دیگه
بهزاد جان منظورت از پایه ها کدوما هستن؟پایه های a-g یا پایه های مشترک؟