طراح

طراح

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

طراح

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

برد کنترلر 1

مشخصات:

- میکروکنترلر MEGA64 / MEGA128

-سه خروجی موتور DC با درایور DRV8870

- 5 ورودی اپتوکوپلری

- ارتباط RS485

- ماژول WiFi

- بیزر

- در اختیار قرار داشتن 18 پایه از میکروکنترلر


طراحی شده با EAGLE





برد جایگزین میکروکنترلر تردمیل

به علت سوختن میکروکنترلر PIC دستگاه تردمیل، یک برد جایگزین با استفاده از میکروی AVR طراحی، ساخته و برنامه نویسی شد.



ATmega328P VS ATmega328PB

تفاوت ATmega328P  و ATmega328PB 



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

برنامه ای که قرار داده میشود تست شده و به خوبی کار میکند. منبع برنامه از سایت sisoog.com میباشد. با کمی تغییرات برای مگا64 تست شده. 

تغییراتی که در برنامه باید ایجاد کنید با توجه به سخت افزار خودتان: 1- تغییر در شماره وقفه ( Any change وقفه مورد استفاده باید قابلیت تشخیص هر تغییر در پایه را داشته باشد) 2- تغییر در خواندن وضعیت پایه وقفه در کتابخانه EV17xx_Decoder.c خط 57.


از این کتابخانه برای خواندن ریموت های کد فیکس هم میتوانید استفاده کنید.


متن توضیح گرفته شده از سایت sisoog.com :


متأسفانه سورس های زیادی وجود دارند که از منابع متن‌باز (OpenSource) کپی شده‌اند و به‌صورت تجاری در فضای اینترنت به فروش می‌رسند. سورس ریموت های کدلرن نیز از این دسته است. اگر سورس های متن‌باز وجود نداشتند شاید این میزان از پیشرفت در حوزه علم و تکنولوژی حاصل نمی‌شد. پس شایسته است که به‌جای منفعت شخصی خود به منفعت جمعی بیندیشم و سورس هایی ازاین‌دست را بفروش نرسانیم و با انتشار رایگان آنها نقشی در بالا بردن سطح دانش داشته باشیم.

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است. بسترهای متفاوتی برای ارسال اطلاعات وجود دارد که از پرکاربردترین آن‌ها، امواج مادون‌قرمز است که نمونه‌اش را همگی در ریموت‌های تلویزیون و وسایل خانگی دیده‌ایم و نوع دیگر، ریموت‌های رادیویی هستند که از امواج رادیویی برای ارسال داده‌ها استفاده می‌کنند. موضوع بحث ما، مورد دوم است: ریموت‌های رادیویی. این ریموت‌ها برای این‌که بتونند اطلاعات را منتقل کنند نیاز دارند که اول اطلاعات را روی یه موج دیگر که به آن موج حامل گفته می‌شود سوار (مدولاسیون) کنند. با این کار اطلاعات قابلیت انتشار در فضا را به‌دست خواهند آورد.

مدلاسیون دو نوع آنالوگ و دیجیتال دارد که خود به انواع دیگری تقسیم‌بندی می‌شوند. در مدولاسیون، سیگنال فرکانس بالا (حامل) بر اساس سیگنال پیام تغییر داده می‌شود. سیگنال حامل خواص مختلفی ازجمله دامنه، فرکانس و فاز دارد که می‌توانند بر اساس سیگنال پیام تغییر داده شوند و ازاین‌رو انواع مختلفی از مدولاسیون پدید می‌آید. (عکس زیر)

انواع مدلاسیون

همان‌طور که در عکس فوق مشاهده می‌کنید، در مدلاسیون AM سیگنال داده بر روی دامنه‌ی موج حامل تأثیر می‌گذارد و در مدلاسیون FM سیگنال داده بر روی فشردگی سیگنال حامل (فرکانس) تأثیر می‌گذارد. این مدلایسون به‌مراتب داری برد بیشتری نسبت به مدلاسیون AM است؛ چراکه در مدلاسیون AM کاهش دامنه به معنی کاهش توان فرستنده است. نوع بعدی مدلاسیون دیجیتال (Keying) است که درواقع نوعی از مدلاسیون FM محسوب می‌شود.

در مدارات دیجیتال ما با دو منطق صفر و یک سروکار داریم که برای انتقال به فرکانس‌های F0 و F1 تبدیل می‌شوند. فرکانس F0 یعنی منطق 0 و فرکانس F1 یعنی منطق 1. در این روش کار گیرنده خیلی ساده است و باید بتواند تفاوت بین فرکانس F0 و F1 را تشخیص دهد و آشکار کند. در ریموت‌کنترل‌های رادیویی برای ارسال داده از این نوع مدلاسیون یا مدلاسیون های مشابه استفاده می‌شود.

ریموت‌های کدلرن از مدلایسون ASK برای ارسال داده استفاده می‌کنند. مدلاسیون ASK زیرشاخه‌ی ساده‌شده‌ای از مدلاسیون دیجیتال است؛ فرکانس F0 از آن حذف شده است و فقط فرکانس F1 در آن استفاده می‌شود. یعنی وقتی‌که منطق 1 باشد فرکانس F1 تولید می‌شود و وقتی‌که منطق صفر است فرستنده خاموش می‌شود و هیچ سیگنالی تولید نمی‌شود.

مدلاسیون ASK


ترفند هم باعث ساده‌سازی فرستنده و هم گیرنده می‌شود؛ چراکه در فرستنده فقط باید فرکانس حامل با فرکانس F1 تولید شود و در گیرنده هم فقط باید فرکانس F1 شناسایی شود.

انواع گیرنده ریموت

تا اینجا با نحوه‌ی ارسال اطلاعات آشنا شدیم. برای ساخت یک ریموت کنترل ابتدا لازم است که امواج ارسالی از ریموت (فرستنده) را دریافت کنیم که بعد از پردازش بتوانیم عملی مناسب با درخواست کاربر را اجرا کنیم. با توجه به نوع فرستنده نیاز داریم که یک گیرنده ASK داشته باشیم که فرکانس آن با فرکانس ریموت یکی باشد، یعنی اگر از ریموت با فرکانس 433 مگاهرتز استفاده می‌کنیم گیرنده ASK نیز باید با همان فرکانس کار کند. در غیر این صورت مدار به‌درستی کار نخواهد کرد.

مطابق عکس زیر می‌توانیم مدار گیرنده را خودمان بسازیم؛ اما با توجه به پیچیدگی‌های بحث RF این کار توصیه نمی‌شود و بهتر است که از مدارها و ماژول‌های آماده‌ی موجود در بازار استفاده کنید.


مدار گیرنده ask


معمولاً ریموت‌ها در دو فرکانس 433 و 315  مگاهرتز موجود هستند. در خرید گیرنده دقت کنید که گیرنده‌ی تهیه‌شده با فرکانس ریموت شما هم‌خوانی داشته باشد. در حال حاضر دو نوع گیرنده ASK در بازار ایران یافت می‌شود:

مدل قدیمی‌تر درواقع یک گیرنده‌ی ترانزیستوری ساده از نوع super regenerative است که دارای حساسیت و دقت کمتر و قیمت پایین‌تری است. این گیرنده نیاز به ولتاژ کاری 55 ولت دارد و خروجی داده صفر و یک دارد، ولی به دلیل ساختار و نحوه آشکارسازی، بسیار تحت تأثیر نویزهای محیطی قرار می‌گیرد. (عکس زیر)


مدل جدیدتر درواقع یک گیرنده super heterodyne است و دارای مدار پیچیده‌تری برای آشکار‌سازی داده است. این گیرنده از کریستال کوارتز استفاده می کند؛ همین امر سبب می‌شود که هم کیفیت گیرندگی و هم دقت بالاتری داشته باشد.


این گیرنده‌ها علاوه بر 5 ولت قادرند با 3.3 ولت نیز به خوبی کار کنند و خروجی داده هم دارند. درواقع چینش پایه‌های این دو نمونه گیرنده به نحوی است که به‌راحتی می‌توان آن‌ها را جایگزین هم کرد. پس اگر گیرنده‌ای دارید که از برد آن راضی نیستید می‌توانید فقط ماژول ASK را به super heterodyne تغییر دهید و شاهد برد بهتر باشید.

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

بعد از دریافت داده‌ها و هموار شدن مسیر، نیاز است که پروتکل ارسال اطلاعات این‌گونه ریموت ها را بشناسیم تا قادر به رمزگشایی آن‌ها باشیم. اولین نکته‌ی مبهی که در خصوص ریموت‌های کدلرن به ذهن می‌آید، خود واژه کدلرن است. درواقع تا قبل از فراگیر شدن این نوع ریموت‌ها، ریموت‌های کدفیکس وجود داشتند. ریموت‌های کدفیکس دارای 8 پایه بودند که برای کد کردن آن‌ها باید این پایه‌ها را در حالات مختلفی به صفر و یک وصل می‌کردید و همین کار را در گیرنده نیز تکرار می‌کردید تا گیرنده و فرستنده باهم هم‌خوانی داشته باشند و کار کنند. این عمل را کد دادن می‌گفتند.


کد دادن ریموت مد فیکس


دلیل نام‌گذاری کدفیکس هم این است که گیرنده‌های این نوع ریموت، کد ثابتی دارند و اگر بخواهید ریموت دیگری نیز با این گیرنده کار کند باید دقیقاً مطابق دیگر ریموت‌ها کددهی شود. که البته این موضوع به لحاظ امنیتی مساله ساز است؛ چراکه اگر کد انتخابی شما را کسی متوجه شود به‌راحتی می‌تواند یک ریموت سازگار با گیرنده شما بسازد.

اما ریموت‌های کدلرن دارای امنیت بالاتری هستند. به این معنی که توسط شرکت یک کد 20 بیتی اتفاقی در حافظه آنها نوشته شده است. هر ریموت یک کد منحصربه‌فرد دارد و دو ریموت با کد یکسان وجود ندارد: بنابر این برای همگام کردن ریموت‌ها با گیرنده، گیرنده باید قادر باشد که کد هر ریموت را در خود ذخیره کند تا در مواقع درخواست، چک کند که آیا ریموت معتبر هست یا نه. این عمل را  اصطلاحاً لرن کردن می‌گویند. یعنی شما باید ریموت موردنظر خود را در گیرنده لرن کنید و برای همین هم به آنها ریموت‌های کدلرن می‌گویند.

خوشبختانه پروتکل مورداستفاده در ریموت‌های کد لرن مشابه است و فرقی نمی‌کند که شما از آی‌سی HS1527 یا EV1527 یا خانواده‌های مشابه استفاده می‌کنید. همه از انکدر OTP استفاده می‌کنند.

OTP ENCODER


در این روش 24 بیت داده از ریموت ارسال می‌شود که بیست بیت اول همان کد منحصربه‌فرد برای هر ریموت است و 4 بیت انتهایی مربوط به وضعیت کلیدهای فشرده‌شده ریموت است. در ابتدای هر ارسال، یک وضعیت همزمانی (Preamble) ارسال می‌شود که ما با دریافت این همزمانی باید منتظر دریافت 24 بیت داده باشیم. با توجه به توضیحات ارائه‌شده، ما نیاز 3 حالت منحصربه‌فرد داریم: حالت اول برای ایجاد سیگنال همزمانی (Preamble)، حالت دوم برای ایجاد وضعیت 1 منطقی و حالت سوم برای ایجاد 0 منطقی.

  1. حالت همزمانی: در این حالت اگر میزان یک بودن سیگنال مثلاً 1 میکروثانیه باشد، میزان صفر آن باید 30 میکروثانیه باشد.
  2. حالت یک منطقی : در این حالت اگر میزان یک بودن سیگنال مثلا 3 میکروثانیه باشد میزان صفر بودن آن باید 1 میکروثانیه باشد.
  3. حالت صفر منطقی: در این حالت اگر میزان یک بودن سیگنال مثلا 1 میکروثانیه باشد میزان صفر بودن آن باید 3 میکروثانیه باشد.

توجه داشته باشید زمان‌های ذکرشده به‌عنوان مثال هستند. برای روشن‌تر شدن موضوع و درواقع میزان این زمان‌ها با توجه به نوسان‌ساز داخلی آی‌سی تعیین می‌شود ولی نسبت‌ها به‌صورت توضیح داده شده حفظ می‌شوند.


اصلاحات مربوط به کتابخانه‌ی ریموت کدلرن

با توجه به این‌که کتابخانه‌ی ریموت کدلرن در سال 2009 نوشته شده و بعدازآن هیچ تصحیحی روی آن صورت نگرفته بود، بخش‌هایی از کتابخانه برای عملکرد بهتر و اصولی‌تر شدن کد نوشته‌شده، بازنویسی شد. اصلی‌ترین قسمت بازنویسی شده مربوط به روال دکد کتابخانه است. در کتابخانه‌ی قدیمی، حداکثر و حداقل طول پالس بر اساس میکروثانیه در برنامه تعریف شده بود. این مقادیر هنگام تغییر فرکانس کاری تایمر، مشکل‌ساز می‌شدند و با تغییر این فرکانس، کد دیگر به‌درستی کار نمی‌کرد.

#define Min_Pulse_Len 200 /* In us */
#define Max_Pulse_Len 15000 /* In us*/
مقادیر فوق به‌کلی از برنامه حذف شد تا در صورت نیاز و تغییر فرکانس کاری تایمر موردنظر، خللی در اجرای برنامه و دکد به وجود نیاید. در بخش جایگزین شده، فقط از نسبت پالس‌ها برای شناسایی نوع آنها استفاده شده است. با این راهکار شما می‌توانید فرکانس کاری تایمر را با خیال آسوده تغییر دهید.
#define IS_Sync_Start_Pulse(T1,T2) (T2 > (T1*29) && T2 < (T1*32))
#define Bit_IS_Zero(T1,T2) (T2 > (T1*2)  && T2 < (T1*4))
#define Bit_IS_One(T1,T2) (T1 > (T2*2)  && T1 < (T2*4))

فرکانس 1 مگاهرتز و 2 مگاهرتز به‌عنوان فرکانس شمارش تایمر مورد تست قرار گرفت که در هیچ‌کدام مشکلی وجود نداشت و برنامه به‌درستی کار می‌کرد.

تغییر صورت گرفته‌ی بعدی، مربوط به روال ذخیره‌سازی بیت‌های دریافتی از ریموت است. در کتابخانه قدیمی از یک آرایه برای نگهداری هر بیت استفاده می‌شد که 24 بایت از حافظه Ram را اشغال می‌کرد.

uint8_t Remode_Data[24];
.
.
.
.
if(Start_Sync==1) // Start Sended
{
if(Bit_Index < 24)
{
Remode_Data[Bit_Index] = !Bit_IS_Zero(Time_Rising,Time_Falling);
Bit_Index++;
}
else
{ // All Bit Recive
Bit_Index = 0;
Start_Sync = 0;
Revice_Flag = 1;
}
} // End of Start Sync Send
.
.
در بازنویسی کتابخانه، هر بیت واقعاً یک بیت از حافظه را اشغال می‌کند و داده‌ها در یک متغییر Long ذخیره می‌شوند که تنها 4 بایت از حافظه را اشغال می‌کند. البته جدول lookup برای افزایش سرعت اضافه شده است که 128 بایت از حافظه Flash را اشغال می‌کند که با توجه به حجم 32 کیلوبایتی فلش، مقدار زیادی نیست.
volatile uint32_t    EV_Code = 0;
 
const uint32_t Bit_Shift[32] PROGMEM =
{
0x00000001,0x00000002,0x00000004,0x00000008,
0x00000010,0x00000020,0x00000040,0x00000080,
0x00000100,0x00000200,0x00000400,0x00000800,
0x00001000,0x00002000,0x00004000,0x00008000,
0x00010000,0x00020000,0x00040000,0x00080000,
0x00100000,0x00200000,0x00400000,0x00800000,
0x01000000,0x02000000,0x04000000,0x08000000,
0x10000000,0x20000000,0x40000000,0x80000000,
};
 
.
.
.
.
if(Start_Sync==1) // Start Sended
{
if(Bit_Index < 23)
{
if(Bit_IS_Zero(Time_Rising,Time_Falling))
{
Bit_Index++;
}
else if(Bit_IS_One(Time_Rising,Time_Falling))
{
Receive_Code |= pgm_read_dword(&Bit_Shift[(23-Bit_Index)]);
Bit_Index++;
}
else
{
Start_Sync = 0;
Bit_Index = 0;
}
 
}
.
و البته چند تغییر کوچک دیگر که باعث بهبود عملکرد کتابخانه شده است.

توضیح عملکرد برنامه ریموت 4 کاناله


برنامه دارای 3 حالت مختلف، جهت عملکرد است:


enum
{
Nurmal = 0,
Learn,
Erase,
};
  • حالت نرمال
  • حالت لرن
  • حالت پاک کردن

حالت نرمال:

بعد از روشن شدن مدار، دستگاه در حالت نرمال است. در این حالت، LED بر روی برد، یک ثانیه روشن و یک ثانیه خاموش است.

در حالت نرمال، با فشردن هر یک از کلیدهای ریموت خروجی مربوطه تغییر وضعیت می‌دهد.

حالت لرن:

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

برای این‌که دستگاه وارد حالت لرن شود، کلید دستگاه را به مدت 1.5 ثانیه نگه‌دارید و سپس رها کنید. LED  دستگاه شروع به چشمک زدن با سرعت زیاد خواهد کرد. بعدازآن یکی از کلیدهای ریموتی که قصد داریم از آن استفاده کنیم را می‌فشاریم تا دستگاه کد آن را به خاطر بسپارد. بعد از لرن کردن، ریموت دستگاه به حالت نرمال بازخواهد گشت.

حالت پاک کردن:

برای حذف ریموت‌های ذخیره‌شده در حافظه‌ی دستگاه، باید کلید را به مدت 10 ثانیه بفشارید و سپس رها کنید. LED  به مدت 3 ثانیه روشن می‌شود و خاموش می‌شود. بعد از این کار تمام ریموت‌های ذخیره‌شده از حافظه‌ی دستگاه پاک خواهند شد.


جواب دادن به تماس ورودی GSM - SIM900


جواب دادن به تماس ورودی - GSM  :

ارسال دستور "ATA" به ماژول

نمایش شماره ی  تماس ورودی:

ارسال دستور "AT+CLIP=1" به ماژول

کالیبراسیون اسیلاتور داخلی AVR

در صورتی که از اسیلاتور داخلی میکروهای avr استفاده میکنید. حتما رجیستر OSCCAL اسیلاتور را ابتدای شروع برنامه با مقدار صحیح بارگزاری کنید تا خطای فرکانس حداقل باشد.
برای این کار با استفاده از پروگرمر MKII و نرم افزار اتمل استودیو میتوانید مقدار صحیح کالیبراسیون اسیلاتور برای فرکانس مورد نظر را از ناحیه signature row بخوانید و در آدرسی دلخواه از اییپرام ذخیره کنید سپس ابتدای برنامه مقدار را از اییپرام داخل رجیستر کالیبراسیون اسیلاتور بارگزاری نمایید.

مانند:

OSCCAL = eeprom_read_byte(0);


کتابخانه GPS برای میکرو Xmega

کتابخانه استفاده از ماژول GPS:

دریافت و جداسازی داده های جغرافیایی

تبدیل از درجه دسیمال به درجه, دقیقه, ثانیه

تبدیل از درجه,دقیقه,ثانیه به درجه دسیمال


دانلود


کتابخانه i2c نرم افزاری برای اتمل استودیو

کتابخانه i2c نرم افزاری برای اتمل استودیو.

از هر پایه ای که بخواهید میتونید به عنوان scl و sda استفاده کنید.

دانلود

درایور RGB مجهز به Wi-Fi

درایور RGB دارای اپلیکیشن اندروید



این کنترلر مجهز به شبکه محبوب Wi-Fi و دارای یک کانال RGB است که توانایی ترکیب سه رنگ اصلی را دارد و از این طریق میتوان رنگ دلخواه را ایجاد کرد.


با استفاده از آن می توانید منازل، اماکن و یا نمای ساختمان ها را نور پردازی کنید همچنین می توان تابلو های LED ویا چلنیوم چند رنگ را راه اندازی کرد.


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


این کنترلر دارای 6 افکت مختلف برای ترکیب رنگ ها به صورت اتومات میباشد.


امکان کنترل سرعت افکتها


جریان خروجی 10 آمپر




ایجاد رنگهای جذاب و زیبا بر روی نمای ساختمان و ویترین مغازه ها

استفاده در ساخت تابلو های چلنیوم و پلکسی و تغییر رنگ در آنها

استفاده در نوپردازی رنگی ساختمان ها , اماکن و پارک ها

استفاده و راه اندازی ال ای دی های نواری RGB

استفاده در ساخت تابلوهای LED تمام رنگ






کنترل با پیامک - پیشرفته


کنترلر پیامکی پیشرفته



پیام کنترل، یک سیستم کنترلی هوشمند مجهز به سیستم GSM و شبکه محبوبWI-FI میباشد.

توسط این سیستم کلیه دستگاه های الکتریکی موجود در منزل، ویلا، محل کار و ... را میتوان از راه دور و بدون محدودیت فاصله از طریق تلفن همراه کنترل (روشن-خاموش) کرد.

همچنین در صورت نزدیک بودن به دستگاه با استفاده از شبکه WI-FI ، میتوان بدون هزینه و سریع دستگاه های الکتریکی را کنترل کرد.

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

همچنین امکان اتصال سنسورهایی به ورودی دستگاه میباشد. در صورتی که سنسورها تغییر وضعیت دهند یک پیام برای شما ارسال میشود و شما را از وضعیت محیط مطلع میسازد.

دستگاه دارای نرم افزار اندروید و وینفون میباشد. که شما را قادر میسازد از طریق تلفن هوشمند خود دستگاه را به راحتی کنترل نمایید.

 


ویژگی های سیستم:


· دارای 8 ورودی

· دارای 6 خروجی

· دارای ساعت دقیق داخلی

· امکان تغییر نام شبکه WI-FI

· امکان تغییر رمز شبکه WI-FI

· دارای اپلیکیشن اندروید

· ارسال تغییر وضعیت ورودی ها

· امکان تغییر کد دریافت شارژ سیم کارت

· امکان دریافت باقی مانده شارژ سیم کارت

· امکان تعیین زمان بندی برای خروجی ها

· ذخیره و نمایش 12 رویداد اخیر سیستم

· امکان تعیین 8 شماره موبایل برای سیستم

· امکان حفظ حالت رله بعد از قطع-وصل برق

· امکان انتقال وضعیت ورودی ها به خروجی ها

· کنترل خروجی ها از طریق پیامک و WI-FI

· زمان دهی به خروجی ها از 1 ثانیه تا 24 ساعت 

· پاسخ گویی به دستورات پیامکی به صورت فارسی

· نام گذاری دلخواه برای ورودی ها (فارسی و انگلیسی)

· نام گذاری دلخواه برای خروجی ها (فارسی و انگلیسی)

· امکان گزارش گیری از وضعیت ورودی ها و خروجی ها

· تغییر تنظیمات از طریق منوی سیستم، پیامک و WI-FI

· امکان بروز رسانی اتومات ساعت داخلی از طریق پیامک دریافتی


مشخصات فنی:


تغذیه دستگاه 12 ولت.

قابل نصب بر روی ریل

ورودی های ایزوله تا 4000 ولت.

خروجی ها از نوع رله ای تا 4 آمپر

ابعاد دستگاه 157x87x60  میلی متر

ولتاژ ورودی های دستگاه تا 24 ولت.

 

 





دانلود کاتالوگ

کاربردها:

کنترل وسایل الکتریکی از راه دور

کنترل روشنایی محیط های وسیع

اعلام هشدار پیامکی حریق، سرقت

راه اندازی چاه های آب، آبیاری باغ ها

هوشمند سازی و کنترل منازل و ویلاها

کنترل تجهیزات گلخانه ها، مرغذاری ها

تجهیز تابلو های برق به سیستم پیامکی

 

 

سنسور رطوبت و دما - DHT11

سنسور دما و رطوبت دیجیتال dht11 ؛ با پروتکل 1wire .

مشخصات سنسور :

1- رطوبت:

 16 بیتی

دقت در دمای 25 درجه = +/- 5%

2- دما:

 16 بیتی

دقت در دمای 25 درجه = +/- 2 درجه


3- تغذیه: 3.5 - 5.5 ولت





کتابخانه خواندن دما و رطوبت


خواندن کدهای ریموت مادون قرمز سونی read Sony IR remote code - AVR


The SIRC protocol uses a pulse width encoding of the bits. The pulse representing a logical "1" is a 1.2ms long burst of the 40kHz carrier, while the burst width for a logical "0" is 0.6ms long. All bursts are separated by a 0.6ms long space interval. The recommended carrier duty-cycle is 1/4 or 1/3


The picture above shows a typical pulse train of the SIRC protocol. With this protocol the LSB is transmitted first. The start burst is always 2.4ms wide, followed by a standard space of 0.6ms. Apart from signalling the start of a SIRC message this start burst is also used to adjust the gain of the IR receiver. Then the 7-bit Command is transmitted, followed by the 5-bit Device address. In this case Address 1 and Command 19 is transmitted

Commands are repeated every 45ms(measured from start to start) for as long as the key on the remote control is held down

The table below lists some messages sent by Sony remote controls in the 12-bit protocol. This list is by no means meant to be complete, as the assignment of functions is probably quite dynamic

AddressDevice
1TV
2VCR 1
3VCR 2
6Laser Disc Unit
12Surround Sound
16Cassette deck / Tuner
17CD Player
18Equalizer
 

CommandFunction
0Digit key 1
1Digit key 2
2Digit key 3
3Digit key 4
4Digit key 5
5Digit key 6
6Digit key 7
7Digit key 8
8Digit key 9
9Digit key 0
16Channel +
17Channel -
18Volume +
19Volume -
20Mute
21Power
22Reset
23Audio Mode
24Contrast +
25Contrast -
26Colour +
27Colour -
30Brightness +
31Brightness -
38Balance Left
39Balance Right
47Standby

مرجع: http://www.sbprojects.com/knowledge/ir/sirc.php

دانلود برنامه نوشته شده برای atmel studio

WATER LEVEL CONTROL


شیربرقی




SRF05


سنسور سیستم یک ماژول آلتراسونیک میباشد. SRF05 که تا فاصله 5 متری را اندازه گیری مینماید. از طریق این سنسور ارتفاع آب داخل مخزن به دست می آید و اگر از ارتفاعی که برای سیستم تعریف شده است بیشتر شده باشد به شیر برقی فرمان باز شدن میدهد تا سطح آب به مقدار تنظیم شده برسد.

PCB با نرم افزار EAGLE  طراحی شده است.

برنامه با نرم افزار ATMEL STUDIO و به زبان C نوشته شده است.

mcu: mega16

lcd2x16

keypad= 4X4

valve = 24V AC که من با 12V DC بوبینش را تحریک میکنم

ultrasonic module= SRF05


AVR

SRF05

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




دانلود فایل


کتابخانه ال سی دی گرافیکی TS240128D

یک کتابخانه عالی برای راه اندازی GLCD 240X128  - مدل TS240128D

رسم دایره و مستطیل و خط و ...

فارسی نویسی 


کتابخانه را کمی تغییرات دادم تا در Atmel studio بتوان از آن استفاده کرد.


اول برنامه و قبل از اضافه کردن کتابخانه GLCD حتما تعریف و  کتابخانه استفاده از حافظه فلش را قرار دهید.


#define  __PROG_TYPES_COMPAT__ prog_char

#include <avr/pgmspace.h>


نکته دیگه این که برای نوشتن حرف   "ی"   از   "SHIFT + X"   استفاده کنید.


این کتابخانه توسط آقای نوربخش آماده شده است.





دانلود پروتئوس و برنامه