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

دسته: آردوینو

آردوینو

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

برای لگاریتم گرفتن از عدد از مثال زیر استفاده کنید: نیازی به کتابخانه ندارد

  • logRt1 = log(Rt1);

لگاریتمی  که آردینو حساب میکند بر مبنای عدد طبیعی یا نپر e= 2.718281828459  است. لگاریتم طبیعی می گویند.

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

برای اینکه در اکسل لگاریتم بر مبنای عدد نپر باشد بصورت زیر فرمول نویسی می کنیم:

  • =LOG(J4; 2.718281828459)

ترمیستور

ترمیستور با علامت 100D-9  یعنی مقاومت 100 اهم در دمای 25 درجه و قطر 9 میلی متر.حداکثر جریان دهی 0.8 آمپر می باشد.

ترمیستور با علامت 502D-5 یعنی مقاومت 5 کیلو اهم در دمای 25 درجه و قطر5 میلی متر. حداکثر جریان دهی 10 میلی آمپر می باشد.

ترمیستور با علامت 102D-5 یعنی مقاومت 1 کیلو اهم در دمای 25 درجه و قطر5 میلی متر. حداکثر جریان دهی 55 میلی آمپر می باشد.

 

برای استفاده به عنوان سنسور دما ترمیستور 10 کیلو اهمی مناسب است.

ترمیستورهای NTC متداول‌تر بوده و در اینجا از آن استفاده شده است. همانطور که اشاره شد، برای اندازه‌گیری دما باید مقاومت ترمیستور را اندازه بگیریم. آردوینو نمی‌تواند مقاومت را مستقیما اندازه بگیرد؛ با این وجود می‌توان مقاومت ترمیستور را به طور غیرمستقیم از روی ولتاژ اندازه گرفت. برای این کار باید از یک مقاومت دیگر برای تقسیم ولتاژ استفاده کنید. مقدار این مقاومت را به اندازه مقاومت ترمیستور (kΩ ١٠) انتخاب کنید. یک سر ترمیستور را به 5V و سر دیگر آنرا به مقاومت وصل کنید. سر دیگر مقاومت را نیز به GND متصل کنید. محل اتصال ترمیستور و مقاومت را به یکی از پایه‌های آنالوگ آردوینو وصل کنید.

شماتیک ترمیستور

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

  •  خواندن مقداری از پتانسیومتر متصل به پایه آنالوگ و Map کردن آن بین بازه مثبت.

uint8_t PtnTemp = map(analogRead(PinPtnTemp), 0, 1023, 102, 202);

از متغییر نوع uint8_t برای کاهش حجم کدها استفاده شود. ضمن اینکه اگر بازه مثبت هست (در اینجا 102 تا 202 ) حتمن نوع متغییر بدون علامت (U) ذکر شود؛ چراکه ممکن هست مقدار مپ شده منفی نیز باشد. یعنی نصف پتانسیومتر بچرخانید عدد مثبت درست نمایش داده میشود و از نصف به بعد اعداد خوانده شده منفی میشوند.

آرایش وارون ساز ترانزیستور

زمانی که ورودی 5 یا 12 ولت به بیس اعمال شود ترانزیستور خاموش می شود. مدار اول ترانزیستور PNP به شماره 2SA1058 است و در مدار دوم ترانزیستور NPN به شماره 2SC945  می باشد. به نظر ترانزیستور C945 هم برای مدار دوم می توان استفاده کرد. یا Bc547 به نظر مدار دوم بهتر است. و اینکه اصطلاحا به این مدارات اینورت (معکوس یا ورون) گفته می شود.    

راه اندازی سنسور LM35

مبدل ADC برد ولتاژ آنالوگ خروجی سنسور را مطابق فرمول زیر به یک عدد باینری تبدیل می کند :

Value = sample * 1024 / reference voltage (+5v)

مقدار = مقدار نمونه * 1024 / ولتاژ مرجع (+5V)

در نتیجه طبق این رابطه برای ولتاژ مرجع +5V مقدار خروجی دیجیتال برابر با ولتاژ ورودی ضرب در عدد 205 خواهد بود.

این فرمول در اکثر ADC های میکروکنترلرها هستش و برای اطلاعات بیشتر به دیتاشیت میکروکنترلرهای AVR یا یک کتابی که ساختار ADC را توضیح میده مراجعه کنید. در اینجا ولتاژ مرجع 5 ولت هستش و تعداد بیت نمونه برداری 10 بیت و برای همین از اعداد 5 ولت و 1024 استفاده شده در فرمول. مثلا به جای sample اگر 5 بذارید ( ولت ورودی بدید به ADC ) در خروجی عدد 1024 را خواهید داشت… ولتاژ رفرنس را میتونید تغییر بدید و به ولتاژ دیگری وصل کنید…مثلا برای دقت های بالا به ولتاژ دقیق پایین تر وصلش میکنن…

ATtiny13

کتابخانه زیر فقط ATtiny13 را دارد

  • https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
  • https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
ATtiny13PinOut
ATtiny13PinOut

برای ورودی خروجی کردن پین ها در اردینو نیاز به نوشتن A نیست صرفا شماره Arduino Pin نوشته شود، بدون حرف A .

درایورTNM5000

1- نصب فایل  setup 2- نصب فایل Update . کافیست روی فایل کلیک کنید.. ادرس محلی که TNM را نصب کرده اید بنویسد.. برای دانلود این فایل ها روی لینک زیر کلیک کنید. دانلود ها 3- اگر در موقع اجرای برنامه خطا داده شد: ـ پروگرامر به کانکتور USBکامپیوتر وصل باشد. ـ درایورھای USB مادربرد نصب باشد. ـ در بیوس کامپیوتر پورت USB فعال باشد. ـ کابل USBسالم باشد و تنھا از کابل ارائه شده با دستگاه جھت اتصال به کامپیوتر استفاده شود . ـ یو اس بی را خارج کنید و سپس از منوی Start/Programs/TNMبرنامه ReinstallDriverرا اجرا کنید و…

تنظیمات فیوزبیت در TNM5000

    ATtiny13A: نیاز به فعال کردن بیت تقسیم کننده بر 8 نیست…چون زمان سنجی توابع اردینو بهم میخورد.البته من روی کلاک 9.6 مگاهرتز داخلی امتحان کردم. در حالت فعال بودن رجیستر  CKDIV8 و فرکانس 9.6 مگاهرتز داخلی؛ هر یک ثانیه delay(1000)  هشت ثانیه در عمل طول می کشد.یعنی اگر برنامه چشمک زن با تاخیر یک ثانیه نوشته باشید موقع تست عملی ال ای دی ها هر 8 ثانیه چشمک می زنند. SUT=10: فرکانس 9.6 مگاهرتز داخلی با زمان استارت آپ 14 سیکل +64 میلی ثانیه محاسبه انلاین فیوز بیت ها: http://eleccelerator.com/fusecalc/fusecalc.php?chip=attiny13a&LOW=F1&HIGH=99&LOCKBIT=FF