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

Category: آردوینو

آردوینو

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

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

  • logRt1 = log(Rt1);

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

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

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

  • =LOG(J4; 2.718281828459)

ترمیستور

ترمیستور با علامت ۱۰۰D-9  یعنی مقاومت ۱۰۰ اهم در دمای ۲۵ درجه و قطر ۹ میلی متر.حداکثر جریان دهی ۰.۸ آمپر می باشد.

ترمیستور با علامت ۵۰۲D-5 یعنی مقاومت ۵ کیلو اهم در دمای ۲۵ درجه و قطر۵ میلی متر. حداکثر جریان دهی ۱۰ میلی آمپر می باشد.

ترمیستور با علامت ۱۰۲D-5 یعنی مقاومت ۱ کیلو اهم در دمای ۲۵ درجه و قطر۵ میلی متر. حداکثر جریان دهی ۵۵ میلی آمپر می باشد.

 

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

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

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

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

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

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

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

متغییرها در آردینو

uint8_t         متغیر ۸ بیتی با بازه مثبت

int8_t          متغیر ۸ بیتی با بازه مثبت و منفی

unit16_t      متغیر ۱۶ بیتی با بازه مثبت

int16_t        متغیر ۱۶ بیتی با بازه مثبت و منفی

هر آنچه در تعریف متغیر باید بدانیم

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

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

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

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

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

مقدار = مقدار نمونه * ۱۰۲۴ / ولتاژ مرجع (+۵V)

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

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

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

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

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

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