Kurs Arduino dla początkujących - Michał Jaworski str. 1. Lekcja 5



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

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

Laboratorium Analogowych Układów Elektronicznych Laboratorium 4

Przetwornik analogowo-cyfrowy

Pomiar natężenia światła (005; ; arduino, processing)

Pomiar odległości z Arduino czujniki, schematy, przykładowe kody

Rafał Staszewski Maciej Trzebiński, Dominik Derendarz

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

PROJECT OF FM TUNER WITH GESTURE CONTROL PROJEKT TUNERA FM STEROWANEGO GESTAMI

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

Oscyloskop (007; ; arduino; processing)

KA-NUCLEO-UniExp. Wielofunkcyjny ekspander dla NUCLEO i Arduino z Bluetooth, MEMS 3DoF, LED-RGB i czujnikiem temperatury

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

Arduino jako wyłącznik z opóźnieniem

KAmduino UNO. Płytka rozwojowa z mikrokontrolerem ATmega328P, kompatybilna z Arduino UNO

Laboratorium Analogowych Układów Elektronicznych Laboratorium 6

Kontrola dostępu przy użyciu sterownika Sterbox.

Podstawy Elektroniki dla Informatyki. Generator relaksacyjny

KAmduino UNO. Rev Źródło:

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

ORVALDI ATS. Automatic Transfer Switch (ATS)

TRD-MINI COMBO. Uniwersalny moduł czytnika transponderów UNIQUE - wersja OEM. Podstawowe cechy :

UNO R3 Starter Kit do nauki programowania mikroprocesorów AVR

Notatka lekcja_#3_1; na podstawie W.Kapica 2017 Strona 1

2.1 Porównanie procesorów

PRACOWNIA ELEKTRONIKI

MultiTool instrukcja użytkownika 2010 SFAR

Ćwiczenie 21 Temat: Komparatory ze wzmacniaczem operacyjnym. Przerzutnik Schmitta i komparator okienkowy Cel ćwiczenia

Silnik prądu stałego. Sterowanie silnika prądu stałego

Spis treści. 1. Rozdział Rozdział Rozdział Rozdział Koniec spisu treści -

Badanie diod półprzewodnikowych

Krótki wstęp o wyświetlaczach. Jak zmusić wyświetlacz do pracy?

Schemat blokowy architektury AVR

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:

Kod produktu: MP01105T

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

Wzmacniacz operacyjny

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

Kod produktu: MP01105

Ćwiczenie 6: Lokalizacja usterek we wzmacniaczu napięcia REGIONALNE CENTRUM EDUKACJI ZAWODOWEJ W BIŁGORAJU

Nowoczesne sieci komputerowe

Programator układów HCS

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

Generator przebiegów pomiarowych Ex-GPP2

Oscyloskop. Dzielnik napięcia. Linia długa

Przykładowe zadanie egzaminacyjne dla kwalifikacji E.20 w zawodzie technik elektronik

Systemy Wbudowane. Arduino dołączanie urządzeń Wersja Arduino więcej portów I/O. Układy serii 74. Układy serii 74xx a seria 40xx

Instrukcja integracji urządzenia na magistrali Modbus RTU. wersja 1.1

Układ pomiarowy CoachLab II

Wzmacniacze operacyjne

Przetworniki cyfrowo-analogowe C-A CELE ĆWICZEŃ PODSTAWY TEORETYCZNE

Generator tonów CTCSS, 1750Hz i innych.

Statyczne badanie wzmacniacza operacyjnego - ćwiczenie 7

LABORATORIUM ELEKTRONIKA I ENERGOELEKTRONIKA BADANIE GENERATORÓW PRZEBIEGÓW PROSTOKĄTNYCH I GENERATORÓW VCO

SiMod-X-(A1) Przetwornik parametrów powietrza z interfejsem RS485 (MODBUS RTU) oraz wyjściem analogowym (dotyczy wersji -A1)

Nowy MULTIMETR z czujnikiem Halla

Instrukcja użytkownika

Podstawy Elektroniki dla Teleinformatyki. Generator relaksacyjny

Aplikacja czujnika temperatury dla modułu uniwersalnego UNIV 1.0 i procesora UNIV 1.0 (CPU)

2.1 Przesył danych między procesorem a tabelą zmiennych

Programowanie mikrokontrolerów 2.0

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2017 CZĘŚĆ PRAKTYCZNA

Ćwiczenie 2: pomiar charakterystyk i częstotliwości granicznych wzmacniacza napięcia REGIONALNE CENTRUM EDUKACJI ZAWODOWEJ W BIŁGORAJU

DPS-3203TK-3. Zasilacz laboratoryjny 3kanałowy. Instrukcja obsługi

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

Instrukcja nr 6. Wzmacniacz operacyjny i jego aplikacje. AGH Zespół Mikroelektroniki Układy Elektroniczne J. Ostrowski, P. Dorosz Lab 6.

sygnałów cyfrowych przetwornikiem analogowo-cyfrowym Krótki wstęp teoretyczny Wysokim niskim chcielibyśmy poznać dokładną odległość od przeszkody

Częstościomierz wysokiej rozdzielczości

strona 1 MULTIMETR CYFROWY M840D INSTRUKCJA OBSŁUGI

INSTRUKCJA TERMOSTATU DWUSTOPNIOWEGO z zwłok. oką czasową Instrukcja dotyczy modelu: : TS-3

Laboratorium Przyrządów Półprzewodnikowych Laboratorium 1

Laboratorium Analogowych Układów Elektronicznych Laboratorium 6

MM05-IIIe. Dokumentacja techniczna

Zaprojektowanie i zbadanie dyskryminatora amplitudy impulsów i generatora impulsów prostokątnych (inaczej multiwibrator astabilny).

Generator funkcyjny. Spis treści. Działanie. Interfejs. Adam Miarka Maksymilian Szczepanik

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

Ćwiczenie - 3. Parametry i charakterystyki tranzystorów

1. Nadajnik światłowodowy

Moduł przełączania temperatury Nr produktu

Elektronika z wykorzystaniem Arduino i Raspberry Pi : receptury / Simon Monk. Gliwice, copyright Spis treści. Przedmowa 11

Przetworniki C/A. Ryszard J. Barczyński, 2016 Materiały dydaktyczne do użytku wewnętrznego

WIZUALIZACJA DANYCH SENSORYCZNYCH MINISTACJA METEOROLOGICZNA

Drivery LED PWM oraz prosty sterownik Świt Zmierzch oparty na Arduino

Demonstracja: konwerter prąd napięcie

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

Zworka amp. C 1 470uF. C2 100pF. Masa. R pom Rysunek 1. Schemat połączenia diod LED. Rysunek 2. Widok płytki drukowanej z diodami LED.

4. Schemat układu pomiarowego do badania przetwornika

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Wyniki (prawie)końcowe - Elektroniczne warcaby

CZUJNIK ŁADUNKU ELEKTRYCZNEGO 1

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

System Informacji Technicznej SIT MTC mini

Edukacyjny sterownik silnika krokowego z mikrokontrolerem AT90S1200 na płycie E100. Zestaw do samodzielnego montażu.

Laboratorium Komputerowe Systemy Pomiarowe

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

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

LABORATORIUM - ELEKTRONIKI Układy mikroprocesorowe cz.2

APPLICATION OF ADUC MICROCONTROLLER MANUFACTURED BY ANALOG DEVICES FOR PRECISION TENSOMETER MEASUREMENT

Uniwersalny sterownik silnika krokowego z portem szeregowym RS232 z procesorem AT90S2313 na płycie E200. Zestaw do samodzielnego montażu.

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

Transkrypt:

Kurs Arduino dla początkujących - Michał Jaworski str. 1 Lekcja 5 Z piątej lekcji kursu dowiesz się jak obsługiwać analogowe porty Arduino. Zbudujesz urządzenie, które będzie służyło do... dręczenia innych. Przecież musisz łączyć naukę z zabawą wtedy wiedza jest lepiej przyswajana. 5.1. Piszczyk dręczyciel Dręczyciel wyposażony jest w element reagujący na zmieniające się natężenie światła. Tym elementem może być fotorezystor, fotodioda lub fototranzystor. My posłużymy się tym ostatnim, ale układ można łatwo przerobić pod fotodiodę lub fotorezystor. Element optyczny pozwoli układowi, który za chwilę zbudujesz, wykryć czy znajduje się on w oświetlonym, czy zaciemnionym miejscu. Jeśli wykryje ciemność (naszą intencją jest dręczenie w nocy) rozpoczyna swoje działanie. Działanie układu polega na wydawaniu krótkich, cichych, irytujących pisków. Gdy nasza ofiara wstanie z łóżka, aby poszukać źródła denerwujących pisków, zaświeci światło a wtedy nasz układ zamilknie kamuflując miejsce ukrycia. A wszystko to w imię zdobywania wiedzy :) 5.1.1. Co będzie potrzebne dowolna płytka kompatybilna z Arduino, fototranzystor, rezystor o wartości około 220 kω oraz drugi o wartości 1 kω, buzzer z generatorem, tranzystor BC548, płytka stykowa, przewody

Kurs Arduino dla początkujących - Michał Jaworski str. 2 5.1.2. Schemat 5.1.2. Elementy Tranzystor BC548 jest tranzystorem typu NPN ogólnego przeznaczenia. Idealnie nadaje się do sterowania typu włącz / wyłącz jak w naszym przypadku. Na poniższej ilustracji możesz zobaczyć jak wygląda taki tranzystor oraz przekonać się w jaki sposób powiązane są ze sobą jego wyprowadzenia z wyprowadzeniami na schemacie.

Kurs Arduino dla początkujących - Michał Jaworski str. 3 Fototranzystor jest to element podobny do tranzystora, przy czym jedno z jego wyprowadzeń (baza) sterowana jest natężeniem światła. Zwróć szczególną uwagę na to jak podłączasz ten element. Zauważ, że np. w kondensatorach elektrolitycznych krótsze wyprowadzenie oznacza potencjał ujemny. W przypadku fototranzystora krótsza nóżka oznacza kolektor C, który my podłączamy do zasilania +5V. Buzzer jest to przetwornik piezo z wbudowanym generatorem. Aby uzyskać z niego dźwięk, wystarczy go zasilić. Przeważnie na obudowie znajduje się symbol +, który wskazuje wyprowadzenie podłączane do dodatniego potencjału.

Kurs Arduino dla początkujących - Michał Jaworski str. 4 5.1.3. Model 5.1.4. Kod const int analoginpin = 0; const int buzzer = 9; int sensorvalue = 0; int iryt = 0; int i = 0; void setup() digitalwrite(buzzer,low); Serial.begin(9600); void loop() sensorvalue = analogread(analoginpin); Serial.print("sensor = " ); Serial.println(sensorValue); if(sensorvalue < 10) iryt = 1; else if(sensorvalue > 100) iryt = 0;

Kurs Arduino dla początkujących - Michał Jaworski str. 5 if(iryt) if(i > 1000) digitalwrite(buzzer,high); delay(10); digitalwrite(buzzer,low); i = 0; delay(10); // 10ms i++; 5.1.5. Uruchomienie Na początek proponuję złożyć układ według schematu i wgrać do niego program. Gdy już to zrobisz uruchom w środowisku Arduino tzw. Serial Monitor klikając w ikonkę:. Serial Monitor pozwala Ci wysyłać i odbierać dane przez port szeregowy, czyli daje Ci możliwość komunikacji z Arduino. 5.2. Działanie programu Program po zainicjowaniu portu szeregowego (funkcja Serial.begin() na końcu tej lekcji przeczytasz o niej coś więcej) w pętli setup (pamiętasz jest ona wykonywana tylko raz), rozpoczyna pomiar napięcia na nóżce A0 płytki za pomocą funkcji analogread(analoginpin). Dana zapisywana jest do zmiennej sensorvalue i wysyłana przez port szeregowy: Serial.print("sensor = " ); Serial.println(sensorValue); Zostawmy na razie dalszą część programu. Jeśli prawidłowo zmontowałeś układ, wgrałeś program i uruchomiłeś Serial Monitor zaobserwujesz ciągle przychodzące dane. Są to liczby będące kolejnymi odczytami wartości analogowej (napięcia) na nóżce A0.

Kurs Arduino dla początkujących - Michał Jaworski str. 6 Sprawdź teraz co się dzieje z liczbami, gdy np. oświetlisz lub zaciemnisz fototranzystor. Układ celowo jest dość nieczuły (duża wartość R2). Dzięki temu wykrywana jest noc, a nie zmierzch. Zachęcam Cię do eksperymentów z rezystorem o wartości np. 1 kω zobaczysz, że zmiany będą bardziej wyraźne. Przejdźmy teraz do dalszej części programu, w której zawarty jest algorytm irytacji :) Informacja o tym, czy układ znajduje się w zaciemnionym otoczeniu i powinien irytować przechowywana jest w zmiennej iryt. Spójrz na poniższy fragment kodu: if(sensorvalue < 10) iryt = 1; else if(sensorvalue > 100) iryt = 0; Uaktywnienie irytowania (iryt = 1) następuje, gdy wartość zmiennej sensorvalue spadnie poniżej 10 (wartość dobrana eksperymentalnie przyjrzyj się wartościom pojawiającym się w Serial Monitor), natomiast wyłącza po osiągnięciu wartości powyżej 100. Zauważ, że gdy układ odczyta z A0 wartość np. 8, a w następnym kroku będzie to 15, to iryt nadal będzie równe 1 (irytacja aktywna). Sytuacja zmieni się dopiero, gdy natężenie światła padające na fototranzystor wzrośnie znacząco. Dzięki temu unikamy ciągłego włączania i wyłączania irytacji na granicy progu przełączania (stosujemy tzw. histerezę). Gdy irytacja jest aktywna, generujemy pisk w określonym odstępie czasu: if(iryt)

Kurs Arduino dla początkujących - Michał Jaworski str. 7 if(i > 1000) digitalwrite(buzzer,high); delay(10); digitalwrite(buzzer,low); i = 0; Generacja pisku polega na włączeniu na krótki czas (10ms) buzzera. Możesz spróbować samemu dobrać wartość tego opóźnienia, tak aby pisk był słyszalny (irytujący :)) ale na tyle krótki, aby trudno było zlokalizować jego źródło. 5.3. Opis zastosowanych funkcji 5.3.1. Port szeregowy Port ten służy do komunikacji z otoczeniem. W naszym przypadku, jest on wykorzystywany do wymiany danych z komputerem. Serial.begin(speed); Funkcja otwiera port szeregowy i ustawia prędkość transmisji danych. Typowa dla Arduino prędkość to 9600, ale możliwe są również inne ustawienia. Przykład: void setup() Serial.begin(9600); Informacja: gdy używasz portu szeregowego, piny 0 (RX) oraz 1 (TX) nie mogą być wykorzystane jako porty cyfrowe w tym samym czasie. Serial.print(val); Funkcja powoduje wysłanie danych (val) w postaci tekstu do portu szeregowego. Przykład: int x = 5; void loop() Serial.print(x); //wysłanie do portu szeregowego znaku '5' Serial.println(val); Działa podobnie jak powyższa funkcja. Jedyna różnica polega na wysłaniu

Kurs Arduino dla początkujących - Michał Jaworski str. 8 dodatkowych dwóch znaków na końcu przesyłanego ciągu. Znaki te to koniec linii (LF) i powrót karetki (CR), które powodują przejście kursora do nowej linii. 5.3.2. Wejścia / wyjścia analogowe analogread(pin); Funkcja odczytuje wartość analogową z podanego wejścia z 10-bitową rozdzielczością. Wynik zawiera się w przedziale 0 1023. Oznacza to, że napięcie wejściowe z przedziału od 0 do 5V reprezentowane jest z rozdzielczością 5V / 1024 czyli 0,0049V (4,9 mv). Przykładowo, jeśli odczytana wartość to 20, to zmierzone napięcie ma wartość 20 * 4,9 mv = 98 mv. Przykład: val = analogread(pin); Informacja: funkcja ta działa tylko na analogowych pinach wejściowych (A0 A6). Piny analogowe, w przeciwieństwie do cyfrowych, nie wymagają wcześniejszego określenia trybu pracy (jako wejściowe czy wyjściowe). Maksymalna częstotliwość odczytywania danych z wejścia analogowego wynosi około 10000 razy na sekundę (odczyt twa około 100 us). 5.4. Zadanie domowe W ramach zadania domowego dotyczącego piątej lekcji kursu: dowiedz się jak zwiększyć rozdzielczość pomiarową przetwornika analogowo-cyfrowego. Podpowiedź: zapoznaj się z funkcją analogreference(type), spróbuj zmienić program tak, aby wysyłał dane przez port szeregowy z prędkością 115200 i odczytaj prawidłowo te dane w Serial Monitor, zmień kod tak, aby przez port szeregowy wysyłana była zmierzona wartość, ale podana w woltach, obecna postać kodu, sprawia, że pisk generowany jest co 10 sekund (gdy panuje ciemność). Spróbuj zmienić tę wartość. A może uda Ci się generować pisk w bardziej przypadkowych odstępach czasu?