Урок. Тактова кнопка.




У цьому уроці ми розглянемо підключення кнопки до контролера Arduino. При натисканні кнопки ми будемо запалювати вбудований світлодіод. Більшість плат Arduino мають вбудований SMT світлодіод, підключений до виходу 13 (pin 13).

Необхідні компоненти
  • контролер Arduino
  • тактова кнопка
  • 10кОм резистор
  • контактна макетна плата
  • з'єднувальні провідники
Підключаємо вихід живлення (5V) і землю (Gnd), червоним і чорним проводом відповідно до макетної платі. 
Зазвичай на макетних платах для живлення і землі використовують крайні ряди контактів, як показано на малюнку. 
Третім синім проводом ми з'єднуємо цифровий пін 2 контролера Arduino до контакту тактовою кнопки.
До цього ж контакту, або до контакту, постійно з'єднаному з нею в 4х штирковому виконанні, підключаємо підтягуючий резистор 10 кОм, який в свою чергу з'єднуємо з землею. Інший вихід кнопки з'єднуємо з живленням 5 В.



Коли тактова кнопка не натуснута, вихід 2 підключений тільки до землі через підтягуючий резистор і на цьому вході буде зчитуватися LOW. А коли кнопка натиснута з'являється контакт між входом 2 і живленням 5В, і зчитуватися буде HIGH.

Можна також підключити кнопку навпаки - через підтягуючий резистор до живлення і через кнопку до землі. Тоді з входу буде зчитуватись HIGH, а при натисканні кнопки LOW.

Якщо вхід залишити не підключеним, то на вході буде зчитуватися HIGH або LOW випадковим чином. Саме тому ми використовуємо підтягуючий резистор, щоб задати певне значення при ненатиснутій кнопці.


// задаємо константи
const int buttonPin = 2;     // номер входу, підключений до кнопки
const int ledPin =  13;      // номер виходу світлодіода
 
// змінні
int buttonState = 0;         // змінна для зберігання стану кнопки
 
void setup() {
  // ініціалізуємо пін, підключений до світлодіоду, як вихід
  pinMode(ledPin, OUTPUT);     
  // ініціалізуємо пін, підключений до кнопки, як вхід
  pinMode(buttonPin, INPUT);   
}
 
void loop(){
  // зчитуємо значення з входу кнопки
  buttonState = digitalRead(buttonPin);
 
  // перевіряємо чи натиснута кнопка
  // якщо натиснута, то buttonState буде HIGH:
  if (buttonState == HIGH) {   
    // включаємо світлодіод   
    digitalWrite(ledPin, HIGH); 
  }
  else {
    // вимикаємо світлодіод
    digitalWrite(ledPin, LOW);
  }
}




Немає коментарів:

Дописати коментар