Wednesday, February 15, 2017

Arduino - наглядное программирование

Здравствуйте .
Много времени занимаясь электроникой с вожделением поглядывал на программирование и наконец взялся за Ардуину.
Чаще всего изучая какое- либо руководство , мучает невозможность применить это знание каким либо интересным образом. В случае прикладного программирования контроллера , в среде с столь низким порогом входа как Arduino Wiring появляется возможность легко осознать как инструменты Си , так и работу инструкций.
Всегда спрашивал как думают , так способ осознания , представление образов на мой взгляд самое главное . Знания , по моему это просто набор сведений и готовое решение, так-же не помогает придумать что – то новое.
Естественно как и многие я опробовал и  VirtualBreadBoard и другие симуляторы. Но они имеют не нужные инструкции и некоторые ошибки. А програмирование на Scratch for Arduino – это , скорее для дизайнеров.
Поэтому проще всего оказалось подключить дешевую плату Nano 3.0 CH340G , которая стоит не выше 200 руб на известных китайских сайтах. Естественно , поставив arduino ide  и драйвер CH340G.
Идея заключается в том , чтобы передавать, выполнять и получать данные , как результат программирования. Делаем это через серийный порт компьютера , подключенный по USB к плате Nano 3.0 CH340G.
Итак пример :
int outputPin = 13;                //здесь храним номер контакта
int val;                           //здесь будет храниться принятый символ
 int x;                            //водим переменную для внесения значений
#define Time 500       // вводим время через define , хотя и можно const
char someVariable = val; //водим текстовую переменную для внесения значений
int myArray[10]; // введем на будующее массив
void setup()
{
  Serial.begin(9600);              //установка порта на скорость 9600 бит/сек
  pinMode(outputPin, OUTPUT);      //устанавливаем 13 контакт в режим вывода
  val = Serial.read();            //  то читаем его и сохраняем в val
}

void loop()
{
  if (Serial.available()) {         //если есть принятый символ,
    val = Serial.read();            //  то читаем его и сохраняем в val
    if (val == 'H') {               //  если принят симовол 'H',...
      digitalWrite(outputPin, HIGH);//  то включаем светодиод
      Serial.println("HIGH"); // Печатаем состояние вывода
    }
    else if (val == 'L') {               //  если принят симовол 'L',
      digitalWrite(outputPin, LOW); //    то выключаем светодиод
      Serial.println("LOW");  // Печатаем состояние вывода
    }
    else
    {
      digitalWrite(outputPin, LOW); //    то выключаем светодиод
      delay (Time); // Прерываем по заданному значению времени
      digitalWrite(outputPin, HIGH); // Печатаем состояние вывода
      delay (Time); // Прерываем по заданному значению времени
      digitalWrite(outputPin, LOW); // Ставим вывод в ноль
      Serial.println("ХЕНДЕ-ХОХ!"); // Печатаем найденную ошибку , чтоб знали наших :)
    }

    switch (val) // Работаем с переключателем
    {
      case '1':
        Serial.println("1");
        Serial.println("CASE""___________________________________");
        break;
      case 'B':
        Serial.println("B");
        Serial.println("CASE""___________________________________");
        break;
      default:
        Serial.println("___________________________________");
    }
    for (int x = 0; x < 3; x++) // Работаем с циклом , прибавляя значение x++
    {
      Serial.println(x); //печать от 0 до 3
      delay (Time);
      Serial.println("FOR println(x)___________________________________"); // Печатаем пояснение
    }
    while (someVariable = val) // Если нет то, приравниваем val
    {
     
      Serial.println(val);
      Serial.println("WHILE println(val)___________________________________");// Печатаем пояснение
      break; // Прерываем цикл , иначе не прекратиться
    }
    do // Вводим цикл с проверкой в конце , для применения случайной переменной
    {
    
      x = random(0, 20);
      Serial.println(x);
      Serial.println("do_Random___________________________________");
    }
    while (x < 15); // Если меньше 15 , цикл прекращается
  }

}


Рис в помощь. Очень хорошо использовать Монитор порта про – что дает возможность читать свою кирилицу, сайт автора и  мори благодарности  по адресу http://arduino.on.kg/



Читать по Си – Бочков C.. Язык программирования Си для персонального компьютера, что можно найти в fb2.

Спасибо и всем удачи в изучении прикладного программирование, на что нужно один – два месяца по вечерам.