#1 Re: Програмування Arduino » Заготовка электрогитары для токарного » 2016-06-09 20:17:16

Ну вот, послушал советы подправил програмку, более менее рабочая нужно дошлифовать.
#include <LiquidCrystal.h>
#include <Stepper.h>
//Подключение шагового двигателя
int pul = 19;
int dir = 21;

// Initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

//States for the menu.
int currentMenuItem = 0;
int lastState = 0;

void setup() {
   //Set the characters and column numbers.
   lcd.begin(16, 2);
   //Print default title.
   clearPrintTitle();
   //Параметры шагового двигателя
   pinMode(pul, OUTPUT);     
  pinMode(dir, OUTPUT);
 
}

void loop() {
  //Call the main menu.
  mainMenu();
}

void mainMenu() {
  //State = 0 every loop cycle.
  int state = 0;
  //Refresh the button pressed.
  int x = analogRead (0);
  //Set the Row 0, Col 0 position.
  lcd.setCursor(0,0);

  //Check analog values from LCD Keypad Shield
  if (x < 100) {
    //Right
    state = 4;
  } else if (x < 200) {
   //Up
    state = 1;
  } else if (x < 400){
   //Down
    state = 2;
  } else if (x < 600){
    //Left
    state = 5;
  } else if (x < 800){
    //Select
    state = 3;
  }

  //If we are out of bounds on th menu then reset it.
  if (currentMenuItem < 0 || currentMenuItem > 13) {
   currentMenuItem = 0;
 
  }

   //If we have changed Index, saves re-draws.
   if (state != lastState) {
      if (state == 1) {
         //If Up
          currentMenuItem = currentMenuItem - 1;
          displayMenu(currentMenuItem);
      } else if (state == 2) {
         //If Down
          currentMenuItem = currentMenuItem + 1; 
          displayMenu(currentMenuItem);
      } else if (state == 3) {
         //If Selected
        //selectMenu(currentMenuItem);
      } else if (state == 4) {
         //If RIGHT
        rightMenu(currentMenuItem);
      } else if (state == 5) {
         //If LEFT
        leftMenu(currentMenuItem);
      }


     
      //Save the last State to compare.
      lastState = state;
   }
   //Small delay
  delay(5);
}

//Display Menu Option based on Index.
void displayMenu(int x) {
     switch (x) {
      case 1:
        clearPrintTitle();
        lcd.print ("0.01");
        break;
      case 2:
        clearPrintTitle();
        lcd.print ("0.015");
        break;
       case 3:
        clearPrintTitle();
        lcd.print ("0.02");
        break;
      case 4:
        clearPrintTitle();
        lcd.print ("0.03");
        break;
       case 5:
        clearPrintTitle();
        lcd.print ("0.04");
        break;
       case 6:
        clearPrintTitle();
        lcd.print ("0.06");
        break;
       case 7:
        clearPrintTitle();
        lcd.print ("0.08");
        break;
       case 8:
        clearPrintTitle();
        lcd.print ("0.1");
        break;
       case 9:
        clearPrintTitle();
        lcd.print ("0.13");
        break;
       case 10:
        clearPrintTitle();
        lcd.print ("0.15");
        break;
        case 11:
        clearPrintTitle();
        lcd.print ("0.18");
        break;
        case 12:
        clearPrintTitle();
        lcd.print ("0.20");
        break;
        case 13:
        clearPrintTitle();
        lcd.print ("0.22");
        break;
    }
}

//Print a basic header on Row 1.
void clearPrintTitle() {
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(" Podacha mm/ob ");
  lcd.setCursor(0,1);
}

//Show the rightMenu on Screen.
void   rightMenu(int x) {
   switch (x) {
      case 1:
        clearPrintTitle();
        lcd.print ("0.01 >>");
       // break;
   digitalWrite(dir, HIGH); 
   digitalWrite(pul, HIGH);
delayMicroseconds(5111);
  digitalWrite(pul, LOW);
  delayMicroseconds(5111);
        //Call the function that belongs to Option 1
       
      case 2:
        clearPrintTitle();
        lcd.print ("0.015 >>");
        //Call the function that belongs to Option 2
        break;
       case 3:
        clearPrintTitle();
        lcd.print ("0.02 >>");
        //Call the function that belongs to Option 3
        break;
      case 4:
        clearPrintTitle();
        lcd.print ("0.03 >>");
        //Call the function that belongs to Option 4
        break;
        case 5:
        clearPrintTitle();
        lcd.print ("0.04 >>");
        //Call the function that belongs to Option 5
        break;
        case 6:
        clearPrintTitle();
        lcd.print ("0.06 >>");
        //Call the function that belongs to Option 6
        break;
        case 7:
        clearPrintTitle();
        lcd.print ("0.08 >>");
        //Call the function that belongs to Option 7
        break;
        case 8:
        clearPrintTitle();
        lcd.print ("0.1 >>");
        //Call the function that belongs to Option 8
        break;
        case 9:
        clearPrintTitle();
        lcd.print ("0.13 >>");
        //Call the function that belongs to Option 9
        break;
        case 10:
        clearPrintTitle();
        lcd.print ("0.15 >>");
        //Call the function that belongs to Option 10
        break;
        case 11:
        clearPrintTitle();
        lcd.print ("0.18 >>");
        //Call the function that belongs to Option 11
        break;
        case 12:
        clearPrintTitle();
        lcd.print ("0.2 >>");
        //Call the function that belongs to Option 12
        break;
        case 13:
        clearPrintTitle();
        lcd.print ("0.22 >>");
        //Call the function that belongs to Option 13
        break;
    }
}
    //Show the leftMenu on Screen.
void   leftMenu(int x) {
   switch (x) {
      case 1:
        clearPrintTitle();
        lcd.print ("0.01 <<");
        //Call the function that belongs to Option 1
        //break;
           digitalWrite(dir, LOW); 
   digitalWrite(pul, HIGH);
delayMicroseconds(5111);
  digitalWrite(pul, LOW);
  delayMicroseconds(5111);
      case 2:
        clearPrintTitle();
        lcd.print ("0.015 <<");
        //Call the function that belongs to Option 2
        break;
       case 3:
        clearPrintTitle();
        lcd.print ("0.02 <<");
        //Call the function that belongs to Option 3
        break;
      case 4:
        clearPrintTitle();
        lcd.print ("0.03 <<");
        //Call the function that belongs to Option 4
        break;
        case 5:
        clearPrintTitle();
        lcd.print ("0.04 <<");
        //Call the function that belongs to Option 5
        break;
        case 6:
        clearPrintTitle();
        lcd.print ("0.06 <<");
        //Call the function that belongs to Option 6
        break;
        case 7:
        clearPrintTitle();
        lcd.print ("0.08 <<");
        //Call the function that belongs to Option 7
        break;
        case 8:
        clearPrintTitle();
        lcd.print ("0.1 <<");
        //Call the function that belongs to Option 8
        break;
        case 9:
        clearPrintTitle();
        lcd.print ("0.13 <<");
        //Call the function that belongs to Option 9
        break;
        case 10:
        clearPrintTitle();
        lcd.print ("0.15 <<");
        //Call the function that belongs to Option 10
        break;
        case 11:
        clearPrintTitle();
        lcd.print ("0.18 <<");
        //Call the function that belongs to Option 11
        break;
        case 12:
        clearPrintTitle();
        lcd.print ("0.2 <<");
        //Call the function that belongs to Option 12
        break;
        case 13:
        clearPrintTitle();
        lcd.print ("0.22 <<");
        //Call the function that belongs to Option 13
        break;
    }
}

Сейчас думаю ка заставить подавать сигналы для шагового двигателя по кругу.
вот отрезок кода
case 1:
        clearPrintTitle();
        lcd.print ("0.01 <<");
        //Call the function that belongs to Option 1
        //break;
           digitalWrite(dir, LOW); 
   digitalWrite(pul, HIGH);
delayMicroseconds(5111);
  digitalWrite(pul, LOW);
  delayMicroseconds(5111);

доходит до конца и все...

#2 Re: Програмування Arduino » Заготовка электрогитары для токарного » 2016-06-09 13:12:46

#include <Wire.h> // добавляем необходимые библиотеки
#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7 );

// Нажатые кнопки
int button;
const int BUTTON_NONE   = 0;
const int BUTTON_RIGHT  = 1;
const int BUTTON_UP     = 2;
const int BUTTON_DOWN   = 3;
const int BUTTON_LEFT   = 4;
const int BUTTON_SELECT = 5;
int Line_menu=0;

int getPressedButton()
{
  int buttonValue = analogRead(0); // считываем значения с аналогового входа(A0)
  if (buttonValue < 100) {
    return BUTTON_RIGHT; 
  }
  else if (buttonValue < 200) {
    return BUTTON_UP;
  }
  else if (buttonValue < 400){
    return BUTTON_DOWN;
  }
  else if (buttonValue < 600){
    return BUTTON_LEFT;
  }
  else if (buttonValue < 800){
    return BUTTON_SELECT;
  }
  return BUTTON_NONE;
}

void setup()
{
  lcd.begin(16, 2);             
// lcd.print("zelectro.com.ua");       
}

void loop()
{
  button = getPressedButton();
  switch (button)
  {
   // case BUTTON_RIGHT: // при нажатии кнопки выводим следующий текст     
   //    lcd.setCursor(0, 0);
   //    lcd.print("                 ");
   //    lcd.setCursor(0, 0);
   //    lcd.print("BUTTON: RIGHT");
       break;
   // case BUTTON_LEFT:
  //     lcd.setCursor(0, 0);
//      lcd.print("                   ");
//      lcd.setCursor(0, 0);
//      lcd.print("BUTTON: LEFT");
//      break;
    case BUTTON_UP:
    Line_menu=++Line_menu;
    if (Line_menu==2)
    {
      Line_menu=0;
      }
//      lcd.setCursor(0, 0);
//      lcd.print("                  ");
  //     lcd.setCursor(0, 0);
//      lcd.print("BUTTON: UP");
       break;
    case BUTTON_DOWN:
    Line_menu=--Line_menu;
    if (Line_menu==-1)
    {
      Line_menu=1;
      }
//       lcd.setCursor(0, 0);
//      lcd.print("                ");
//      lcd.setCursor(0, 0);
  //     lcd.print("BUTTON: DOWN");
       break;
//   case BUTTON_SELECT:
//      lcd.setCursor(0, 0);
//      lcd.print("                 ");
//      lcd.setCursor(0, 0);
//      lcd.print("BUTTON: SELECT");
//      break;
  }
{
if (Line_menu=0)
lcd.clear();
       lcd.setCursor(0, 0);
       lcd.print("Podacha mm/ob");
       lcd.setCursor(0, 1);
      lcd.print("0.01");
     delay (1000);
  if (Line_menu=1)
  lcd.clear();
       lcd.setCursor(0, 0);
       lcd.print("Podacha mm/ob");
       lcd.setCursor(0, 2);
      lcd.print("0.01");
      delay(1000);
 
}
}

Вот код но при нажатии вверх вниз на практике  не переключает меню светит как будто Line_menu=0

#3 Програмування Arduino » Заготовка электрогитары для токарного » 2016-06-08 09:57:39

Vik300001
відповідей: 4

Здравствуйте!
Есть необходимость создать скетч для электронной гитары.
Ессть ардуино мега, дисплей с кнопками на одной плате. подключен драйвер и шаговый...
Для начала хочу создать одноуровневое меню с перечнем подач (0,01мм/об-0,2 мм/об.)
кнопками вверх вниз "бегать" по строкам и кнопками вправо влево выполнять команду ( включать шаговый двигатель, рабочая заготовка уже есть).
Голова уже кипит, везде примеры сложные, а мне надо попроще.
Может кто-то сможет кинуть пример с двумя строками  а я бы может и дописал что мне нужно.
П.С. В гугл не посылайте, я только что от тута.

#4 Re: Програмування Arduino » Электронная рулетка (длинномер) » 2016-05-13 08:12:24

К двигателю прикручиваете Энкодер, оптимально с шагом 1 градус, двигатель соеденяете через контактор, все это монтируете к ардуине с дисплеем и кнопочками, а дальше все програмно решается.

#5 Re: Програмування Arduino » Код новогодней гирлянды » 2016-04-24 16:42:49

Разобрался..
Вот код на три режима

/*
Мигаем светодиодами на контактах со 2 по 9
*/
// Setup - этот блок выполняется лишь один раз, при запуске скетча
int del=200; // присваиваем переменной "del" значение 100, это будет в дальнейшем являться задержкой в 100 миллисекунд
int switchPin =10;
int val;

int state;
int c;

void setup()
{
  // устанавливаем цыфровые выводы со 2 по 9 как выходы (далее мы рассмотрим как это сделать более простым способом)
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);

  pinMode(switchPin, INPUT);
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
  digitalWrite(6, LOW);
  digitalWrite(7, LOW);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
}
// блок цикла - данный блок будет повторяться бесконечно, до тех пор пока вы не отключите питание
void loop()
{
  state = digitalRead(switchPin);

  if (state == HIGH && c == 0) // нажали кнопку
  {
    c = 1;
  }
  if (state == LOW && c == 1) // отпустили кнопку
  {
    val = ++val;
    if (val == 3)
    {
      val = 0;
    }
    c = 0;
  }

  if (val == 0) // Мигание 1

{
  digitalWrite(2, HIGH);   // включить светодиод на контакте 2
  delay(del);              // выполнить задержку длительностью "del" ("del" как мы помним равна 100 миллисекунд)
  digitalWrite(2, LOW);    // выключить светодиод
  digitalWrite(3, HIGH);   // включить светодиод на контакте 3
  delay(del);              // выполнить задержку
  digitalWrite(3, LOW);    // выключить светодиод
  digitalWrite(4, HIGH);   // включить светодиод на контакте 4
  delay(del);              // выполнить задержку
  digitalWrite(4, LOW);    // выключить светодиод
  digitalWrite(5, HIGH);   // включить светодиод на контакте 5
  delay(del);              // выполнить задержку
  digitalWrite(5, LOW);    // выключить светодиод
  digitalWrite(6, HIGH);   // включить светодиод на контакте 6
  delay(del);              // выполнить задержку
  digitalWrite(6, LOW);    // выключить светодиод
  digitalWrite(7, HIGH);   // включить светодиод на контакте 7
  delay(del);              // выполнить задержку
  digitalWrite(7, LOW);    // выключить светодиод
  digitalWrite(8, HIGH);   // включить светодиод на контакте 8
  delay(del);              // выполнить задержку
  digitalWrite(8, LOW);    // выключить светодиод
  digitalWrite(9, HIGH);   // включить светодиод на контакте 9
  delay(del);              // выполнить задержку
  digitalWrite(9, LOW);    // выключить светодиод
  digitalWrite(8, HIGH);   // включить светодиод на контакте 8
  delay(del);              // выполнить задержку
  digitalWrite(8, LOW);    // выключить светодиод
  digitalWrite(7, HIGH);   // включить светодиод на контакте 7
  delay(del);              // выполнить задержку
  digitalWrite(7, LOW);    // выключить светодиод
  digitalWrite(6, HIGH);   // включить светодиод на контакте 6
  delay(del);              // выполнить задержку
  digitalWrite(6, LOW);    // выключить светодиод
  digitalWrite(5, HIGH);   // включить светодиод на контакте 5
  delay(del);              // выполнить задержку
  digitalWrite(5, LOW);    // выключить светодиод
  digitalWrite(4, HIGH);   // включить светодиод на контакте 4
  delay(del);              // выполнить задержку
  digitalWrite(4, LOW);    // выключить светодиод
  digitalWrite(3, HIGH);   // включить светодиод на контакте 3
  delay(del);              // выполнить задержку
  digitalWrite(3, LOW);    // выключить светодиод
}

 if (val == 1) // Если мы кнопку 1 раз нажали и отпустили
 {
  digitalWrite(2, HIGH);   // включить светодиод на контакте 2
  delay(del);              // выполнить задержку длительностью "del" ("del" как мы помним равна 100 миллисекунд)
  digitalWrite(2, LOW);    // выключить светодиод
  digitalWrite(9, HIGH);   // включить светодиод на контакте 3
  delay(del);              // выполнить задержку
  digitalWrite(9, LOW);    // выключить светодиод
  digitalWrite(3, HIGH);   // включить светодиод на контакте 4
  delay(del);              // выполнить задержку
  digitalWrite(3, LOW);    // выключить светодиод
  digitalWrite(8, HIGH);   // включить светодиод на контакте 5
  delay(del);              // выполнить задержку
  digitalWrite(8, LOW);    // выключить светодиод
  digitalWrite(4, HIGH);   // включить светодиод на контакте 6
  delay(del);              // выполнить задержку
  digitalWrite(4, LOW);    // выключить светодиод
  digitalWrite(7, HIGH);   // включить светодиод на контакте 7
  delay(del);              // выполнить задержку
  digitalWrite(7, LOW);    // выключить светодиод
 digitalWrite(5, HIGH);   // включить светодиод на контакте 7
  delay(del);              // выполнить задержку
  digitalWrite(5, LOW);    // выключить светодиод
 digitalWrite(6, HIGH);   // включить светодиод на контакте 7
  delay(del);              // выполнить задержку
  digitalWrite(6, LOW);    // выключить светодиод
  
  }
  if (val == 2) // Если мы кнопку 2 раз нажали и отпустили
  {


  digitalWrite(2, HIGH);   // включить светодиод на контакте 2
  digitalWrite(3, HIGH);   // включить светодиод на контакте 3
   digitalWrite(4, HIGH);   // включить светодиод на контакте 4
digitalWrite(5, HIGH);   // включить светодиод на контакте 5
digitalWrite(6, HIGH);   // включить светодиод на контакте 5
   digitalWrite(7, HIGH);   // включить светодиод на контакте 5
 digitalWrite(8, HIGH);   // включить светодиод на контакте 6
   digitalWrite(9, HIGH);   // включить светодиод на контакте 7
  delay(del);              // выполнить задержку длительностью "del"
 digitalWrite(2, LOW);   // выключить светодиод на контакте 2
  digitalWrite(3, LOW);   // выключить светодиод на контакте 3
   digitalWrite(4, LOW);   // выключить светодиод на контакте 4
digitalWrite(5, LOW);   // выключить светодиод на контакте 5
digitalWrite(6, LOW);   // выключить светодиод на контакте 5
   digitalWrite(7, LOW);   // выключить светодиод на контакте 5
 digitalWrite(8, LOW);   // выключить светодиод на контакте 6
   digitalWrite(9, LOW);   // выключить светодиод на контакте 7
delay(del);              // выполнить задержку длительностью "del"
 
 }
}

#6 Re: Програмування Arduino » Код новогодней гирлянды » 2016-04-22 11:31:49

Еще.
Кнопка как подключена? Резистор есть?

Да, есть резистор

#7 Програмування Arduino » Код новогодней гирлянды » 2016-04-21 20:42:07

Vik300001
відповідей: 10

Здравствуйте! Собрал из кусочков код новогодней гирлянды, светодиоды подключены к пинам 2-9, кнопка к 10.
Мерцание светодиодов должно меняться после нажатия кнопки, всего три режима. Но на самом деле работает только первый режим, программа на кнопку не реагирует. Прошу помощи у знающих людей...
/*
Мигаем светодиодами на контактах со 2 по 9
*/
// Setup - этот блок выполняется лишь один раз, при запуске скетча
int del=100; // присваиваем переменной "del" значение 100, это будет в дальнейшем являться задержкой в 100 миллисекунд
int switchPin =10;
int val;

int state;
int c;

void setup()
{
  // устанавливаем цыфровые выводы со 2 по 9 как выходы (далее мы рассмотрим как это сделать более простым способом)
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(switchPin, INPUT);
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
  digitalWrite(6, LOW);
  digitalWrite(7, LOW);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
}
// блок цикла - данный блок будет повторяться бесконечно, до тех пор пока вы не отключите питание
void loop()
{
  state = digitalRead(switchPin);

  if (state == HIGH && c == 0) // нажали кнопку
  {
    c = 1;
  }
  if (state == LOW && c == 1) // отпустили кнопку
  {
    val = ++val;
    if (val == 2)
    {
      val = 0;
    }
    c = 0;
  }

  if (val == 0) // Мигание 1

{
  digitalWrite(2, HIGH);   // включить светодиод на контакте 2
  delay(del);              // выполнить задержку длительностью "del" ("del" как мы помним равна 100 миллисекунд)
  digitalWrite(2, LOW);    // выключить светодиод
  digitalWrite(3, HIGH);   // включить светодиод на контакте 3
  delay(del);              // выполнить задержку
  digitalWrite(3, LOW);    // выключить светодиод
  digitalWrite(4, HIGH);   // включить светодиод на контакте 4
  delay(del);              // выполнить задержку
  digitalWrite(4, LOW);    // выключить светодиод
  digitalWrite(5, HIGH);   // включить светодиод на контакте 5
  delay(del);              // выполнить задержку
  digitalWrite(5, LOW);    // выключить светодиод
  digitalWrite(6, HIGH);   // включить светодиод на контакте 6
  delay(del);              // выполнить задержку
  digitalWrite(6, LOW);    // выключить светодиод
  digitalWrite(7, HIGH);   // включить светодиод на контакте 7
  delay(del);              // выполнить задержку
  digitalWrite(7, LOW);    // выключить светодиод
  digitalWrite(8, HIGH);   // включить светодиод на контакте 8
  delay(del);              // выполнить задержку
  digitalWrite(8, LOW);    // выключить светодиод
  digitalWrite(9, HIGH);   // включить светодиод на контакте 9
  delay(del);              // выполнить задержку
  digitalWrite(9, LOW);    // выключить светодиод
  digitalWrite(8, HIGH);   // включить светодиод на контакте 8
  delay(del);              // выполнить задержку
  digitalWrite(8, LOW);    // выключить светодиод
  digitalWrite(7, HIGH);   // включить светодиод на контакте 7
  delay(del);              // выполнить задержку
  digitalWrite(7, LOW);    // выключить светодиод
  digitalWrite(6, HIGH);   // включить светодиод на контакте 6
  delay(del);              // выполнить задержку
  digitalWrite(6, LOW);    // выключить светодиод
  digitalWrite(5, HIGH);   // включить светодиод на контакте 5
  delay(del);              // выполнить задержку
  digitalWrite(5, LOW);    // выключить светодиод
  digitalWrite(4, HIGH);   // включить светодиод на контакте 4
  delay(del);              // выполнить задержку
  digitalWrite(4, LOW);    // выключить светодиод
  digitalWrite(3, HIGH);   // включить светодиод на контакте 3
  delay(del);              // выполнить задержку
  digitalWrite(3, LOW);    // выключить светодиод
}

if (val == 1) // Если мы кнопку 1 раз нажали и отпустили
{
  digitalWrite(2, HIGH);   // включить светодиод на контакте 2
  delay(del);              // выполнить задержку длительностью "del" ("del" как мы помним равна 100 миллисекунд)
  digitalWrite(2, LOW);    // выключить светодиод
  digitalWrite(5, HIGH);   // включить светодиод на контакте 3
  delay(del);              // выполнить задержку
  digitalWrite(5, LOW);    // выключить светодиод
  digitalWrite(3, HIGH);   // включить светодиод на контакте 4
  delay(del);              // выполнить задержку
  digitalWrite(3, LOW);    // выключить светодиод
  digitalWrite(6, HIGH);   // включить светодиод на контакте 5
  delay(del);              // выполнить задержку
  digitalWrite(6, LOW);    // выключить светодиод
  digitalWrite(4, HIGH);   // включить светодиод на контакте 6
  delay(del);              // выполнить задержку
  digitalWrite(4, LOW);    // выключить светодиод
  digitalWrite(7, HIGH);   // включить светодиод на контакте 7
  delay(del);              // выполнить задержку
  digitalWrite(7, LOW);    // выключить светодиод
  digitalWrite(5, HIGH);   // включить светодиод на контакте 8
  delay(del);              // выполнить задержку
  digitalWrite(5, LOW);    // выключить светодиод
  digitalWrite(8, HIGH);   // включить светодиод на контакте 9
  delay(del);              // выполнить задержку
  digitalWrite(8, LOW);    // выключить светодиод
  digitalWrite(6, HIGH);   // включить светодиод на контакте 8
  delay(del);              // выполнить задержку
  digitalWrite(6, LOW);    // выключить светодиод
  digitalWrite(9, HIGH);   // включить светодиод на контакте 7
  delay(del);              // выполнить задержку
  digitalWrite(9, LOW);    // выключить светодиод
  digitalWrite(7, HIGH);   // включить светодиод на контакте 6
  delay(del);              // выполнить задержку
  digitalWrite(7, LOW);    // выключить светодиод
  digitalWrite(8, HIGH);   // включить светодиод на контакте 5
  delay(del);              // выполнить задержку
  digitalWrite(8, LOW);    // выключить светодиод
  digitalWrite(9, HIGH);   // включить светодиод на контакте 4
  delay(del);              // выполнить задержку
  digitalWrite(9, LOW);    // выключить светодиод
  }
  if (val == 2) // Если мы кнопку 2 раз нажали и отпустили
  {
  digitalWrite(2, HIGH);   // включить светодиод на контакте 2
  delay(del);              // выполнить задержку длительностью "del" ("del" как мы помним равна 100 миллисекунд)
  digitalWrite(2, LOW);    // выключить светодиод
  digitalWrite(4, HIGH);   // включить светодиод на контакте 3
  delay(del);              // выполнить задержку
  digitalWrite(4, LOW);    // выключить светодиод
  digitalWrite(6, HIGH);   // включить светодиод на контакте 4
  delay(del);              // выполнить задержку
  digitalWrite(6, LOW);    // выключить светодиод
  digitalWrite(8, HIGH);   // включить светодиод на контакте 5
  delay(del);              // выполнить задержку
  digitalWrite(8, LOW);    // выключить светодиод
  digitalWrite(9, HIGH);   // включить светодиод на контакте 6
  delay(del);              // выполнить задержку
  digitalWrite(9, LOW);    // выключить светодиод
  digitalWrite(7, HIGH);   // включить светодиод на контакте 7
  delay(del);              // выполнить задержку
  digitalWrite(7, LOW);    // выключить светодиод
  digitalWrite(4, HIGH);   // включить светодиод на контакте 8
  delay(del);              // выполнить задержку
  digitalWrite(5, LOW);    // выключить светодиод
  digitalWrite(3, HIGH);   // включить светодиод на контакте 9
  delay(del);              // выполнить задержку
  digitalWrite(3, LOW);    // выключить светодиод
}
}

Підвал форуму