Циљ вежбе:
Научити како може да се искористи колекторски мотор
Задаци вежбе:
У пракси применити колекторски мотор
Инструменти које ћемо користити у вежби:
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; //Враћање вредности, вредност излази из функције
}
Детаље можете погледати у следећем снимку: