در بسیاری از موارد سوئیچ ها فقط سوئیچ هستند. آنها مستقیماً جریان برق را به یک دستگاه، چراغ قوه یا لامپ ولتاژ اصلی کنترل می کنند. نمونه ای از این سوئیچ روی دیوار اتاق نشیمن شماست. در بسیاری از موارد امروزه سوئیچ ها حسگرهای دیجیتالی هستند، به این معنی که به جای کنترل مستقیم یک دستگاه پرمصرف، سیگنال منطقی (مقدار کم) را به یک میکروکنترلر (مثلاً آردوینو) کنترل می کنند و به میکروکنترلر می گویند که کاربر کدام حالت را ترجیح می دهد. بالا یا پایین، روشن یا خاموش، 1 یا 0 (همه آنها یکسان هستند).
ما اغلب به سوئیچ ها به عنوان حسگر فکر نمی کنیم، عمدتاً به این دلیل که آنها فناوری قدیمی تری هستند که ما کاملاً با آن آشنا هستیم. با این وجود، یک سوئیچ همیشه می تواند به عنوان یک سنسور دیجیتال استفاده شود و یک بیت از اطلاعات را انتقال دهد، که وضعیت سوئیچ خاموش یا روشن است (که می تواند به عنوان 0 و 1 نیز تعریف شود).
این مدخل ویکی روی سوئیچهای لحظهای تمرکز دارد، اما توجه به این نکته مهم است که بسیاری از انواع دیگر سوئیچها، مانند سوئیچهای ضامن یا سوئیچهای کشویی، میتوانند دقیقاً به همان شیوه سیمکشی شوند و مانند سنسورهای دیجیتال، با همان کدهایی که در زیر استفاده میشوند، استفاده شوند. .
نمادهای شماتیک برای سوئیچ ها می توانند تا حدودی متفاوت باشند. نماد S2 بیشتر توصیف کننده یک سوئیچ لحظه ای نصب شده روی تخته نان است، اما ایده اصلی دقیقاً یکسان است، یک اتصال با فشار دادن سوئیچ ایجاد می شود.
در استفاده از سوئیچ های لحظه ای باید چند نکته گیج کننده را در نظر گرفت. یک جنبه این است که سوئیچ دارای چهار سیم است اما در واقع فقط دو سیم در حال تعویض هستند (اگر نماد شماتیک را بررسی کنید). عمل سوئیچینگ بین لیدهایی که در کوتاهترین فاصله قرار دارند اتفاق می افتد. دو سیم دیگر به صورت داخلی در امتداد سمت "طولانی" سوئیچ متصل می شوند. نمودار میانی بالا این ایده را نشان می دهد. اگر فراموش کردید، می توانید به راحتی ثابت کنید کدام لیدها کوتاه شده اند، اما با استفاده از مولیت متر خود در تنظیم پیوستگی (معروف به "تنظیم بوق").
چرا به یک مقاومت کششی یا کششی نیاز دارم؟
دانشآموزان اغلب در درک اینکه چرا به یک مقاومت کششی یا کششی روی یک سوئیچ نیاز داریم، مشکل دارند. یکی از راههای توضیح این موضوع، توصیف ماهیت پین آردوینو زمانی است که روی INPUT تنظیم شده است. پین به عنوان "وضعیت امپدانس بالا" توصیف می شود. این بدان معنی است که برای تغییر پین از HIGH به LOW یا برعکس، به جریان بسیار کمی نیاز دارد. بدون pullup یا pulldown، پین ورودی را می توان به عنوان "در باد بال زدن" در نظر گرفت و هر مقدار کمی شارژ می تواند وضعیت پین را برگرداند. این بار می تواند از هر میدان خازنی باشد (همه هادی ها تا حدی به عنوان خازن عمل می کنند). اغلب یک پین ورودی که "شناور" باقی می ماند به صورت خازنی به پین های نزدیک متصل می شود و آنها را دنبال می کند.
هدف از pullup یا pulldown این است که یک پین را به یک حالت شناخته شده هدایت کند تا زمانی که سوئیچ فعال شود یا یک ورودی حس شود. مقاومت pullup یا pulldown، این «بال زدن در باد» را از بین میبرد و به ورودی رفتاری شناخته شده میدهد.
روش های مختلف سیم کشی سوئیچ
سه راه مختلف برای سیم کشی یک سوئیچ (روی پین آردوینو) با یک مقاومت کششی یا کششی وجود دارد.
- یک سوئیچ ممکن است با یک مقاومت کششی خارجی سیم کشی شود
- یک سوئیچ ممکن است با یک مقاومت کششی خارجی سیم کشی شود
- یک سوئیچ ممکن است از مقاومت های کششی داخلی در تراشه Atmega استفاده کند
/* Button Test Sketch (LED optional) Turns on and off a light emitting diode(LED) connected to digital pin 13, when pressing a pushbutton attached to pin 2. The circuit: * LED attached from pin 13 to ground * momentary switch attached to pin 2 from +5V * 10K resistor attached as pull-down resistor */ //constants const int buttonPin = 2; // the pushbutton pin const int ledPin = 13; // the LED pin // variables int buttonState = 0; // variable for reading the pushbutton status void setup() { pinMode(ledPin, OUTPUT); // initialize the LED pin as an output: pinMode(buttonPin, INPUT); // initialize buttonPin as an input // not really required (pins default to INPUT) Serial.begin(9600); // initialize Serial for debugging feedback } void loop() { buttonState = digitalRead(buttonPin); // read the state of buttonPin Serial.println(buttonState); if (buttonState == HIGH) // check if the pushbutton is pressed. { digitalWrite(ledPin, HIGH); // turn LED on: (send +5V to pin) Serial.println("Button is ON "); // print to serial monitor } else { digitalWrite(ledPin, LOW); // turn LED off: (send 0V to pin) Serial.println("Button is OFF"); // print text to serial monitor } delay(200); // delay so that print to serial monitor is not too fast }
کلید لحظه ای سیم کشی شده با مقاومت کششی خارجی
من در حال حاضر عکسی از این تنظیمات ندارم، اما ممکن است بتوانید از روی شماتیک حدس بزنید که می توانید سیم ها را روی ریل های برق تغییر دهید، تا GND معکوس آنها +5V و 5V تبدیل به GND شود. همه چیزهای دیگر همان می ماند.
![سوئیچ لحظه ای به عنوان مدار سنسور دیجیتال](https://duino4projects.com/wp-content/uploads/2015/01/Momentary-Switch-as-Digital-Sensor-circuit.png)
/* Button Test Sketch with external pullup resistor (LED optional) Turns on and off a light emitting diode(LED) connected to digital pin 13, when pressing a pushbutton attached to pin 2. The circuit: * LED attached from pin 13 to ground * momentary switch attached to Arduino pin 2 * other side of momentary switch attached to GND * 10K resistor attached as pullup resistor to 5V */ //constants const int buttonPin = 2; // the pushbutton pin const int ledPin = 13; // the LED pin // variables int buttonState = 0; // variable for reading the pushbutton status void setup() { pinMode(ledPin, OUTPUT); // initialize the LED pin as an output: pinMode(buttonPin, INPUT); // initialize buttonPin as an input // not really required (pins default to INPUT) Serial.begin(9600); // initialize Serial for debugging feedback } void loop() { buttonState = digitalRead(buttonPin); // read the state of buttonPin Serial.println(buttonState); if (buttonState == LOW) // buttonState is LOW when pressed. { digitalWrite(ledPin, HIGH); // turn LED on: (send +5V to pin) Serial.println("Button is ON "); // print to serial monitor } else { digitalWrite(ledPin, LOW); // turn LED off: (send 0V to pin) Serial.println("Button is OFF"); // print text to serial monitor } delay(200); // delay so that print to serial monitor is not too fast }
کلید لحظه ای سیم کشی شده با مقاومت کششی داخلی
هنگامی که طرح بالا کار کرد، می توانید مقاومت کششی را حذف کنید. ما از مقاومت کششی داخلی تراشه Atmega (Arduino) استفاده خواهیم کرد. این کار سیم کشی سوئیچ را کمی ساده می کند. تنها جنبه منفی این ترتیب این است که ممکن است برای مبتدیان فکر کردن در مورد LOW به عنوان حالت فعال (فشرده) نسبت به "HIGH" کمی دشوارتر باشد.
برای جزئیات بیشتر: سوئیچ لحظه ای به عنوان سنسور دیجیتال