دیبانس دکمه بدون delay

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

دیبانس دکمه با millis: وسایل و آماده‌سازی

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

مراحل انجام آزمایش

زمان آخرین تغییر را با millis نگه دارید و پس از ۳۰ میلی‌ثانیه پایداری، وضعیت را قطعی کنید. این روش برخلاف delay اجرای بقیه کارها را متوقف نمی‌کند.

  1. ابتدا نقشه اتصالات را روی کاغذ بکشید و اتصال زمین را مشخص کنید.
  2. اتصالات را با تغذیه قطع‌شده ببندید و یک بار کنترل کنید.
  3. برنامه یا مقدار ورودی را مرحله‌ای آزمایش کنید و نتیجه را در مانیتور سریال یا خروجی مدار ببینید.
  4. تنها پس از کار کردن نمونه ساده، بخش بعدی را اضافه کنید.

عیب‌یابی و نکته عملی

هر بار فشار را تنها هنگام گذار از رها به فشرده بشمارید؛ شمارش مداوم وضعیت LOW خطاست.

تمرین: دو حالت ورودی یا دو مقدار زمانی متفاوت را امتحان کنید و مشاهده خود را یادداشت کنید. اگر نتیجه با انتظار فرق دارد، ابتدا تغذیه، زمین مشترک و شماره پایه را دوباره بررسی کنید.

درس‌های مرتبط

ادامه مطلب

کلید و پول‌آپ داخلی آردوینو

برای خواندن مطمئن کلید، پایه ۲ را به یک سر کلید و سر دیگر را به GND وصل کنید. مقاومت پول‌آپ داخلی در حالت رها، ورودی را HIGH نگه می‌دارد و هنگام فشار LOW می‌خوانید.

آموزش INPUT_PULLUP آردوینو: وسایل و آماده‌سازی

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

مراحل انجام آزمایش

پایه را INPUT_PULLUP تعریف کنید؛ هر بار مقدار LOW شد، رویداد فشار را ثبت کنید. برای حذف لرزش مکانیکی، تغییر پایدار پس از حدود ۳۰ میلی‌ثانیه را بپذیرید.

  1. ابتدا نقشه اتصالات را روی کاغذ بکشید و اتصال زمین را مشخص کنید.
  2. اتصالات را با تغذیه قطع‌شده ببندید و یک بار کنترل کنید.
  3. برنامه یا مقدار ورودی را مرحله‌ای آزمایش کنید و نتیجه را در مانیتور سریال یا خروجی مدار ببینید.
  4. تنها پس از کار کردن نمونه ساده، بخش بعدی را اضافه کنید.

عیب‌یابی و نکته عملی

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

تمرین: دو حالت ورودی یا دو مقدار زمانی متفاوت را امتحان کنید و مشاهده خود را یادداشت کنید. اگر نتیجه با انتظار فرق دارد، ابتدا تغذیه، زمین مشترک و شماره پایه را دوباره بررسی کنید.

درس‌های مرتبط

ادامه مطلب

آموزش millis در آردوینو؛ چشمک‌زن بدون delay

آموزش millis در آردوینو
تصویر آموزشی از ویکی‌مدیا کامنز؛ برای مجوز و نام پدیدآورنده، صفحهٔ پرونده را ببینید.

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

millis چگونه کار می‌کند؟

تابع millis() زمان سپری‌شده از شروع اجرای برنامه را برحسب میلی‌ثانیه برمی‌گرداند. در بردهای رایج Arduino، این مقدار در نوع unsigned long نگهداری می‌شود. به‌جای انتظار ثابت، اختلاف زمان فعلی و زمان آخرین تغییر را با فاصلهٔ دلخواه مقایسه می‌کنیم. این روش با سرریز شمارنده نیز به شکل معمول درست کار می‌کند، به شرط آنکه از تفریق unsigned و بازهٔ مناسب استفاده کنیم.

کد چشمک‌زن بدون delay

const int ledPin = LED_BUILTIN;
const unsigned long interval = 500;
unsigned long previousMillis = 0;
bool ledState = false;

void setup() {
  pinMode(ledPin, OUTPUT);
}
void loop() {
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    ledState = !ledState;
    digitalWrite(ledPin, ledState ? HIGH : LOW);
  }
  // کارهای دیگر برنامه اینجا اجرا می‌شوند.
}

LED داخلی تقریباً هر نیم ثانیه تغییر وضعیت می‌دهد؛ بنابراین یک چرخهٔ کامل روشن و خاموش حدود یک ثانیه طول می‌کشد. previousMillis آخرین لحظهٔ تغییر را نگه می‌دارد. اگر بار پردازشی حلقه سنگین باشد، زمان‌بندی دقت سخت‌افزاری نخواهد داشت. برای کارهای حساس به زمان، روش مناسب همان کاربرد را انتخاب کنید.

تفاوت با delay و خطاهای رایج

اگر در همین حلقه delay(500) بنویسیم، خواندن دکمه یا حسگر در این فاصله انجام نمی‌شود. نوع متغیر زمان را unsigned long بگذارید؛ int برای زمان سپری‌شده مناسب نیست. همچنین شرط را به صورت اختلاف زمان بنویسید، نه مقایسهٔ مستقیم زمان فعلی با جمع دو زمان. برای تمرین، دکمهٔ فشاری را بخوانید و وضعیت دکمه را در هر دور حلقه بررسی کنید.

تمرین

فاصله را به ۲۵۰ میلی‌ثانیه تغییر دهید. سپس مقدار حسگر نور LDR را با مانیتور سریال نمایش دهید، در حالی که LED چشمک می‌زند. برای آشنایی با روش رسمی، نمونهٔ Blink Without Delay در مستندات آردوینو را ببینید.

ادامه مطلب

آموزش سنسور نور LDR با آردوینو؛ مدار و کد

آموزش سنسور نور LDR با آردوینو
تصویر آموزشی از ویکی‌مدیا کامنز؛ برای مجوز و نام پدیدآورنده، صفحهٔ پرونده را ببینید.

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

قطعات و سیم‌کشی سنسور نور LDR

به آردوینو Uno R3 یا برد مشابه، LDR، مقاومت ۱۰ کیلو‌اهم، بردبورد و سیم رابط نیاز دارید. پیش از سیم‌کشی برق برد را قطع کنید. یک پایهٔ LDR را به 5V و پایهٔ دیگرش را به A0 وصل کنید. مقاومت ۱۰ کیلو‌اهم را میان A0 و GND قرار دهید. A0 نقطهٔ مشترک LDR و مقاومت است. روی بردهای ۳٫۳ ولتی از ولتاژ تغذیهٔ متناسب با همان برد استفاده کنید و به حداکثر ولتاژ مجاز ورودی توجه کنید.

کد خواندن شدت نور

const int sensorPin = A0;
void setup() {
  Serial.begin(9600);
}
void loop() {
  int lightValue = analogRead(sensorPin);
  Serial.println(lightValue);
  delay(250);
}

کد را بارگذاری کنید و مانیتور سریال را روی 9600 baud باز کنید. دست خود را روی LDR بگیرید و سپس چراغی را به آن نزدیک کنید؛ مقدار باید تغییر کند. با سیم‌کشی بالا، روشن‌تر شدن معمولاً ولتاژ A0 و عدد خوانده‌شده را افزایش می‌دهد. بازهٔ عددی وابسته به برد و شرایط نور است. اگر ترتیب LDR و مقاومت را عوض کنید، جهت تغییر عدد نیز برعکس می‌شود.

چرا مقاومت ۱۰ کیلو‌اهم لازم است؟

بدون مقاومت ثابت، ورودی آنالوگ ولتاژ تعریف‌شده‌ای از تغییر مقاومت LDR به دست نمی‌آورد. مقدار ۱۰ کیلو‌اهم نقطهٔ شروع مناسبی برای بسیاری از LDRهای آموزشی است، اما حساسیت مدار به مشخصات قطعه و نور محیط بستگی دارد. برای جزئیات اتصال، آموزش بردبورد و خواندن مقدار مقاومت را مرور کنید.

عیب‌یابی و تمرین

اگر مقدار ثابت است، بررسی کنید A0 واقعاً به نقطهٔ مشترک دو قطعه وصل شده باشد و دو سر قطعات در یک ردیف اشتباه بردبورد کوتاه نشده باشند. اگر عددها نویز دارند، اتصالات را محکم کنید و چند خواندن را میانگین بگیرید. چند مقدار در تاریکی و روشنایی یادداشت کنید و آستانه‌ای میان آن‌ها انتخاب کنید. برای کار با داده‌های نمایش داده‌شده آموزش مانیتور سریال و برای کنترل LED با خروجی PWM درس تنظیم روشنایی LED را ببینید.

منبع تکمیلی: مرجع analogRead آردوینو.

ادامه مطلب

آموزش مانیتور سریال آردوینو؛ دیدن داده‌ها و عیب‌یابی

آموزش مانیتور سریال آردوینو
تصویر آموزشی از ویکی‌مدیا کامنز؛ برای مجوز و نام پدیدآورنده، صفحهٔ پرونده را ببینید.

در این آموزش مانیتور سریال آردوینو یاد می‌گیریم پیام‌های برنامه و مقدار ورودی آنالوگ را روی رایانه ببینیم. این ابزار برای فهمیدن وضعیت مدار و پیدا کردن خطا بسیار کاربردی است. برای انجام تمرین به برد آردوینو، کابل USB و نرم‌افزار Arduino IDE نیاز دارید؛ قطعهٔ اضافی لازم نیست.

مانیتور سریال آردوینو چیست؟

مانیتور سریال پنجره‌ای در محیط برنامه‌نویسی است که متن فرستاده‌شده از برد را نشان می‌دهد. در این تمرین مقدار پایهٔ A0 را می‌خوانیم. اگر A0 به چیزی وصل نباشد، مقدار آن ممکن است شناور و متغیر باشد؛ برای مشاهدهٔ معنادار، یک پتانسیومتر را مانند درس خواندن ورودی آنالوگ به A0 وصل کنید. اتصال پایه‌های کناری پتانسیومتر به 5V و GND و پایهٔ میانی به A0 برای بردهای ۵ ولتی مانند Uno R3 مناسب است؛ مشخصات برد خود را بررسی کنید.

کد نمایش مقدار ورودی آنالوگ

void setup() {
  Serial.begin(9600);
}
void loop() {
  int value = analogRead(A0);
  Serial.println(value);
  delay(200);
}

برنامه را روی برد بارگذاری کنید، سپس Serial Monitor را باز کنید و سرعت پنجره را روی 9600 baud بگذارید. عددها با چرخاندن پتانسیومتر تغییر می‌کنند. Serial.begin(9600) ارتباط را آغاز می‌کند و Serial.println مقدار را همراه با رفتن به خط بعد می‌فرستد. در Uno R3 مقدار خوانده‌شده معمولاً در بازهٔ صفر تا ۱۰۲۳ است؛ دقت ADC در بردهای دیگر می‌تواند متفاوت باشد.

اگر چیزی دیده نمی‌شود

ابتدا برد و درگاه درست را در IDE انتخاب کنید. سرعت مانیتور باید با کد یکی باشد. مطمئن شوید کد بدون خطا بارگذاری شده و کابل USB انتقال داده را پشتیبانی می‌کند. اگر عددها بی‌قاعده تغییر می‌کنند، اتصال A0 و زمین مشترک را بررسی کنید. از اتصال مستقیم ولتاژ بالاتر از محدودهٔ مجاز ورودی برد خودداری کنید.

تمرین و مسیر بعدی

مقدار ورودی را هر ۲۰۰ میلی‌ثانیه چاپ کنید و سپس فاصله را به ۱۰۰۰ تغییر دهید. تفاوت سرعت نمایش را ببینید. پس از این تمرین، در درس حسگر نور LDR همین پنجره را برای مشاهدهٔ نور به کار می‌بریم. برای نمایش داده بدون توقف برنامه، درس millis را بخوانید.

منبع تکمیلی: نمونه‌های ارتباط سریال آردوینو.

ادامه مطلب

کنترل روشنایی LED با PWM آردوینو و پتانسیومتر

مدار نمونه برای تغییر تدریجی روشنایی LED با آردوینو
مدار نمونه برای تغییر تدریجی روشنایی LED با آردوینو

کنترل روشنایی LED با PWM تمرینی است که ورودی آنالوگ و خروجی دیجیتال را به هم وصل می‌کند. در Arduino Uno کلاسیک، PWM با روشن و خاموش کردن سریع خروجی، نسبت زمان روشن بودن را تغییر می‌دهد؛ ولتاژ ثابت آنالوگ واقعی از پایه تولید نمی‌شود.

سیم‌کشی مدار PWM

پتانسیومتر ۱۰ کیلو‌اهم را طبق درس خواندن پتانسیومتر به ۵V، GND و A0 وصل کنید. پایهٔ دیجیتال ۹ را از راه مقاومت سری ۳۳۰ اهم به پایهٔ بلند LED وصل کنید و پایهٔ کوتاه LED را به GND ببرید. برای LEDهای مختلف مقدار مناسب مقاومت ممکن است فرق کند؛ مقدار جریان را از مشخصات قطعه و محدودیت پایهٔ برد بررسی کنید. LED را مستقیم و بدون مقاومت به پایه وصل نکنید. سیم‌ها را با تغذیهٔ قطع جابه‌جا کنید.

کد کنترل روشنایی LED با PWM

const byte potPin = A0;
const byte ledPin = 9;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  int reading = analogRead(potPin);
  int duty = map(reading, 0, 1023, 0, 255);
  analogWrite(ledPin, duty);
  delay(10);
}

در Uno کلاسیک، analogRead معمولاً عدد ۰ تا ۱۰۲۳ برمی‌گرداند و analogWrite روی پایهٔ PWM مقدار ۰ تا ۲۵۵ می‌گیرد. تابع map این دو بازه را به هم تبدیل می‌کند. مقدار ۰ تقریباً همیشه خاموش و ۲۵۵ تقریباً همیشه روشن است؛ مقدارهای میانی نسبت زمان روشن بودن را تغییر می‌دهند. در بردهای دیگر، وضوح ADC، پایه‌های دارای PWM و رفتار analogWrite می‌تواند متفاوت باشد.

اگر روشنایی تغییر نکرد

ابتدا مطمئن شوید LED با جهت درست و مقاومت سری وصل شده است. سپس بررسی کنید واقعاً پایهٔ ۹ را استفاده می‌کنید و در کد شمارهٔ همان پایه آمده است. در Uno، پایه‌های PWM با علامت ~ مشخص می‌شوند؛ هر پایهٔ دیجیتال قابلیت PWM ندارد. اگر LED فقط روشن یا خاموش می‌شود، عدد خوانده‌شده از A0 را با Serial Monitor در تمرین قبلی کنترل کنید. برای بازگشت به اتصال پایه‌ای قطعات، مقدار مقاومت و اندازه‌گیری با مولتی‌متر را مرور کنید. مثال رسمی Fading آردوینو روش PWM را نشان می‌دهد.

تصویر: صفحهٔ پدیدآورنده و مجوز در Wikimedia Commons.

ادامه مطلب

خواندن پتانسیومتر با آردوینو و analogRead

نقشهٔ اتصال پتانسیومتر به ورودی آنالوگ آردوینو
نقشهٔ اتصال پتانسیومتر به ورودی آنالوگ آردوینو

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

سیم‌کشی پتانسیومتر به A0

از یک پتانسیومتر خطی حدود ۱۰ کیلو‌اهم و برد Arduino Uno استفاده کنید. یکی از پایه‌های کناری را به ۵V، پایهٔ کناری دیگر را به GND و پایهٔ وسط را به A0 وصل کنید. اگر جهت پایه‌های کناری را جابه‌جا کنید، فقط جهت افزایش عدد هنگام چرخاندن برعکس می‌شود. اتصال ولتاژ بالاتر از محدودهٔ مجاز برد به A0 ممکن است به آن آسیب بزند. پیش از روشن کردن، مسیرها را مطابق آموزش بردبورد بررسی کنید.

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

const byte potPin = A0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  int value = analogRead(potPin);
  Serial.println(value);
  delay(100);
}

برنامه را بارگذاری و Serial Monitor را روی ۹۶۰۰ baud تنظیم کنید. در Uno کلاسیک با مبدل آنالوگ به دیجیتال ۱۰ بیتی، مقدار معمولاً از نزدیک ۰ تا ۱۰۲۳ تغییر می‌کند. نزدیک ۰ یعنی ولتاژ نزدیک زمین و نزدیک ۱۰۲۳ یعنی ولتاژ نزدیک مرجع پیش‌فرض، که در Uno معمولاً ولتاژ تغذیهٔ برد است. این عدد اندازه‌گیری دقیق ولتاژ نیست مگر مرجع واقعی و خطاها را هم حساب کنید؛ برای تخمین ولتاژ می‌توان value×5.0÷1023 را در تغذیهٔ واقعاً ۵ ولتی به کار برد.

رفع خطا و تمرین بعدی

اگر عدد ثابت مانده، اتصال پایهٔ وسط به A0 و مشترک بودن زمین را بررسی کنید. اگر عدد بی‌دلیل می‌پرد، اتصال شل یا ورودی شناور ممکن است علت باشد. تفاوت این ورودی را با خواندن دکمهٔ دیجیتال مقایسه کنید. سپس مقدار پتانسیومتر را در درس کنترل روشنایی LED با PWM به خروجی تبدیل کنید. مستندات رسمی analogRead مشخصات بردهای دیگر را نیز توضیح می‌دهد.

تصویر: صفحهٔ پدیدآورنده و مجوز در Wikimedia Commons.

ادامه مطلب

آموزش کار با مولتی‌متر: ولتاژ، مقاومت و پیوستگی

مولتی‌متر دیجیتال برای اندازه‌گیری ولتاژ و مقاومت
مولتی‌متر دیجیتال برای اندازه‌گیری ولتاژ و مقاومت

آموزش کار با مولتی‌متر کمک می‌کند ایراد مدار را به‌جای حدس زدن، با اندازه‌گیری پیدا کنید. این تمرین برای مدارهای کم‌ولتاژ مانند باتری و آردوینو است؛ اندازه‌گیری برق شهر به آموزش و تجهیزات مناسب نیاز دارد.

شناخت ورودی‌ها و انتخاب حالت

پراب سیاه معمولاً در COM قرار می‌گیرد و پراب قرمز برای اندازه‌گیری ولتاژ، مقاومت و پیوستگی در درگاه VΩ. علامت V با خط صاف برای ولتاژ مستقیم و Ω برای مقاومت است. جای درگاه و محدوده را طبق نوشتهٔ روی دستگاه خودتان انتخاب کنید. برای اندازه‌گیری جریان، روش اتصال و درگاه متفاوت است؛ قرار دادن پرابِ درگاه جریان به‌طور موازی روی منبع می‌تواند اتصال کوتاه ایجاد کند. پیش از هر اندازه‌گیری، جای پراب را دوباره ببینید.

آموزش کار با مولتی‌متر برای ولتاژ باتری

دستگاه را روی ولتاژ مستقیم با محدودهٔ بالاتر از مقدار مورد انتظار تنظیم کنید یا در دستگاه خودکار، DC V را انتخاب کنید. پراب سیاه را به قطب منفی و قرمز را به قطب مثبت باتری بزنید. عدد مثبت، ولتاژ بین دو نقطه را نشان می‌دهد؛ علامت منفی معمولاً یعنی جای پراب‌ها برعکس است. برای ولتاژ مدار، مولتی‌متر را موازی با دو نقطهٔ مورد نظر وصل کنید. از تماس هم‌زمان نوک پراب‌ها با دو نقطه‌ای که نباید به هم وصل شوند جلوگیری کنید.

اندازه‌گیری مقاومت و تست پیوستگی

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

تمرین و عیب‌یابی

ابتدا ولتاژ باتری یا خروجی ۵ ولت یک منبع مناسب را اندازه بگیرید. سپس با تغذیهٔ قطع، مقاومت ۳۳۰ اهم را بخوانید و عدد را با کد رنگی مقایسه کنید. اگر نمایشگر OL نشان داد، ممکن است محدوده کم باشد، پراب اتصال نداشته باشد یا مدار باز باشد. برای تشخیص مقدار اسمی، درس رنگ مقاومت را بخوانید. راهنمای تکمیلی SparkFun نیز مثال تصویری دارد.

تصویر: صفحهٔ پدیدآورنده و مجوز در Wikimedia Commons.

ادامه مطلب

آموزش خواندن رنگ مقاومت با مثال عملی

آردوینو و بردبورد با مقاومت برای تمرین خواندن مقدار
آردوینو و بردبورد با مقاومت برای تمرین خواندن مقدار

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

مقاومت در مدار چه می‌کند؟

مقاومت جریان را محدود می‌کند و همراه با قطعات دیگر می‌تواند تقسیم ولتاژ بسازد. واحد آن اهم با نماد Ω است. برای مثال، در یک مدار LED با تغذیهٔ ۵ ولت، مقدار ۳۳۰ اهم جریان را در محدوده‌ای مناسب برای بسیاری از LEDهای معمولی نگه می‌دارد؛ مقدار دقیق به افت ولتاژ و مشخصات LED بستگی دارد. برای آشنایی با بستن مدار، درس بردبورد را ببینید.

آموزش خواندن رنگ مقاومت چهارنواره

نوار تلرانس، که معمولاً طلایی یا نقره‌ای است، اغلب کمی از سه نوار دیگر فاصله دارد؛ آن را سمت راست بگیرید. نوار اول و دوم دو رقم، نوار سوم ضریب و نوار چهارم تلرانس را نشان می‌دهد. مقدارها به ترتیب سیاه ۰، قهوه‌ای ۱، قرمز ۲، نارنجی ۳، زرد ۴، سبز ۵، آبی ۶، بنفش ۷، خاکستری ۸ و سفید ۹ هستند. در نوار ضریب، هر رنگ به معنی ۱۰ به توان همان رقم است. طلایی برای ضریب ۰٫۱ و نقره‌ای برای ضریب ۰٫۰۱ نیز به کار می‌روند.

مثال: ۳۳۰ اهم چند رنگ است؟

نارنجی (۳)، نارنجی (۳)، قهوه‌ای (×۱۰)، طلایی (±۵٪) یعنی ۳۳×۱۰=۳۳۰ اهم با تلرانس پنج درصد. بنابراین مقدار واقعیِ یک قطعهٔ سالم با این مشخصات می‌تواند حدود ۳۱۳٫۵ تا ۳۴۶٫۵ اهم باشد. مثال دوم: قهوه‌ای، سیاه، قرمز، طلایی برابر ۱۰×۱۰۰=۱۰۰۰ اهم یا ۱ کیلو‌اهم است.

اندازه‌گیری و خطاهای رایج

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

تمرین و ادامهٔ مسیر

سه مقاومت بردارید، مقدار هرکدام را از روی رنگ‌ها حدس بزنید و بعد با مولتی‌متر بررسی کنید. برای استفاده از آن‌ها در مدار عملی، درس دکمهٔ فشاری آردوینو را دنبال کنید. راهنمای مقدماتی اندازه‌گیری را نیز در آموزش مولتی‌متر SparkFun ببینید.

تصویر: Wikimedia Commons؛ مشخصات پدیدآورنده و مجوز در صفحهٔ فایل.

ادامه مطلب

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

مدار نمونه آردوینو، دکمه فشاری و LED روی بردبورد
مدار نمونه آردوینو، دکمه فشاری و LED روی بردبورد

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

قطعات و سیم‌کشی اتصال دکمه فشاری به آردوینو

یک برد سازگار با Arduino Uno، دکمهٔ فشاری، بردبورد و سیم جامپر لازم دارید. یک پایهٔ دکمه را به D2 و پایهٔ مقابل همان مسیر کلید را به GND وصل کنید. دکمه‌های چهارپایه معمولاً دو پایهٔ هر طرفشان از قبل به هم متصل است؛ برای تشخیص جفت‌ها، با تغذیهٔ قطع از مولتی‌متر روی حالت پیوستگی کمک بگیرید. قرار دادن دکمه روی شیار میانی بردبورد، احتمال اتصال اشتباه دو پایه را کمتر می‌کند. برای شناخت ردیف‌ها، آموزش بردبورد را مرور کنید.

چرا INPUT_PULLUP؟

اگر ورودی دیجیتال را بدون اتصال پایدار به HIGH یا LOW رها کنید، مقدار خوانده‌شده ممکن است با نویز تغییر کند. فرمان INPUT_PULLUP مقاومت پول‌آپ داخلی را فعال می‌کند: دکمهٔ رهاشده HIGH و دکمهٔ فشرده LOW خوانده می‌شود. به همین دلیل در شرط برنامه LOW را به معنی فشار دادن می‌گیریم. مقدار مقاومت داخلی دقیقاً ثابت نیست و برای محدودکردن جریان LED جایگزین مقاومت سری نمی‌شود.

کد کامل برای Arduino Uno

const byte buttonPin = 2;
const byte ledPin = LED_BUILTIN;

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  bool pressed = digitalRead(buttonPin) == LOW;
  digitalWrite(ledPin, pressed ? HIGH : LOW);
}

در Arduino IDE برد و درگاه مناسب را انتخاب کنید و برنامه را بارگذاری کنید. با فشار دادن دکمه، LED داخلی روی برد روشن می‌شود. اگر از LED خارجی استفاده می‌کنید، آن را با مقاومت سری مناسب ببندید؛ برای مرور انتخاب مقاومت، درس خواندن رنگ مقاومت را بخوانید.

عیب‌یابی و تمرین بعدی

اگر LED همیشه روشن است، احتمالاً پایه‌های دکمه را روی جفتی بسته‌اید که از قبل متصل‌اند یا D2 به زمین اتصال دائمی دارد. اگر واکنشی نمی‌بینید، شمارهٔ پایه، اتصال GND، انتخاب برد و موفقیت بارگذاری کد را بررسی کنید. کلید مکانیکی هنگام فشردن ممکن است برای چند میلی‌ثانیه چند بار قطع و وصل شود؛ برای یک‌بار شمردن هر فشار باید در مرحلهٔ بعدی «دیبانس» را با زمان‌سنجی یا سخت‌افزار اضافه کنید. توضیح رسمی مثال INPUT_PULLUP آردوینو هم مرجع خوبی است.

تصویر: Wikimedia Commons؛ مشخصات پدیدآورنده و مجوز در صفحهٔ فایل.

ادامه مطلب