Здравствуйте .
Много времени занимаясь электроникой с вожделением
поглядывал на программирование и наконец взялся за Ардуину.
Чаще всего изучая какое- либо руководство , мучает
невозможность применить это знание каким либо интересным образом. В случае
прикладного программирования контроллера , в среде с столь низким порогом входа
как 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.
Спасибо и всем удачи в изучении прикладного
программирование, на что нужно один – два месяца по вечерам.