ze względu na jego zaokrąglony kształt musimy go umieścić w innych bloczkach np. ze zmienną: lub jeśli chcemy sprawdzić jaki właśnie znak odczytujemy:

Podobne dokumenty
Uwaga: dioda na wyjściu 13 świeci gdy na wyjście podamy 0.

Schemat blokowy architektury AVR

Wstęp do programowania

Klawiatura matrycowa

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Warunek wielokrotnego wyboru switch... case

PRUS. projekt dokumentacja końcowa

Lekcja 3: Pierwsze kroki z Pythonem. Pętle

Podstawy Programowania Podstawowa składnia języka C++

SCL > Pin 21 SDA > Pin 20 VCC > 5V GND > GND

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Gra Labirynt - Zajęcia 4

kodowanienaekranie.pl

XII. Warunek wielokrotnego wyboru switch... case

PHP: bloki kodu, tablice, obiekty i formularze

Instrukcja do programu BASIC PR-02

lider projektu: finansowanie:

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

MoboLab roboty i tablety w Twojej szkole Obszar I. Zakoduj robota

Zmierzyć się z żywiołami, czyli jak zbudować własną stację badawczą! Zaczynamy! Pole komunikatów programu. Nawigacja w programie Arduino

Tematem projektu jest oparty na Arduino zegar pokazujący godzinę oraz datę.

Laboratorium Komputerowe Systemy Pomiarowe

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

2. Łańcuchy tekstowe w PHP

Opis konfiguracji ST do współpracy z kolektorem DENSO BHT 8000

Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio.

Informatyka II. Laboratorium Aplikacja okienkowa

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

LABORATORIUM - ELEKTRONIKI Układy mikroprocesorowe cz.2

Oscyloskop (007; ; arduino; processing)

Podstawy Programowania C++

Instrukcje sterujące

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3

1 Podstawy c++ w pigułce.

Wybór urządzenia/ Scanner Selection Screen: Skrócony Opis Programu MetroSet 2

Tworzenie prostej etykiety i synchronizacja etykiet z wagą. AXIS Sp. z o.o. Kod produktu:

Część XV C++ Ćwiczenie 1

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

Uczeń/Uczennica po zestawieniu połączeń zgłasza nauczycielowi gotowość do sprawdzenia układu i wszystkich połączeń.

Umieszczanie kodu. kod skryptu

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

Spis treści. S t r o n a 2

4. Wyrzuć wyjątek jeśli zmienna ist nie istnieje bloki: try, catch i wyrzucanie wyjątku

Tworzenie prostej etykiety i synchronizacja etykiet z wagą. AXIS Sp. z o.o. Kod produktu:

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

lekcja 8a Gry komputerowe MasterMind

Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

Programowanie mikroprocesorów w systemie Arduino. Instrukcja do ćwiczenia laboratoryjnego

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Udostępnianie drukarek za pomocą systemu Windows (serwer wydruku).

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

WSPÓŁPRACA WAGA EB DRUKARKA ETYKIET LP-50

1 Wielokrotne powtarzanie tych samych operacji

while (test) instrukcja; int i=0; while (i<10) i++; dopóki test prawdziwy wykonuj instrukcję Wykonano: 35% / \ fałsz test prawda instrukcja

Podstawy techniki mikroprocesorowej

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

lider projektu: finansowanie:

INSTRUKCJE REPETYCYJNE PĘTLE

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

Instrukcje sterujące. Programowanie Proceduralne 1

Każde wykonanie bloku instrukcji nazywamy pojedynczym przebiegiem lub iteracją pętli.

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

INSTRUKCJA PODŁĄCZENIA/OBSŁUGI i KONFIGURACJI LICZNIKA KLIENTÓW w oparciu o stertownik Internetowy PLC STERBOX

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Za pomocą niniejszej instrukcji baza programu MAK zostanie przygotowania do eksportu na METALIB.

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Pętle. Dodał Administrator niedziela, 14 marzec :27

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

UNIFON podręcznik użytkownika

DS-2410 z zasilaczem 230/12V 2A - bez zasilania rezerwowego do zamontowania w obudowie tripodu, szlabanu. Na płytce kontrolera są zamontowane:

Zastosowanie moduł Wi-Fi ESP-12 (1) Wirtualny interfejs szeregowy

lider projektu: finansowanie:

Laboratorium 2: Pętle i instrukcje warunkowe. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

TRX ELARM Łódź ul. Mochnackiego 34 tel/fax +48 (42)

ĆWICZENIE 5 WPŁYW KONWEKCJI NA ROZKŁAD TEMPERATURY W POMIESZCZENIU

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Instrukcja obsługi Bezprzewodowy profesjonalny czytnik kodów ze stacją dokującą HD8900

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

dokument DOK wersja 1.0

Instrukcja podłączenia listew IP i Firewall Routera (FR) w LCO v03

Instrukcja obsługi Profesjonalny bezprzewodowy czytnik kodów HD2000

1 Przygotował: mgr inż. Maciej Lasota

Przegląd rozwiązań z oferty firmy 4D Systems

CENTRALA STERUJĄCA SMART CONTROL

Programowanie xcomfort Cz. I Eaton Corporation. All rights reserved.

Programowanie obiektowe i C++ dla matematyków

Transkrypt:

Ostatnio kontynuowaliśmy temat "rozmawiania" z Arduino (komunikacji z wykorzystaniem portu szeregowego), która jest nam o tyle potrzebna, że właśnie w ten sposób później będziemy rozmawiać z płytką wykorzystując komunikację bezprzewodową. Przypomnieliśmy sobie, że konieczne tutaj jest używanie obiektu Serial, który na samym początku działania programu trzeba włączyć metodą: Serial.begin(9600); TinkerCad robi to za nas. Dzięki temu później jeśli coś wyślemy do Arduino, procesor może to odczytać metodą: Serial.read(); W TinkerCadzie za odczytywanie odpowiada bloczek: ze względu na jego zaokrąglony kształt musimy go umieścić w innych bloczkach np. ze zmienną: lub jeśli chcemy sprawdzić jaki właśnie znak odczytujemy: najlepiej obie te metody połączyć i zrobić to tak:

49 nie jest tu przypadkową wartością. To zakodowany numer jakiegoś znaku. Wszystkie znaki jakie przesyłamy portem szeregowym są zakodowane tak zwanym kodem ASCII. Tabelę z kodami można sprawdzić np. na Wikipedii: https://pl.wikipedia.org/wiki/ascii lub w trochę bardziej czytelnej wersji np. tutaj: https://www.bryk.pl/wypracowania/pozostale/informatyka/15912-tabela-znakow-w-standardo wych-kodach-ascii.html Liczba 49 odpowiada cyfrze '1'. Zawsze kiedy wysyłamy '1', Arduino otrzymuje liczbę 49. Jeśli wyślemy dwie jedynki, bo chcemy wysłać liczbę '11' ona dostanie dwa razy liczbę 49. A napis "hej" to kolejno 168 165 170. Pytanie kontrolne*: Jaką liczbę Arduino dostanie, gdy wyślemy literę 'a', a jaką jeśli wyślemy 'A'? Niestety w TinkerCadzie chcąc się dogadać z płytką Arduino musimy sprawdzać jaki kod ASCII odpowiada poszczególnym znakom. Programując Arduino tekstowo możemy sobie sprawę ułatwić pisząc '1' (w apostrofach) zamiast 49. Przykładowo: if (zmienna == 1) { //tutaj sprawdzamy czy zmienna jest równa liczbie 1 digitalwrite(13, HIGH); //dioda zapali się, jeśli zmienna będzie równa 1 if (zmienna == '1') {//tutaj sprawdzamy czy zmienna jest równa kodowi ASCII znaku '1' digitalwrite(13, HIGH); //dioda zapali się, jeśli zmienna będzie równa 49 Zanim przejdziemy do programowania warto przypomnieć także, że zanim użyjemy bloczka " odczytaj z interfejsu szeregowego " albo metody Serial.read(); powinniśmy sprawdzić, czy Arduino w ogóle ma co odczytywać. Służy do tego metoda Serial.available() albo bloczek: Na ostatnich zajęciach tworzyliśmy program prostego "Menu", dzięki któremu mogliśmy za pomocą wysyłanych numerów sterować tym co robi płytka Arduino, na przykład: jeśli wysyłaliśmy '1' dioda się zapala, jeśli wysyłaliśmy '2' dioda miała się zgasić, jeśli wysłaliśmy '3' odczytaliśmy potencjometr itp. Każdy mógł stworzyć takie menu jakie chciał.

W Arduino wpisywaliśmy użytkownikowi menu używając jednej z funkcji: Serial.print( "wiadomość bez przejścia do nowej linii" ); Serial.println( "wiadomość z przejściem do nowej linii" ); W Tinkercadzie mogło to wyglądać np. tak: Jednak te funkcje dodane w funkcji loop() sprawiają, że nasze menu wypisuje się w nieskończoność non stop, co jest raczej uciążliwe. Dlatego na zajęciach zastanawialiśmy się jak sprawić, żeby Arduino wypisało menu jeden raz, a potem poczekać, aż użytkownik wyśle jakiś znak. Pomocny okazał się tutaj bloczek "Powtórz dopóki" czyli pętla while(){

która zablokowała działanie naszego programu (powtarza "nic nie robienie") tak długo, aż użytkownik czegoś nie wyśle. Po odebraniu znaku zapisujemy go w zmiennej i sprawdzamy, którą opcję odebraliśmy. Przykład takiego sprawdzenia: co gdybyśmy programowali testowo wygląda następująco: if (znak == 49) { Serial.println("1"); else { if (znak == 50) { Serial.println("2"); else { if (znak == 51) { Serial.println("3"); else { Serial.println("To ani 1, ani 2, ani 3 - spróbuj jeszcze raz!");

i przy dłuższym menu może okazać się niezbyt czytelne. Dlatego pokazaliśmy sobie, że przy programowaniu w Arduino IDE możemy użyć, zamiast if i else, switcha, który w praktyce prezentuje się następująco: switch(znak){ /*switch można przetłumaczyć jako "przełącznik" - tutaj przełącznikiem jest zmienna o nazwie znak*/ case 49: //case oznacza "przypadek" - jeśli zmienna znak jest równa 49 to: Serial.println("1"); /*break oznacza koniec wykonywania się instrukcji - sprawia, że "wychodzimy" ze switcha, a jeśli go nie ma, program sprawdzi również kolejną opcję*/ case 50:// jeśli zmienna znak jest równa 50 to: Serial.println("2"); case 51: Serial.println("3"); default: Serial.println("To ani 1, ani 2, ani 3 - spróbuj jeszcze raz!"); Oczywiście programując tekstowo możemy sobie jeszcze bardziej poprawić czytelność pisząc '1' zamiast 49 itp. Łącząc wyżej opisane informacje można wykonać dowolny program sterujący płytką Arduino zarówno wykorzystując port szeregowy komputera jak i np. telefon lub drugie Arduino (bluetooth/wifi).