Робототехника

Материал из Информационная безопасностя
Перейти к навигации Перейти к поиску

Схема 1

Схема-1.PNG

Код

 1 //Задание глобальных переменных целочисленного типа integer
 2 //Присваивание переменной ledLamp (светодиод) значение выхода 12 на плате
 3 int ledLamp = 12;
 4 
 5 //Установка начальных параметров
 6 void setup()
 7 {
 8  //Задание пина ledLamp в качестве выходного
 9  pinMode(ledLamp, OUTPUT);
10 }
11 
12 //Основной цикл (повторяется бесконечно)
13 void loop()
14 {
15  //Назначение выходного сигнала от пина (выхода ledLamp) HIGH (5 вольт)
16  digitalWrite(ledLamp, HIGH);      //Включение светодиода
17  //Пауза 2000 – задается в миллисекундах (1 секунда = 1000 миллисекунд)
18  delay(2000);
19  //Назначение выходного сигнала от пина (выхода ledLamp) LOW (0 вольт)
20  digitalWrite(ledLamp, LOW);      //Выключение светодиода
21  //И опять задержка 2 секунды 
22  delay(2000);
23 }

Схема 2

Схема-2.PNG

Код

 1 //Задание глобальных переменных 
 2 //Глобальные переменные обладают областью видимости в любом месте программы
 3 int ledLamps[] = {2,3,4,5,6,7,8,9,10}; 
 4 //Задание массива (нескольких значений), хранящего номера пинов для светодиодов
 5 int lastLamp = 8; //Значение (маркер) для хранения последнего включенного //светодиода (последний элемент – всего 9 элементов, нумерация начинается с 0)
 6 //Установка начальных параметров
 7 
 8 void setup()
 9 {
10  //Будем обходить значения по очереди (в цикле), увеличивая с каждым проходом  
11  //цикла значение переменной element и присваивать текущему значению пина, 
12  //значение OUTPUT
13  int element; //Объявление вспомогательной переменной для обхода цикла
14  for (element = 0; element <= 8; element++) //Конструкция цикла
15  { //конструкция «++» означает инкремент (увеличение на 1)
16    pinMode(ledLamps[element], OUTPUT);
17  }
18 }
19 
20 void loop() // Основной цикл
21 {
22  //Включение светодиодов по очереди
23  //Циклом обходим элементы массива номеров пинов
24  int element; //Объявление вспомогательной переменной для обхода цикла
25  //Обходим все элементы массива пинов
26  for (element = 0; element<=8; element++)
27    {
28     //Проверим: если сейчас не последний элемент – значит, просто «моргнуть»
29     if(element != lastLamp)
30       {
31        digitalWrite(ledLamps[element], HIGH); //Включить светодиод
32        delay(100); //Задержка на 0,1 секунды
33        digitalWrite(ledLamps[element], LOW); //Выключить светодиод
34        delay(100); //Задержка на 0,1 секунды
35       }
36      else //Иначе, если это последний элемент, только зажечь
37       {
38        digitalWrite(ledLamps[element], HIGH); //Включить светодиод
39        delay(100); //Задержка на 0,1 секунды
40        lastLamp--; //Т.к. последний элемент зажгли, нужно уменьшить маркер
41        //последнего элемента на 1 (конструкция «--» означает декремент
42        //(вычитание) единицы) 
43        break; //Принудительно прерываем цикл, чтобы остальные светодиоды,
44        //которые уже зажжены, не трогать
45       }
46     }
47  //После того как цикл прошел несколько раз (по количеству светодиодов), маркер 
48  //последнего светодиода станет меньше нуля, поэтому мы выключим все светодиоды
49  //по очереди и снова установим маркер на 8 
50  if (lastLamp<0) 
51   {
52    //Снова в цикле обойдем все светодиоды и отключим каждый
53    for (element = 0; element <=8; element++) 
54    {
55     digitalWrite(ledLamps[element], LOW); //Отключение
56     delay(200); //Задержка на 0,2 секунды
57    }
58    lastLamp = 8; //Возвращаем маркер на 8 (начальное положение)
59   }  
60 }

Схема 3

Схема-3.JPG

Код

 1 //Задание глобальных переменных 
 2 //Глобальные переменные обладают областью видимости в любом месте программы
 3 const int potentiometr = 0; //Потенциометр соединен с пином 0 на плате
 4 const int ledLamp = 11;     //Светодиод соединен с цифровым пином 11 на плате        
 5 int potentiometrValue;      //Задание переменной для считывания значения 
 6                             //потенциометра (целочисленный тип int)
 7 
 8 //Установка начальных параметров
 9 void setup()
10 {
11  //Задание пина ledLamp в качестве выходного
12  pinMode(ledLamp, OUTPUT);
13 }
14 
15 // Основной цикл
16 void loop()
17 {
18  //Считывание значения аналогового пина potentiometr (лежит в пределах от 0 до
19  //1023 – 0-5 вольт)
20  potentiometrValue = analogRead(potentiometr); 
21  //Установка напряжения на пин ledLamp светодиода
22  //(Значение напряжения лежит в пределах от 0 до 255 – поэтому разделим 
23  //значение potentiometrValue на 4)
24  analogWrite(ledLamp, potentiometrValue / 4);
25 }

Схема 4

Схема-4.JPG

Код 1

 1 //Определим пины
 2 const int button = 10; //Пин для кнопки 10
 3 const int ledLamp = 12; //Пин для светодиода 12
 4 
 5 void setup()
 6 {
 7  pinMode(button, INPUT); //Установим кнопку на ввод информации
 8  pinMode(ledLamp, OUTPUT); //Светодиод на вывод
 9 }
10 
11 void loop()
12 {
13  if (digitalRead(button) == HIGH) //Если с кнопки приходит ток
14  {
15   digitalWrite(ledLamp, HIGH); //Включаем светодиод
16  }
17  else //Иначе (тока нет)
18  {
19   digitalWrite(ledLamp, LOW); //Отключаем светодиод
20  }
21 }

Код 2

1 Включение и выключение по нажатию одной кнопки

Код 3

 1 //Определим пины
 2 const int button1 = 9;  //Пин для кнопки № 1 – 9
 3 const int button2 = 10; //Пин для кнопки № 2 – 10
 4 const int ledLamp = 11; //Пин для светодиода – 11
 5 int bright = 0; //Здесь будем хранить текущее значение яркости
 6 boolean lastButton1 = LOW; //Последнее значение кнопки № 1 (ВЫКЛ)
 7 boolean lastButton2 = LOW; //Последнее значение кнопки № 2 (ВЫКЛ)
 8 
 9 void setup() {
10  pinMode(button1, INPUT); //Установим кнопку на ввод информации
11  pinMode(button2, INPUT); //Установим кнопку на ввод информации
12  pinMode(ledLamp, OUTPUT); //Светодиод на вывод
13 }
14 
15 void loop() {
16   boolean valueButton1 = digitalRead(button1); //Считать значение кнопки №1
17   boolean valueButton2 = digitalRead(button2); //Считать значение кнопки №2
18   delay(10); //Программная задержка для избежания дребезга сигнала
19   if (valueButton1 == HIGH && lastButton1 == LOW)//Если нажали кнопку №1  
20   {
21    lastButton1 = HIGH; //Последнее значение кнопки № 1 (ВКЛ)
22    bright = bright + 50; //Увеличим яркость лампочки
23   }
24   else if (valueButton2 == HIGH && lastButton2 == LOW)//Кнопка № 2
25   {
26    lastButton2 = HIGH; //Последнее значение кнопки № 2 (ВКЛ)
27    bright = bright - 50; //Уменьшим яркость
28   }
29   else //Иначе – нажатий не было, считаем состояние кнопок
30   {
31    lastButton1 = valueButton1;
32    lastButton2 = valueButton2;  
33   }
34   if (bright < 0) //Если яркость опустилась ниже 0, установим ее в 0
35   {
36    bright = 0; //Яркость может быть только от 0 до 255
37   }
38   else if (bright > 255) //Если поднялась больше 255
39   {
40    bright = 255; //Установим ее в 255
41   }
42   analogWrite(ledLamp, bright); //Передадим значение яркости на светодиод
43 }

Схема 7

Схема-7.png

Схема 8

Схема-8.png

Схема 10

Схема-10.png