Вхід до системи

Відмінності між версіями «DigitalRead()»

Матеріал з мікроАмпер
(Створена сторінка: === Оператор If === '''if (умова) та ==, !=, <, > (оператори порівняння)''' '''if''', використовується ра...)
 
Рядок 1: Рядок 1:
=== Оператор If ===
+
=== digitalRead() ===
  
  
'''if (умова) та ==, !=, <, > (оператори порівняння)'''
 
  
'''if''', використовується разом із операторами порівняння, перевіряє, чи виконується істинність умови, наприклад, чи перевищує вхідне значення задане число. Формат оператора '''if''' виглядає так:
+
== Опис ==
  
  
if (someVariable > 50)
+
Зчитує рівень сигналу HIGH чи LOW зі вказаного цифрового виводу.
{
+
// виконувати дії
+
}
+
  
  
  
Програма перевіряє, чи значення someVariable більше, ніж 50, чи ні. Якщо так, то буде виконано певні дії. Іншими словами, якщо запис в круглих дужках є істинним, виконуються оператори всередині фігурних дужок. Якщо ні, програма пропускає цей код.
+
== Синтаксис ==
  
  
  
Дужки після оператора '''if''' можуть бути опущені. У такому разі тільки наступний рядок (позначений крапкою з комою) стає оператором, котрий виконується в операторі '''if'''.
+
digitalRead(pin)
  
  
  
if (x > 120) digitalWrite(LEDpin, HIGH);
+
== Параметри ==
+
if (x > 120)
+
digitalWrite(LEDpin, HIGH);
+
+
if (x > 120){ digitalWrite(LEDpin, HIGH); }
+
+
if (x > 120){
+
digitalWrite(LEDpin1, HIGH);
+
digitalWrite(LEDpin2, HIGH);
+
}                                // все правильно
+
  
  
  
Вирази, котрі вираховуються всередині круглих дужок, можуть складатися з одного чи декількох операторів.
+
pin: номер цифрового виводу, з якого необхідно зчитати значення (int)
  
  
  
''Оператори порівняння''
+
== Значення, що повертаються ==
  
  
x == y (x дорівнює y)
 
  
x != y (x не дорівнює y)
+
HIGH чи LOW
  
x < y (x менше ніж y)
 
  
x > y (x більше ніж y)
 
  
x <= y (x менше або дорівнює y)
+
== Приклад ==
 +
 
 +
 
 +
 
 +
Програма встановлює на виводі 13 такий самий рівень сигналу, як на виводі 7.
 +
 
 +
 
 +
<pre>
 +
int ledPin = 13; // світлодіод під'єднано до цифрового виводу 13
 +
int inPin = 7;  // кнопку під'єднано до цифрового виводу 7
 +
int val = 0;    // змінна для зберігання зчитаного значення
 +
 +
void setup()
 +
{
 +
  pinMode(ledPin, OUTPUT);      // конфігуруємо цифровий вивід 13 як вихід
 +
  pinMode(inPin, INPUT);      // конфігуруємо цифровий вивід 13 як вхід
 +
}
 +
 +
void loop()
 +
{
 +
  val = digitalRead(inPin);  // зчитуємо значення з входу
 +
  digitalWrite(ledPin, val);    // виводимо на світлодіод рівень сигналу на кнопці
 +
}
 +
</pre>
 +
 
  
x >= y (x більше або дорівнює y)
+
== Примітка ==
  
  
 +
Якщо вивід ні до чого не під'єднано, функція digitalRead() зможе повернути випадкову величину, як HIGH, так і LOW.
  
'''Увага!'''
 
  
 +
Виводи, котрі є аналоговими входами, можна також використовувати як цифрові виводи під ім'ям A0, A1 і т.д.
  
Стежте, аби випадково не використати знак простої рівності (наприклад, if (x = 10)). Знак простої рівності - це [[оператор присвоєння]], він встановлює значення х, що дорівнює 10 (заносить значення 10 у змінну х). Замість цього використовуйте знак подвійної рівності (наприклад, if (x == 10)), котрий є оператором порівняння і перевіряє, чи дорівнює х 10 чи ні. Останній з двох виразів буде істинним, тільки коли х дорівнюватиме 10, тоді як попередній вираз істинний завжди.
 
  
 +
== Дивіться також ==
  
  
Це пов'язано з тим, що С обчислює вираз if (x=10) наступним чином: значення 10 присвоюється х (пам'ятаємо, що простий знак рівності - це оператор присвоєння), отже, х тепер дорівнює 10. Далі умовний '''if''' обчислює 10, котре вже дорівнює ІСТИНА, оскільки будь-яке число, що не дорівнює 0, дорівнює ІСТИНА. Тому if (x=10) завжди матиме логічне значення ІСТИНА, котре не є бажаним результатом під час використання оператора '''if'''. Окрім того, змінній х буде присвоєно значення 10, що також не є бажаним.
 
  
 +
[[pinMode()]]
  
 +
[[digitalWrite()]]
  
'''If''' також може бути частиною розгалуженої керівної конструкції з використанням [[if...else]].
+
Інструкція: [[Цифрові виводи]]

Версія за 18:17, 23 червня 2016

digitalRead()

Опис

Зчитує рівень сигналу HIGH чи LOW зі вказаного цифрового виводу.


Синтаксис

digitalRead(pin)


Параметри

pin: номер цифрового виводу, з якого необхідно зчитати значення (int)


Значення, що повертаються

HIGH чи LOW


Приклад

Програма встановлює на виводі 13 такий самий рівень сигналу, як на виводі 7.


int ledPin = 13; // світлодіод під'єднано до цифрового виводу 13
int inPin = 7;   // кнопку під'єднано до цифрового виводу 7
int val = 0;     // змінна для зберігання зчитаного значення
 
void setup()
{
  pinMode(ledPin, OUTPUT);      // конфігуруємо цифровий вивід 13 як вихід
  pinMode(inPin, INPUT);      // конфігуруємо цифровий вивід 13 як вхід
}
 
void loop()
{
  val = digitalRead(inPin);   // зчитуємо значення з входу
  digitalWrite(ledPin, val);    // виводимо на світлодіод рівень сигналу на кнопці
}


Примітка

Якщо вивід ні до чого не під'єднано, функція digitalRead() зможе повернути випадкову величину, як HIGH, так і LOW.


Виводи, котрі є аналоговими входами, можна також використовувати як цифрові виводи під ім'ям A0, A1 і т.д.


Дивіться також

pinMode()

digitalWrite()

Інструкція: Цифрові виводи