رفتن به نوشته‌ها

نویسنده: MechaTronic

پسوند میکروکنترلرهای AVR

مثال

میکروکنترلر محدوده تغذیه فرکانس کاری
ATTINY2313V AVR با پسوند V ۱٫۸-۵٫۵V ۰-۴ MHZ
ATMEGA8L AVR با پسوند L ۲٫۷-۵٫۵V ۰-۸MHZ
ATMEGA32 AVR بدون پسوند ۴٫۰-۵٫۵V ۰-۱۶MHZ

(جدول ۱-۱)

۶-۱ نوع بسته بندی AVRها :

نوع بسته بندی علامت
Plastic Dual Package( PDIP ) P
Plastic Gull Wing Small Outline Package ( SOIS ) S
Micro Lead Frame Pakage ( MLF) M
Plastic J-leaded chip carrier( PLCC ) J
Thin profile Plastic Quad Flat Package ( TQFP) A
Plastic Shrink Small Outlina Packege ( SSOP) Y

۷-۱ محدوده دمای کاری AVR ها :

محدوده دمای کاری نوع بسته بندی علامت
۰^c to 70^c)) COMMERCIAL C
– ۴۰^c to 85^c)) INDUSTRIAL I
– ۴۰^c to 85^c)) INDUSTRIAL ( pb- free packaging complies to the europeean Directive for restriction of hazardous substances) U

تابع millis در آردینو

unsigned long time; time = millis(); زمان را بر حسب میلی ثانیه بر میگرداند و حدودا هر ۵۰ روز سر ریز می شود. به عبارت دقیق تر  هر  ۲ به توان ۳۲ میلی ثانیه سر ریز می شود: ۲^۳۲ = ۴۲۹۴۹۶۷۲۹۶  [ms] تابع millis مقدار بازگشتی را درون متغییر time که از نوع unsigned long هست میریزد. چنانچه time از نوع int تعریف شود با خطا مواجه می شوید.  

پکیج های آی سی (IC)

قطعات DIP : DIP یکی از رایج ترین  پکیج های IC است که شما با آن روبه رو می شوید. آن تراشه های کوچک دارای دو ردیف پین موازی و یک مکعب مستطیل ،سیاه رنگ و یک خانه پلاستیکی هستند یکی از محبوبترین میکروکنترلرها با پکیج DIP را می توانید در عکس بالا مشاهده نمایید. هر دو پین  IC به اندازه (۲.۵۴mm) از یک دیگر فاصله دارد ، که این فاصله  مناسب و استاندارد برای اتصالات  فیبر مدار چاپی  است.به طور کلی ابعاد و پکیج های DIP  به تعداد پین ها بستگی دارد  که ممکن است  در هر چهار طرف…

زمانسنجی فشرده بودن کلید با استفاده از آردینو

طرح مسئله: کلید ۳ ثانیه بایستی فشرده شود تا وارد منو شویم؛ شرط ها و سایر دستورات دلخواه را به جای a++ می نویسیم.   int pin = A5,a=0; bool key=true; int duration=2500; // [ms] unsigned long Time_Low=0; void setup() { Serial.begin(9600); pinMode(pin, INPUT_PULLUP); } void loop() { if (digitalRead(A5)==LOW ) { if (key==true) {Time_Low = millis(); key=false;} } if (digitalRead(A5)==HIGH && key==false ) { if ( (millis()-Time_Low) > duration)      {       a++;       Time_Low=0;      } key=true; } Serial.print(“Key: “); Serial.println(key); //prints time since program started Serial.print(“a: “); Serial.println(a); //prints time since program started }

تابع pulseIn() در آردوینو

https://www.arduino.cc/reference/en/language/functions/advanced-io/pulsein/

مدت زمان (برحسب میکروثانیه) نگه داشته شدن کلید در یک بار طی شدن حلقه loop را میدهد. یعنی این صورت نیست که هر چه دست را نگه داشتید روی دکمه زمان آن را محاسبه کند. صرفا از زمانی که دست روی کلید رفته تا زمانی که لوپ مجدادا به خط کد pulsin باز میگردد.

دستور پرینت در سریال مانیتور اردوینو

کد

Serial.print(“duration”);
Serial.print(duration);
Serial.print(“duration3”);
Serial.print(duration3);

خروجی

duration0duration30duration0duration30duration0duration30duration0duration30duration0duration30duration0duration30duration0duration30duration0duration30duration0duration30

راه اندازی سنسور رطوبت سنج HS1101

HS1101 یک سنسور رطوبت خازنی می باشدکه بر اساس ظرفیت متغیر خازن عمل می کند.به این صورت که با تغییر رطوبت در محیط،ظرفیت خازن موجود در این سنسور تغییر کرده و رطوبت مورد نظر از این طریق قابل اندازه گیری است.این نوع از سنسور های رطوبت در کاربردهای مختلفی مانند اتوماسیون ادارات،کنترل هوای داخل کابین خودرو،لوازم خانگی و سیستم های کنترل صنعتی استفاده می شود. HS1101 برای راه اندازی این سنسور باید از یک آی سی ۵۵۵ استفاده کرد. با استفاده از آی سی ۵۵۵ یک نوسان ساز می سازیم . با تغییر میزان رطوبت ،میزان خازن سنسور هم تغییر…

محاسبه مقاومت پول آپ و پول داوون

مقاومت بالا/پایین کش (Pull Up/Down Resistor) چیست و چرا استفاده می شود؟

فرض کنید که در حال استفاده از یک میکروکنترلر هستید و یک پین خاص آن را به صورت ورودی تعریف کرده باشید. در صورتی که هیچ مقاومت Pull Up یا Pull Down بر روی پین ورودی وجود نداشته باشد و پین توسط شما به GND و یا Vcc متصل نباشد، مقدار دیجیتال این پین که توسط میکروکنترلر خوانده می شود تحت تاثیر نویز و وضعیت پایه های کناری و غیره قرار می گیرد و به طور کلی مقدار خوانده شده قابل پیش بینی نیست. معمولا میکروکنترلرها امکان اتصال مقاومت Pull Up و یا Pull Down به صورت داخلی را برای کاربر فراهم می کنند که حجم مدار خارجی را کم و مشکلی که در بالا ذکر شد را بر طرف می نمایند. اما فرض کنید که پین به صورت ورودی تعریف شده و هیچ مقاومت بالاکش و یا پایین کش به آن وصل نشده و اصطلاحا به صورت شناور (Floating) است. در صورتی که بخواهیم وضعیت یک کلید را توسط این پین بخوانیم، مشکل ذکر شده باعث می شود که در زمان باز بودن کلید (پین شناور خواهد بود) مقدار دیجیتال خوانده شده قابل پیش بینی نباشد و هر دو مقدار “۰” و یا “۱” منطقی ممکن است خوانده شود. بنابراین نمی توان با خواندن مقدار پین ورودی، وضعیت کلید را تشخیص داد. برای رفع مشکل بیان شده باید از مقاومت Pull Up و یا Pull Down استفاده کرد. همانطور که بیان شد ممکن است میکروکنترلر مورد استفاده شما دارای یکی از این مقاومت ها به صورت داخلی باشد. در این نوشته در مورد مقاومت Pull Down صحبت می کنید. این مباحث عینا برای مقاومت Pull Up کاربرد دارد.