Π¦ΠΈΠΊΠ» for arduino. Π¦ΠΈΠΊΠ» for Π² Arduino: Π£Ρ€ΠΎΠΊ ΠΏΠΎ использованию ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ†ΠΈΠΊΠ» for Π² Arduino. Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°. КакиС прСимущСства Π΄Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° for Π² Arduino ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. Как ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ошибок ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ†ΠΈΠΊΠ»ΠΎΠΌ for.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ†ΠΈΠΊΠ» for ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½ Π² Arduino

Π¦ΠΈΠΊΠ» for — это ΠΎΠ΄Π½Π° ΠΈΠ· основных конструкций Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Arduino, которая позволяСт ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°. Он особСнно ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ дСйствиС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ прСимущСства использования Ρ†ΠΈΠΊΠ»Π° for Π² Arduino:

  • ΠšΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° — позволяСт Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ строки ΠΎΠ΄Π½ΠΈΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ
  • Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ — ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ памяти — Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ мСньшС мСста Π² памяти, Ρ‡Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
  • Удобство ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами ΠΈ ΠΏΠΈΠ½Π°ΠΌΠΈ Arduino

Бинтаксис Ρ†ΠΈΠΊΠ»Π° for Π² Arduino

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис Ρ†ΠΈΠΊΠ»Π° for выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

for (инициализация; условиС; ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚) {
  // ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ
}

Π“Π΄Π΅:


  • Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ — выполняСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ†ΠΈΠΊΠ»Π°
  • УсловиС — провСряСтся ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ
  • Π˜Π½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ — выполняСтся Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ

НапримСр, простой Ρ†ΠΈΠΊΠ» для мигания свСтодиодом 5 Ρ€Π°Π·:

for (int i = 0; i < 5; i++) {
  digitalWrite(LED_PIN, HIGH);
  delay(500);
  digitalWrite(LED_PIN, LOW); 
  delay(500);
}

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for

Одно ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ»Π° for Π² Arduino - это оптимизация ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с нСсколькими ΠΏΠΈΠ½Π°ΠΌΠΈ. Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ установки Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΈΠ½ΠΎΠ² Π² Ρ€Π΅ΠΆΠΈΠΌ OUTPUT Π±Π΅Π· использования Ρ†ΠΈΠΊΠ»Π°:

pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ этот ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for:

for (int pin = 2; pin <= 6; pin++) {
  pinMode(pin, OUTPUT);
}

Как Π²ΠΈΠ΄ΠΈΠΌ, ΠΊΠΎΠ΄ стал Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π΅Π΅ ΠΈ Π΅Π³ΠΎ Π»Π΅Π³Ρ‡Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ нСобходимости.

Π Π°Π±ΠΎΡ‚Π° с массивами Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ» for

Π¦ΠΈΠΊΠ» for ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ массивов Π² Arduino ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с нСсколькими свСтодиодами, ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ†ΠΈΠΊΠ»Π° for для управлСния массивом свСтодиодов:


int ledPins[] = {2, 3, 4, 5, 6};

void setup() {
  for (int i = 0; i < 5; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
}

void loop() {
  for (int i = 0; i < 5; i++) {
    digitalWrite(ledPins[i], HIGH);
    delay(100);
    digitalWrite(ledPins[i], LOW);
  }
}

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ 5 свСтодиодов, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΊ ΠΏΠΈΠ½Π°ΠΌ 2-6.

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ for Π² Arduino

Иногда Π² Arduino ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ for. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ свСтодиодов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² для управлСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ 3x3:

int rows[] = {2, 3, 4};
int cols[] = {5, 6, 7};

void setup() {
  for (int i = 0; i < 3; i++) {
    pinMode(rows[i], OUTPUT);
    pinMode(cols[i], OUTPUT);
  }
}

void loop() {
  for (int r = 0; r < 3; r++) {
    for (int c = 0; c < 3; c++) {
      digitalWrite(rows[r], HIGH);
      digitalWrite(cols[c], LOW);
      delay(100);
      digitalWrite(rows[r], LOW);
      digitalWrite(cols[c], HIGH);
    }
  }
}

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ свСтодиоды Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ 3x3, создавая эффСкт Π±Π΅Π³ΡƒΡ‰Π΅Π³ΠΎ огня.


Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΏΡ€ΠΈ использовании Ρ†ΠΈΠΊΠ»Π° for

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ†ΠΈΠΊΠ»ΠΎΠΌ for Π² Arduino ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ошибки. Рассмотрим самыС распространСнныС ΠΈΠ· Π½ΠΈΡ…:

1. БСсконСчный Ρ†ΠΈΠΊΠ»

Одна ΠΈΠ· самых частых ошибок - созданиС бСсконСчного Ρ†ΠΈΠΊΠ»Π°. Π­Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° условиС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ становится Π»ΠΎΠΆΠ½Ρ‹ΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:

for (int i = 0; i < 5; i--) {
  // Π­Ρ‚ΠΎΡ‚ Ρ†ΠΈΠΊΠ» Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ
}

Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ: Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ Π² Ρ†ΠΈΠΊΠ»Π΅ for измСняСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² Π½ΡƒΠΆΠ½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.

2. Π’Ρ‹Ρ…ΠΎΠ΄ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ массива

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° распространСнная ошибка - ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ элСмСнту массива Π·Π° Π΅Π³ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:

int arr[] = {1, 2, 3, 4, 5};
for (int i = 0; i <= 5; i++) {
  Serial.println(arr[i]); // Ошибка ΠΏΡ€ΠΈ i = 5
}

Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ строгоС нСравСнство (<) вмСсто нСстрогого (≀) ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с индСксами массива.

3. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок

НСкоррСктноС использованиС Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡƒ повСдСнию ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:

for (int i = 0; i < 5; i++);
{
  digitalWrite(LED_PIN, HIGH);
  delay(500);
  digitalWrite(LED_PIN, LOW);
  delay(500);
}

Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ: Π£Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой послС условия Ρ†ΠΈΠΊΠ»Π° for.


ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Ρ†ΠΈΠΊΠ»Ρƒ for Π² Arduino

Π₯отя Ρ†ΠΈΠΊΠ» for ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π΅Π½, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ подходящиС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹. Рассмотрим Π΄Π²Π° основных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°:

Π¦ΠΈΠΊΠ» while

Π¦ΠΈΠΊΠ» while ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° количСство ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ Π·Π°Ρ€Π°Π½Π΅Π΅ нСизвСстно ΠΈ зависит ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ условия.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования while:

int sensorValue = 0;

while (sensorValue < 100) {
  sensorValue = analogRead(A0);
  delay(100);
}

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ значСния с Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° A0, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΎ Π½Π΅ прСвысит 100.

Π¦ΠΈΠΊΠ» do-while

Π¦ΠΈΠΊΠ» do-while ΠΏΠΎΡ…ΠΎΠΆ Π½Π° while, Π½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° выполнится хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования do-while:

int buttonState;

do {
  buttonState = digitalRead(BUTTON_PIN);
  digitalWrite(LED_PIN, HIGH);
  delay(100);
  digitalWrite(LED_PIN, LOW);
  delay(100);
} while (buttonState == LOW);

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠΈΠ³Π°Ρ‚ΡŒ свСтодиодом, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΆΠ°Ρ‚Π° ΠΊΠ½ΠΎΠΏΠΊΠ°, ΠΏΡ€ΠΈ этом свСтодиод ΠΌΠΈΠ³Π½Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ использования Ρ†ΠΈΠΊΠ»Π° for

Для Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Arduino ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ использования Ρ†ΠΈΠΊΠ»Π° for, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ эффСктивным ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΌ.


Π¦ΠΈΠΊΠ» for с нСсколькими ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ for:

for (int i = 0, j = 10; i < 5 && j > 0; i++, j--) {
  // Код Ρ†ΠΈΠΊΠ»Π°
}

Π­Ρ‚ΠΎΡ‚ Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ 5 Ρ€Π°Π·, увСличивая i ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ j ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

БСсконСчный Ρ†ΠΈΠΊΠ» for

Иногда трСбуСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ бСсконСчный Ρ†ΠΈΠΊΠ»:

for (;;) {
  // Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ бСсконСчно
  // Π—Π΄Π΅ΡΡŒ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ условиС Π²Ρ‹Ρ…ΠΎΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, break
}

Π­Ρ‚ΠΎΡ‚ Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ бСсконСчно, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ условиС Π²Ρ‹Ρ…ΠΎΠ΄Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° break).

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π¦ΠΈΠΊΠ» for - ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт Π² арсСналС Arduino Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π΅Π³ΠΎ использованиС позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ эффСктивный, ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄. Однако Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящий Ρ‚ΠΈΠΏ Ρ†ΠΈΠΊΠ»Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.


ΠœΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… Arduino, Wemos, ECP8266

6 августа 2020 Π³.

ВСкст Π²ΠΈΠ΄Π΅ΠΎ

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚. Π’ этом Π²ΠΈΠ΄Π΅ΠΎ я Ρ…ΠΎΡ‡Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π΅ программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠ½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ часто Π½ΡƒΠΆΠ΅Π½ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π° ΠΏΠ»Π°Ρ‚Π°Ρ… WeMos ΠΈ Arduino. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΅Π³ΠΎ, Π²Ρ‹ смоТСтС ΠΏΠΈΡΠ°Ρ‚ΡŒ слоТныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΎ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡ эти ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹, я ΠΎΡ‡Π΅Π½ΡŒ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡΡŒ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ с Ρ€Π°Π·Π½ΠΎΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π΅ мСшали Π΄Ρ€ΡƒΠ³-Π΄Ρ€ΡƒΠ³Ρƒ ΠΏΡ€ΠΈ этом. Π’.Π΅. ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ многозадачности Π½Π° этих скромных дСвайсах ΠΈ ΠΏΡ€ΠΈ этом сильно Π½Π΅ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒ ΠΊΠΎΠ΄. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° я Π²ΠΎΠ·ΡŒΠΌΡƒ свою ΠΏΡ€ΠΎΡˆΠ»ΡƒΡŽ самодСлку с ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠΌ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ для Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° ΠΈ внСсу Π² ΠΊΠΎΠ΄ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дополнСния. Π’ частности, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ эту Π·Π°Π΄Π°Ρ‡Ρƒ Π±ΠΎΠ»Π΅Π΅ интСрСсной, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π° экран часы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ врСмя. Π‘Π΅ΠΊΡƒΠ½Π΄Ρ‹ Π½Π° этих часах Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ с ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ Π² ΠΎΠ΄Π½Ρƒ сСкунду Π±Π΅Π· Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя это устройство Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ состояниС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ³ΠΎΠ΄Π΅ ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ врСмя с сСрвСров Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π° экранС.

Π’ ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Ρ€Π°Π· я Ρ€Π΅ΡˆΠΈΠ», Ρ‡Ρ‚ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠΎΠ³ΠΎΠ΄Ρ‹ достаточно ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Π½Π° дисплСС Ρ€Π°Π· Π² полчаса. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ я Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π² полчаса Π² основной Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² этот Ρ€Π°Π· ΠΎΠ½Π° Π½Π°ΠΌ Π½Π΅ понадобится. Наши часы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с частотой Π² ΠΎΠ΄Π½Ρƒ сСкунду Ρ€ΠΎΠ²Π½ΠΎ, всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Ρ€Π΅ΠΆΠ΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΅ΡΡ‚ΡŒ смысл ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»Π°Π²Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ повторился ΠΈΠΌΠ΅Π½Π½ΠΎ с Ρ‚Π°ΠΊΠΎΠΉ частотой, Π° всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ написаны Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ успСвали ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΏΠΎΠΊΠ° сСкундная стрСлка часов Π½Π΅ двигаСтся.

Для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»Π°Π²Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. РаньшС ΠΎΠ½ выглядСл Π²ΠΎΡ‚ Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ я Ρ…ΠΎΡ‡Ρƒ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· Π½Π΅Π³ΠΎ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π² полчаса ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

Бмысл этой ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΠ΅Ρ‡ΡŒ, сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ основныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² этом Ρ†ΠΈΠΊΠ»Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² суммС ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» выполнялся Ρ€ΠΎΠ²Π½ΠΎ сСкунду. ΠœΠ΅Ρ‚ΠΎΠ΄ mainMilles Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ число миллисСкунд ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… с Π½Π°Ρ‡Π°Π»Π° выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊ Π½Π΅ΠΌΡƒ ΠΌΡ‹ вСрнСмся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅.

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… startMillis ΠΈ endMillis Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ значСния этой Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΈ Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ†ΠΈΠΊΠ»Π° ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅. ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ Ρ‡Ρ‚ΠΎ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя выполнСния Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ· endMillis Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ startMillis, Π½ΠΎ это Π½Π΅ всСгда Ρ‚Π°ΠΊ. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ самоС большоС Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ цСлочислСнноС число ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² нашСм ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 4 Π±Π°ΠΉΡ‚Π°. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊΠΎΠ΅ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° unsigned long, ΠΈ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ.

Объявим константу макс ю Π» ΠΈ сохраним Π² Π½Π΅Π΅ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ unsigned long. ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ 0x ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ дальшС Π·Π° Π½ΠΈΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Π°ΠΉΡ‚ Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅.

Π‘Π΅Π· прСфикса дСсятичная систСма исчислСния

Π’ – двоичная систСма исчислСния

0 – Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Π°Ρ систСма исчислСния

(07 Π² дСсятичной систСмС счислСния это 7, Π° 016 это 14) O_O Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹

0x – ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Π°Ρ систСма исчислСния

Π’ΠΎΡΠ΅ΠΌΡŒ F слСдом это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этих Π±Π°ΠΉΡ‚. По Π΄Π²Π° символа Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π°ΠΉΡ‚. Π’.Π΅. Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ всС 4 Π±Π°ΠΉΡ‚Π° окаТутся Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ. UL Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ эти Π±Π°ΠΉΡ‚Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… unsigned long.

Если вывСсти это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² консоль, Ρ‚ΠΎ ΠΎΠ½ΠΎ вывСдСтся Π² ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΉ для нас дСсятичной Ρ„ΠΎΡ€ΠΌΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ выяснили, Ρ‡Ρ‚ΠΎ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ unsigned long это Ρ‚ΠΎ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π° экранС.

ΠŸΡ€ΠΈΠ±Π°Π²ΠΈΠΌ ΠΊ этому числу ΠΎΠ΄Π½Ρƒ тысячу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Π°ΠΉΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈΡΡŒ ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² консоль.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ 999. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½ΠΈΠ»ΠΎΡΡŒ, Ρ‚ΠΎ ΠΎΠ½ΠΎ Π²Π½Π°Ρ‡Π°Π»Π΅ стало Π½ΡƒΠ»Π΅ΠΌ, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΊ Π½Π΅ΠΌΡƒ добавилось Π΅Ρ‰Π΅ 999.

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ наш счСтчик Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‡Π΅Ρ€Π΅Π· 4 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π° миллисСкунд пСрСполнится ΠΈ Π½Π°Ρ‡Π½Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ сначала. Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· 49 Π΄Π½Π΅ΠΉ. Π― Π½Π΅ Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это устройство Π½Π°Ρ‡Π°Π»ΠΎ ΡΠ±ΠΎΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· 49 Π΄Π½Π΅ΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎ ΠΎΡ‚Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ счСтчика миллисСкунд, я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚ΡŒ эту Π΄Π°Ρ‚Ρƒ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° настанСт. Для этого я написал ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΊΡƒ Π² миллисСкундах, которая пСрСполнится Ρ‡Π΅Ρ€Π΅Π· 30 сСкунд. Π’Π΅Π·Π΄Π΅ Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ врСмя Π² миллисСкундах я Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ошибки Ρ‡Π΅Ρ€Π΅Π· 30 сСкунд, Ρ‚ΠΎ ΠΈ Ρ‡Π΅Ρ€Π΅Π· 49 Π΄Π½Π΅ΠΉ Π΅Π΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅.

Π’ этом Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π° я ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ пСрСполнился. ΠŸΡ€ΠΈ этом врСмя выполнСния Π½ΡƒΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π΅ ΠΊΠ°ΠΊ Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΊΠΎΠ½Ρ†Π° ΠΈ Π½Π°Ρ‡Π°Π»Π°, Π° Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ написано Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

Π’ этом Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π° я добавляю Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ длился Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄Π½Ρƒ сСкунду.

Π’Ρ‹Π²Π΅Π΄Ρƒ Π½Π° экран Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ миллисСкунд, посмотрим, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ мСняСтся. НСмного ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π”ΠΎΠ±Π°Π²Π»ΡŽ Π²Ρ‹Π²ΠΎΠ΄ Π»ΠΎΠ³ΠΎΠ² ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Ρƒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ основной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Если всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Ρ‚ΠΎ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ значСниями Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 1000 ΠΈ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Ρ€Π°Π· Π² сСкунду.

Π§Ρ‚ΠΎ ΠΆΠ΅, всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ. ΠŸΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒ всСго нСсколько миллисСкунд. Π­Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ.

На этом модификация основного Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ я добавлю ΠΊΠΎΠ΄ для получСния Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°. Для этого придСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ. Она называСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅. ВрСмя, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π½Π° часах Π½ΡƒΠΆΠ½ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ Π±Ρ€Π°Ρ‚ΡŒ, ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ счСтчик Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π· занимаСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Π΅Π΄Π΅Ρ‚ счСт Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° врСмя ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ с Π½Π°Ρ‡Π°Π»Π° запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ позволяСт вСсти Π΅Π³ΠΎ счСт Π² ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΌ для нас Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Π² Ρ†Π΅Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ. Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ сСрвСра ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Π΄ΡƒΡ‚ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ счСт Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. К Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ запрос Π΄Π»ΠΈΠ½Π½ΠΎΠΉ Π² 48 Π±Π°ΠΉΡ‚ Π½Π° UDP сокСт с ΠΏΠΎΡ€Ρ‚ΠΎΠΌ 8888. Π’ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΡˆΠ»ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ 48 Π±Π°ΠΉΡ‚ с Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ. Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ этом ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» называСтся NTP, Ρ‚.Π΅. Network Time Protocol. Π― Π½Π΅ Π±ΡƒΠ΄Ρƒ сСйчас Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ. Код для получСния Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° я взял ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

И Ρ‚Π°ΠΊ я Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ врСмя, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π½Π° часах ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ NTP ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² 10 ΠΌΠΈΠ½ΡƒΡ‚.

Для этого Π² этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ я написал Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ счСтчик. Он считаСт число ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Когда Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 601 выполняСтся ΠΊΠΎΠ΄ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‰ΠΈΠΉ врСмя, Π° счСтчик сбрасываСтся Π½Π° Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ пСрСполнСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ здСсь ΡƒΠΆΠ΅ Π½Π΅Ρ‚. Π§Ρ‚ΠΎΠ±Ρ‹ врСмя ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΎΡΡŒ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ я установил Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика Ρ€Π°Π²Π½ΠΎΠ΅ 601.

ΠœΠ΅Ρ‚ΠΎΠ΄ timeString() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ врСмя Π² понятном для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ hour(), minute(), second(), day(), month() это ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎ, Π½ΠΎΠ²ΠΎΠ΅ Ρ‡Ρ‚ΠΎ появилось Π² нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ послС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ TimeLib.

Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠΎΠ΄ для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с ΠΌΠ΅Ρ‚Π΅ΠΎΠ΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ². ΠŸΡ€ΠΈ этом запрос Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ я Π±ΡƒΠ΄Ρƒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² ΠΏΡΡ‚ΡŒ ΠΌΠΈΠ½ΡƒΡ‚, Π° ΠΎΡ‚Π²Π΅Ρ‚ Π±ΡƒΠ΄Ρƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅. 5 ΠΌΠΈΠ½ΡƒΡ‚ это 300 сСкунд, Π½ΠΎ я Π²Ρ‹Π±Π΅Ρ€Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 301.

Π’Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠΎΠ΄ для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠΎΠ³ΠΎΠ΄Π΅ ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°. Π― Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ обновлялся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² ΠΏΡΡ‚ΡŒ ΠΌΠΈΠ½ΡƒΡ‚. Но я Π²Ρ‹Π±Π΅Ρ€Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 307.

Код для восстановлСния соСдинСния с Wi-Fi ΠΈ ΠΊΠΎΠ΄ для обновлСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° экранС я ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Ρƒ. Они ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ†ΠΈΠΊΠ», Ρ‚.Π΅. ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² сСкунду.

Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ показания Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ вмСсто названия Π³ΠΎΡ€ΠΎΠ΄Π° Π½Π° дисплСС. Π― ΠΎΡΡ‚Π°Π²Π»ΡŽ Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΌΠ΅Π»ΠΊΠΈΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ. ЦСль Π΅Π³ΠΎ отобраТСния Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΊΠ°ΠΊ ΡΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ…. А Π΅Ρ‰Π΅ ΠΎΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ наш ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π½Π΅ завис. Для этих Ρ†Π΅Π»Π΅ΠΉ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Π»ΠΊΠΎΠ³ΠΎ ΡˆΡ€ΠΈΡ„Ρ‚Π° достаточно.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ врСмя Ρ€Π°Π· Π² сСкунду. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π² основной Ρ†ΠΈΠΊΠ» Ρ‚Π°ΠΊΡƒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ выполнялся Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄Π½Ρƒ сСкунду. Но Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π²Π°ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π±Π΅Π· Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π²ΠΎΠΎΠ±Ρ‰Π΅. Π’ΠΎΠ³Π΄Π° ΠΈΠ· основного Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ, Π° Π² Ρ†ΠΈΠΊΠ»Π°Ρ… ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΎΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ Π½Π° миллисСкунды, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π”ΡƒΠΌΠ°ΡŽ Ρ‡Ρ‚ΠΎ Ρ†Π΅Π»ΠΎΠΌ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π² ΠΊΠΎΠ΄ Ρ‚Π°ΠΌ, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π±Π»Π°Π³ΠΎΡ‚Π²ΠΎΡ€Π½ΠΎ сказываСтся Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ², сниТаСт ΠΈΡ… энСргопотрСблСниС ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΈΡ… рСсурс.

Бсылки Π½Π° исходный ΠΊΠΎΠ΄, я ΠΎΡΡ‚Π°Π²Π»ΡŽ Π² описании ΠΏΠΎΠ΄ Π²ΠΈΠ΄Π΅ΠΎ.

ΠŸΠΈΠ½Ρ‹ PIN Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ. Π Π΅ΠΆΠΈΠΌ pinmode output Π² Ρ†ΠΈΠΊΠ»Π΅

Ѐункция ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
pinMode(<Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΈΠ½Π°>, <Ρ‚ΠΈΠΏ>) ΠΈ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Как ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Input установлСно ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, поэтому ΠΌΡ‹ Π΅Π³ΠΎ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ, Π° остановимся Π½Π° Output.

Π Π°Π΄ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° своём ΠΊΠ°Π½Π°Π»Π΅ ΠΌΠΎΠΈΡ… подписчиков ΠΈ просто Π·Π°Π³Π»ΡΠ½ΡƒΠ²ΡˆΠΈΡ… ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ здСсь Ρ‚Π°ΠΊΠΎΠ³ΠΎ. НадСюсь, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° ΠΊΠ°Π½Π°Π». ΠŸΡ€ΠΈΡΡ‚Π½ΠΎΠ³ΠΎ просмотра.
Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ OUTPUT Arduino Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Π½Π° внСшнСС устройство максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ Ρ‚ΠΎΠΊ ΠΈ ΠΏΠΎ сути ваша ΠΏΠ»Π°Ρ‚Π° становится  источником Ρ‚ΠΎΠΊΠ°. ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ½ΡΡ‚ΡŒ с Π²Ρ‹Ρ…ΠΎΠ΄Π° Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ – 40 мА. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ, Π½Π΅ ΠΌΠΎΡ‰Π½ΠΎΠ³ΠΎ свСтодиод, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 5ΠΌΠΌ ΠΎΠ΄Π½ΠΎΡ†Π²Π΅Ρ‚Π½ΠΎΠ³ΠΎ свСтодиод Π½Π°Π΄ΠΎ 20 мА, ΠΈ это практичСски СдинствСнноС устройство ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡ‚Π°Ρ‚ΡŒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΡ‚ Ардуино. Всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· внСшний транзистор ΠΈΠ»ΠΈ Ρ€Π΅Π»Π΅.

На этом Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.
Π‘Π½Π°Ρ‡Π°Π»Π° создадим ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ скСтч ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ пишСм всСгда. Π’ Π½Ρ‘ΠΌ установим 12 Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² Ардуино Π² Ρ€Π΅ΠΆΠΈΠΌ Output. Как Π²ΠΈΠ΄ΠΈΡ‚Π΅ – Π½Π° это ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ достаточно ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ заняло ΠΏΠΎΡ‡Ρ‚ΠΈ 30 строчСк ΠΊΠΎΠ΄Π°. ΠŸΠΎΠ΄ΡƒΠΌΠ°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‡Π΅.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ всС Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΈΠ΄ΡƒΡ‚ ΠΏΠΎ порядку, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ», ΠΈ Π² Π½Ρ‘ΠΌ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ всСм Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ OUTPUT.
Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† ΠΈ присваиваСм ΠΈΠΌ значСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΈΠ½Π° Ардуино, Π° дальшС просто Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ всС ΠΏΠΈΠ½Ρ‹ ΠΈ присваиваСм ΠΈΠΌ значСния Output. Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ Π½ΠΎ. А Π²Π΄Ρ€ΡƒΠ³ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ всС ΠΏΠΈΠ½Ρ‹ Π² состоянии Π²Ρ‹Ρ…ΠΎΠ΄Π°, Π²Π΄Ρ€ΡƒΠ³ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² состоянии Input, Ρ‚ΠΎΠ³Π΄Π° этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚.
ΠŸΡ€ΠΈΠ·ΠΎΠ²Ρ‘ΠΌ сСбС Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ массив ΠΈ ΠΏΡ€ΠΎΠΏΠΈΡˆΠ΅ΠΌ Π² Π½Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΏΠΈΠ½Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² состояниС Output. Массив ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любой размСрности ΠΈ ΠΏΠΈΠ½Ρ‹ Π² Π½Ρ‘ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Ρ‚ΡŒ ΠΏΠΎ порядку. МоТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² любой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ всё Ρ‚Π°ΠΊ ΠΆΠ΅ Π² массивС присвоим ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Output.
Ну ΠΈ напослСдок напишСм Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΠΎ с прямым обращСния ΠΊ рСгистрам ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. ΠœΡ‹ ΡƒΠ»ΠΎΠΆΠΈΠ»ΠΈΡΡŒ всСго Π² 4 строчки ΠΊΠΎΠ΄Π° ΠΈ здСсь всё понятно ΠΈ просто.

Π’Π°ΠΊ ΠΆΠ΅ это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄ΠΎ 5 Ρ€Π°Π·. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ описано Π² этом ΡƒΡ€ΠΎΠΊΠ΅.

ΠŸΠΎΠ΄Π²Π΅Π΄Ρ‘ΠΌ ΠΈΡ‚ΠΎΠ³.
Π’ΠΎΡ‚ Ρ‚Π°ΠΊ выглядит ΠΊΠΎΠ΄ всСх Ρ‚Ρ€Ρ‘Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎΠΉ страницС. Каким способом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π΅ΡˆΠ°ΠΉΡ‚Π΅ сами, Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΈ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами Π½Π°Π΄ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ, Π²Π΄Ρ€ΡƒΠ³ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ пригодится.

А здСсь информация ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ памяти ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ. Π Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ Π½Π΅ большоС, Π½ΠΎ ΠΈ ΠΊΠΎΠ΄-Ρ‚ΠΎ Π½Π΅ большой.
Ну ΠΈ бСсспорный Π»ΠΈΠ΄Π΅Ρ€ это прямоС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅, Π½ΠΎ это для ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ…. НадСюсь Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΈ подписчики ΡƒΠΆΠ΅ достигли Ρ‚Π°ΠΊΠΎΠ³ΠΎ уровня, Π° Ρ‚ΠΎ я зря ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ» ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ вашСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Β 

Π‘ΠΊΠ΅Ρ‚Ρ‡ΠΈ

Arduino IDE: Ρ†ΠΈΠΊΠ» while β€” STEMpedia

Об этом руководствС

Π’ этом руководствС обсуТдаСтся, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ†ΠΈΠΊΠ» while, Π΅Π³ΠΎ ΠΎΠ±Ρ‰ΠΈΠΉ синтаксис Π² Arduino IDE, Ρ‡Π΅ΠΌ ΠΎΠ½ отличаСтся ΠΎΡ‚ Ρ†ΠΈΠΊΠ»Π° for ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

УчСбная информация

Π’Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ДоступСн Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅
ΠΈΠ²ΠΈΠ² 1
  • Π΅Π²ΠΈΠ²
КабСль USB A-B 1
  • Π΅Π²ΠΈΠ²

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π¦ΠΈΠΊΠ»Ρ‹ While Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ ΠΈ бСсконСчно, ΠΏΠΎΠΊΠ° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² скобках () Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π»ΠΎΠΆΠ½ΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ. Π§Ρ‚ΠΎ-Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° while, ΠΈΠ½Π°Ρ‡Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° while. Если Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, сколько Ρ€Π°Π· Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ†ΠΈΠΊΠ», Π²Π°ΠΌ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» while.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΎΠ±Ρ‰ΠΈΠ΅ Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ синтаксис Ρ†ΠΈΠΊΠ»Π° Π² Arduino IDE. Π’ скобках написано ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‚.Π΅. условиС. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ†ΠΈΠΊΠ»Π° for , Ρ†ΠΈΠΊΠ» while ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² скобках, Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° зависит ΠΎΡ‚ активности Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°.

while (условиС) {
Π’Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° while
}

НиТС прСдставлСна ​​блок-схСма, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ» while :

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Β 

[tutorialRelatedProjects]

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

. Π•ΡΡ‚ΡŒ Π»ΠΈ способ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ void loop(), ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ Π½Π° ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Β«ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒΒ» Π² Ρ†ΠΈΠΊΠ»Π°Ρ… c?

спросил

ИзмСнСно 1 Π³ΠΎΠ΄, 4 мСсяца Π½Π°Π·Π°Π΄

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΎ 585 Ρ€Π°Π·

Π― Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Arduino ΠΈ ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ, ΠΈΠ·Π±Π΅Π³Π°ΡŽΡ‰ΡƒΡŽ прСпятствий, с ΡƒΠ»ΡŒΡ‚Ρ€Π°Π·Π²ΡƒΠΊΠΎΠ²Ρ‹ΠΌ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ ΠΈ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ модСлью Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°. Π˜Π·ΡƒΡ‡Π°Ρ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, я ΡƒΠ·Π½Π°Π», Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ void loop() с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ exit(0) , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ слову break Π½Π° языкС C. Π•ΡΡ‚ΡŒ Π»ΠΈ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ я ΠΌΠΎΠ³Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Β«ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒΒ», скаТСм, Ссли я Π½Π΅ Ρ…ΠΎΡ‡Ρƒ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ послС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ строки Π² функция void loop() .

  • ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

4

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ loop() return Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. ΠŸΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ†ΠΈΠΊΠ» for() Π² main() (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ) снова повторяСтся, снова вызывая loop() .

Π”Ρ€ΡƒΠ³ΠΎΠΉ способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС β€” Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ всС Π² вашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ setup() , Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π»ΡŽΠ±ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Ρ†ΠΈΠΊΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²; ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ΡΡ; ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ , ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ:

 void setup(){
 // Π²Ρ‹Π·ΠΎΠ²Ρ‹ pinMode() ΠΈ digitalWrite()
 // Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ
 // Π›ΡŽΠ±Π°Ρ другая разовая настройка
 //
 // Π—Π΄Π΅ΡΡŒ всС происходит:
 Π·Π°( .

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *