Циљ вежбе:
Научити како може да се искористи колекторски мотор
Задаци вежбе:
У пракси применити колекторски мотор
Инструменти које ћемо користити у вежби:
1. Контролер
2. Макетна платформа
3. отпорник од 10 кило ома
4. Дугме
5. Транзистор
6. Исправљачка диода
7. Колекторски мотор
8. Каблови
9. Вентилатор


Израда вежбе:
Шему треба повезати на следећи начин:

И још на мотор треба поставити вентилатор


Писање програма:

const int motor = 3; //Објављивање трећег пина који одговара мотору
const int button1 = 4; //Пин 4 одговара првом дугмету (смањење брзине)
const int button2 = 5; //Пин 5 за друго дугме (увећање брзине)
boolean lastButton1 = LOW; //место где се чува последња вредност забележена са дугмета 1
boolean lastButton2 = LOW; //место где се чува последња вредност забележена са дугмета 2
int speedMotor = 0; //Брзина мотора
void setup()
   {
       pinMode(motor, OUTPUT); //Мотор се дефинише као OUTPUT
       pinMode(button1, INPUT); //Дугмад се дефинишу као INPUT
       pinMode(button2, INPUT); 
   }
void loop()
   {        
       //Стабилизировање вредности са дугмета 1 програмским путем у функциј stable() (то се ради да не би дошло до пометње код контаката дугмета) 
       boolean stableButton1 = stable(lastButton1, button1); 
       //Стабилизировање вредности са дугмета 2
       boolean stableButton2 = stable(lastButton2, button2);
       //Укључивање дугмета 1
       if (stableButton1 == HIGH && lastButton1 == LOW)
          {
              speedMotor = speedMotor – 65; //Умењивање брзине  
          }
       //Укључивање дугмета 2
       if (stableButton2 == HIGH && lastButton2 == LOW) 
          {
              speedMotor = speedMotor + 65; //Повећавање брзине
          }
       //Ограничавање брзине тако да би она била у границама од 0 до 255
       if (speedMotor < 0 ) speedMotor = 0;
       else if (speedMotor > 255) speedMotor = 255;
       //Предавање вредности на мотор
       analogWrite(motor, speedMotor);
       //Установа вредности дугмића
       lastButton1 = stableButton1;
       lastButton2 = stableButton2;
   }
//Функција стабилизовања дугмета
boolean stable(boolean valueIn, int button) //Функција има два параметра
   { 
       boolean valueButton = digitalRead(button); //Прочитати вредност дугмета
       //Ако се то што је ушло у функцију разликује од онога што је прочитано 
       if (valueIn != valueButton)
          {  
             delay(5); //Пауза од 5 милисекунди
             valueButton = digitalRead(button);  //Поновно читање вредности
          }
       return valueButton; //Враћање вредности, вредност излази из функције
   }

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