Циљ вежбе


Научити како контролисати Arduinа уз помоћ серијског порта


Задаци вежбе


1. Креирање скеча за управљање уграђеном диодом на Arduinu кроз серијски порт
2. Упознавање са монитором серијског порта
3. Обавештење о промени стања диоде


Инструменти за испуњавање вежбе

1. Рачунар
2. Платформа Arduino са USB излазом (на пример, Arduinu UNO) и уграђена диода на 13ом пину


Теоријски део

 

Додати теорију за серијски порт

Ако хоћемо да путем програма делујемо на серијски порт за то се користе објекти стандардне библиотеке Arduina под називима Serial, Serial1, Serial2 и тако даље. По правилу на свакој платформи постоји бар један серијски порт којем одговара објекат Serial. Тај порт при прикључивању платфоме рачунару дозвољава да се информације између њега и даног рачунара размењују и то преко USBa. Са друге стране ако је микроконтролер одвојен од рачунара, Serial дозвољава размену информација са другим уређајима путем дигиталних пинова 0 и 1. Изузетак је овде само Arduino Leonardo, код којег се Serial увек користи при узајамном деловању путем USBa, он за дигиталне пинове користи објекат Serial1.

Задатак: Сакупите информације о томе код којих микроконтролера постоје допунски објекти за серијске портове (Serial, Serial1, Serial2...) и на које портове се они прикључују
 

 


Извршавање вежбе

1. Креирање скеча за управјање диодом на платформи путем серијског порта

Креирамо нови скеч и чувамо га под називом SerialTest. Проверавамо да ли су изабрани одговарајућа платформа и порт. 
У функцији setup() иницирамо серијки порт 13 за управљање диодом:

Serial.begin(9600);
pinMode(13, OUTPUT);

У функцији loop() проверавамо да ли има података у серијском порту. Читамо податке и ако нам је стигао символ "1", то је знак да се укључује диода, у свим осталим случајевима биће искључена

while(Serial.avaliable())
      digitalWrite(13,(Serial.read()=='1')?HIGH:LOW);

 


2.Упознавање са монитором серијског порта

Отварамо монитор серијског порта на следећи начин: Инструменты => Монитор порта или дугме   на врху десно. Ако сте све добро урадили треба да вам се појави следећи прозор:

У даном прозору се приказује информација добијена од контролера. У пољу на врху, лево од дугмета "Отправить"(послати), се може писати текст који се шаље микроконтролеру. Доле, у десном прозору подешава се брзина размене информација и указује се да ли ће се тексту додати симболи превода реда NL, CR или оба одједном, или ће текст бити послат такав какав јесте. При овој радњи потребно је поставии режим "Нет конца строки"(нема краjа реда). 


3.Обавештење о промени стања диоде

Дорадићемо мало скеч како би добили информацију о томе када се мења стање наше диоде тј. кад је она укључена, а кад искључена. Да би то спровели у дело морамо променити код у функцији loop() на следећи начин:

while(Serial.available())
{
    char c=Serial.read();
    if (c=='1')
      {
         digitalWrite(13,HIGH);
         Serial.println("Led on");
      }
    else
      {
         digitalWrite(13,LOW);
         Serial.println("Led off");
      }
}

Проверавамо монитор порта и уверавамо се да ли нам стижу обавештења када се диода пали и гаси. 

Допунски задатак: Креирати скеч за управљање диодом путем серијског порта уз помоћ команди "on" и "off" 
Помоћ: Метода Serial.read() враћа само један симбол, а ако је од рачунара дошло неколико сибола, онда ће се тело цикла while(Serial.available()) испуњавати неколико пута