Robotyka2

Komunikacja z Arduino

int kolejnaLiczba = 0;

void setup() {
      Serial.begin(9600);
     Serial.println("Witaj w programie odliczającym. A teraz kolejno odlicz!");
}

void loop() {
      Serial.println(kolejnaLiczba);
      kolejnaLiczba = kolejnaLiczba + 1;
      delay(1000);
}

Aby zobaczyć efekt wybierz „Narzędzia”, a następnie „Monitor portu szeregowego” lub wciśnij na klawiaturze kombinację „Ctrl+Shift+M”.
Zmienna „kolejnaLiczba” to zmienna, w której zapisujemy liczbę wykonanych do tej pory iteracji. W funkcji „setup()” polecenie „Serial.begin(9600)” służy do otwarcia portu szeregowego i ustanawia prędkość przesyłu danych. Kolejna funkcja „Serial.println()” to funkcja umożliwiająca wyświetlenie informacji na ekranie komputera. W naszym przypadku jest nią „Witaj w programie odliczającym. A teraz kolejno odlicz!".
W funkcji „loop()” wyświetlamy daną liczbę iteracji <Serial.println(kolejnaLiczba)> i zwiększamy wartość zmiennej „kolejnaLiczba” o 1 <kolejnaLiczba = kolejnaLiczba + 1>. Na końcu czekamy jedną sekundę.

W drugim przykładzie pokażemy jak wyświetlić na ekranie liczby wpisane przez nas przy użyciu klawiatury i w jaki sposób port szeregowy wykorzystać do sterowania częstością migania diody.

int predkosc = 10;
int dioda = 13;

void setup() 
{
    Serial.begin(9600);
    pinMode(dioda, OUTPUT);
}

void loop() {
    if (Serial.available()){
        predkosc = Serial.parseInt();
    }
    Serial.println(predkosc);
    digitalWrite(dioda, HIGH);
    delay(predkosc);
    digitalWrite(dioda, LOW);
    delay(predkosc);
}

Program zaczynamy od ustawienia początkowego czasu włączenia lub wyłączenia diody oraz złącza, które będziemy wykorzystywać. W funkcji „setup()”, podobnie jak poprzednio, otwieramy port szeregowy i ustawiamy złącze diody na „OUTPUT”. Polecenie „if (Serial.available())” w tym przykładzie sprawdza, czy dane zostały już wprowadzone (wpisane). Jeśli tak to obierane dane zamienia na liczbę całkowitą „Serial.parseInt()” i zapisuje jako nowy czas w zmiennej „predkosc”. Dzięki linii „Serial.println(predkosc)” na ekranie wyświetlany jest aktualny czas jednego włączenia diody. Dioda miga w zależności od wartości zmiennej „predkosc”.

Czujnik koloru

czujniklinii1_bb.png
int czujnik = 9;
int oswietlenie = 0;

void setup(){
    Serial.begin(9600);
}
void loop(){
    oswietlenie = digitalRead(czujnik);
    Serial.println(oswietlenie);
    delay(500);
}
int oswietlenie = 0;
void setup(){
    Serial.begin(9600);
}

void loop(){
    oswietlenie = analogRead(A0);
    if(oświetlenie > 600){
        Serial.println("kolor czarny");
    }
    else{
        Serial.println("kolor bialy");
    }
    delay(500);  
}

Czujnik odległości

czujnikodl_bb.png
void setup (){
Serial.begin (9600);
        pinMode (A0, INPUT);
}

void loop (){
        Serial.println (analogRead (A0));
        delay (1000);
}
int pomiar = 0;
int odleglosc = 0;

void setup(){
Serial.begin(9600);
        pinMode(A0, INPUT);
}

void loop(){
    pomiar = analogRead (A0);
    if (pomiar > 800){
        Serial.println("Obiekt zbyt daleko czujnika!");  
    }
    else{
        Serial.print (odleglosc);
        Serial.println(" mm");
    }
    delay (1000);
}
int pomiar = 0;
int odleglosc1 = 0;
int odleglosc2 = 0;
int zmiana = 0;

void setup(){
Serial.begin (9600);
    pinMode (A0, INPUT);
}

void loop(){
    pomiar1 = analogRead(A0);
    delay(500);
    pomiar2 = analogRead(A0);

    zmiana = abs(pomiar2 - pomiar1);
    if (zmiana > 100){
        Serial.println("RUCH!");  
    }
}
Strona na licencji Creative Commons Attribution-ShareAlike 3.0. Autorzy: A. Czoska, M. Komosiński, B. Kowalczyk, A. Kupś, M. Lubawy