طراح

زندگی یعنی پژوهش و فهمیدن چیز جدید (پروفسور حسابی)

زندگی یعنی پژوهش و فهمیدن چیز جدید (پروفسور حسابی)

طراح

شاکری لیسانس کنترل - دانشگاه خراسان
designer2100@outlook.com
اینستاگرام:
designer2013.blogsky@
تلگرام:
Abolfazl_shakeri@



کاری کنیم که کتابخانی یک امر رایج بشود



این کتاب را بخوانید



این کتاب را بخوانید



این کتاب را بخوانید



این کتاب را بخوانید





















لایه های EAGLE



برای پرینت گرفتن از کار تو نرم افزار EAGLE لایه هایی که لازم نیستند را از طریق پنجره تنظیمات غیر فعال نمایید.

و یا خروجی را به آلتیوم دیزاینر تبدیل کنید و از FILE--->FABRICATION OUTPUT----->FAINAL از فایل خروجی بگیرید.

WATER LEVEL CONTROL

پیام امام خامنه ای به جوانان دنیا

RS485


نمونه اولیه

یک ورودی با اپتوکوپلر داره.

و دوتا پورت rs485 برای شبکه شدن در تعداد بالا با PLC.

ارتباط  نیمه دوطرفه

برنامه مدباس را دوستم روی برد پیاده کردند.

MCU: ATXMEGA32A4

RS485 IC:  ISL83485IBZ

INPUT VOLTAG: 8V TO 30V

ابعاد 4.7 در 3.9 سانتی متر

XMEGA - Learn code

واحد کپچر تایمر در ATXMEGA

واحد کپچر تایمر در ATXMEGA


در میکروهای ATX به لطف واحد EVENT SYSTEM ورودی تحریک کپچر کردن میتونه از هر پایه ای که لازم داشته باشیم گرفته بشه یا حتی از واحد های سخت افزاری داخل میکرو (ADC,AC,...) و یا به صورت نرم افزاری.

اگر میخواهید از یک پایه به عنوان ورودی تحریک کپچر کردن استفاده کنید:

1-  باید حالت تشخیص لبه برای اون پایه تعریف بشه.

2- پایه مورد نظر به عنوان یکی از کانال های EVENT SYSTEM تعریف بشه.

3- تایمر مورد نظر در حالت NORMAL باشه و یکی از کانال های کپچر فعال بشه.

4- کانال EVENT SYSTEM برای ورودی تایمر و عملیاتی که باید انجام شود، تعریف شود.

5- فعال سازی وقفه کپچر

6- تنظیم پری اسکیلر تایمر


EXAMPLE:

PORTD.DIRCLR = PIN7_bm;

PORTD.PIN7CTRL = PORT_OPC_PULLDOWN_gc | PORT_ISC_BOTHEDGES_gc;

EVSYS.CH0MUX = EVSYS_CHMUX_PORTD_PIN7_gc;

EVSYS.CH0CTRL = EVSYS_DIGFILT_1SAMPLE_gc;

TCC0.CTRLB = TC_WGMODE_NORMAL_gc | TC0_CCAEN_bm;

TCC0.CTRLD = TC_EVACT_CAPT_gc | TC_EVSEL_CH0_gc;

TCC0.INTCTRLB = TC0_CCAINTLVL_gm;

TCC0.CTRLA = TC_CLKSEL_DIV64_gc;


ریموت کد لرنینگ


مهمترین نکته در خواندن کدهای ریموت این است که ابتدای کد (شروع کد) را به درستی پیدا کنید که البته آن هم بستگی به روش خواندن بیت های خروجی گیرنده دارد.

اگر تو نت سرچ کرده باشید دوبرنامه برای خواندن کدهای خروجی پیدا میکنید. من که از هیچ کدوم جواب نگرفتم. یکی با دوتا تایمر و یک وقفه خارجی نوشته بود و یکی هم با یک تایمر و یک وقفه خارجی.

به نظر من بهترین روش برای خواندن بیتهای خروجی استفاده از تایمر در مدکپچر هستش، خودم برنامه را به این روش نوشتم و جواب هم گرفتم.


صفر یا یک بودن هر بیت از نسبت صفر به یک، بودن مدت زمان پایه خروجی گیرنده تعیین می شود.

SRF05

برنامه استفاده از ماژول فاصله سنج SRF05


دانلود فایل


RC5

برنامه خواندن کدهای RC5:



typedef union 

{

uint16_t raw;

struct 

{

unsigned cmd    : 6; // LSB

unsigned addr   : 5;

unsigned toggle : 1;

unsigned start  : 2;

unsigned        : 2; // MSB

};

} rc5data;


static volatile int flag = 0;

static volatile rc5data data;


void init_int0()

{

// Interrupt on INT0 pin going low

MCUCR = (1 << ISC01);

//EICRA = (1<<ISC01); //mcu = at90can128

// Turn on INT0!

GICR = (1 << INT0);

//EIMSK |= (1 << INT0); //MCU = at90can128

}


SIGNAL (INT0_vect)

{

int pos = 0;

if (!flag) 

{

data.raw = 0;

// triggers on falling edge of start bit 1.

_delay_us(200);

while (pos < 14) 

{

data.raw = (data.raw << 1) | ((~PIND & 0x04) >> 2);

_delay_us(1800);

pos++;

}

flag = 1;

}

}


int main (void)
{
while(1)
{
if(flag)
{
// your program
flag = 0;
}
}

return 0;

}

price list

price 1


price 2


price 3

امکان اتصال تا بینهایت برد سگمنت

امکان کنترل با ریموت RF

امکان کنترل با ریموت IR

ذخیره اطلاعات در EEPROM و عدم پاک شدن قیمت ها

امکان سفارشی سازی و تغییر قیمت با SMS