Циљ вежбе:
Научити како се користи релеј и како се он повезује са Arduinom
Задаци вежбе:
1. Повезивање шеме
2. Писање програма
Инструменти које ћемо користити у вежби:
1. Контролер
2. Макетна платформа
3. Отпорник од 10 кило ома
4. Дугме
5. Отпорник од 220 ома
6. Релеј
7. Диода
8. Каблови
Израда вежбе:

1. Повезивање шеме

Шему треба овезати на следећи начин: 
1. Утачињемо дугме
2. Утаћи отпорник на једну ножицу дугмета, а на другу извести кабал који ће касније ићи на 5 волти
3. Ножицу дугмета где је отпорник треба повезати са 4тим пином
4. Утаћи диоду
5. Повезујемо отпорник и уземљење са диодом
6. Повезујемо општу земљу и напон са Аrduinom
7. Повезујемо уземљење, напон и други пин са релејем
8. Повезујемо канал и напон за диоду са релеја
9. Укључујемо микроконтролер

Ево видео где је лепо објашњено и приказано како се повезује наша шема:

2. Писање програма
Код програма:

const int button = 4; //Дугме на пину 4
const int relay = 2; //Релеј на пину 2
boolean lastButton = LOW; //Последња вредност дугмета
boolean stableButton = LOW; //Стабилизирована вредност
boolean voltage = LOW; //Предани напон или не

void setup()
   {
     pinMode(button, INPUT);  //Дугме је INPUT
     pinMode(relay, OUTPUT); //Релеј је OUTPUT
   }

void loop() 
  {
     stableButton = stable(lastButton); //Стабилизированa вредност дугмета
     if (stableButton == HIGH && lastButton == LOW) 
        { //Укључујемо дугме
            voltage = !voltage; //Промењиви напон, ако је био укључен онда га треба искључита, а ако је био искључен онда га треба укључити
            //Предати текућу вредност напона или његовог одсуства на релеј
           digitalWrite(relay, voltage);
        }
     lastButton = stableButton; //Запамтити последњу вредност дугмета
  }

boolean stable(boolean valueIn)
   { //Функција стабилизовања дугмета
      boolean valueButton = digitalRead(button); //Прочитати вредност дугмета
      if (valueIn != valueButton) 
          {   //Ако се то што је ушло у функцију разликује од онога што је прочитано
             delay(5); //Пауза од 5 милисекунди
             valueButton = digitalRead(button);  //Поново прочитати вредност 
          }
      return valueButton; //Вратити вредност
    }

Детаљан опис кода погледајте у следећем видеу:


 

Питање: Како се решити пометње контаката дугметa?

 

 

Питање:Уз помоћ које функције се затвара коло у релеју?