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

Podobne dokumenty
Schemat blokowy architektury AVR

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

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

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

Klawiatura matrycowa

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:

Laboratorium 2 Sterowanie urządzeniami z wykorzystaniem systemu plików Intel Galileo

Przetwornik analogowo-cyfrowy

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

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

Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

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

Mikrokontroler w roli generatora PWM. Wpisany przez Administrator piątek, 06 lipca :51 -

Rafał Staszewski Maciej Trzebiński, Dominik Derendarz

by Jody Culkin PIERWOTNY WZÓR BĘDĄCY PODSTAWĄ DO STWORZENIA GOTOWEGO PRODUKTU.

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

LABORATORIUM - ELEKTRONIKI Układy mikroprocesorowe cz.2

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

PL B1. WOJSKOWY INSTYTUT MEDYCYNY LOTNICZEJ, Warszawa, PL BUP 23/13

Opis ultradźwiękowego generatora mocy UG-500

Instytut Teleinformatyki

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

DOKUMENTACJA TECHNICZNO-RUCHOWA. Sterownik mikroklimatu FAG25-III

Pilot RF 4-kanałowy + odbiornik XY-DJM-5V umożliwia zdalne sterowanie do czterech urządzeń. Nadajnik pilot MX804. Odbiornik XY-DJM.

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Systemy Wbudowane. Arduino, AVR (wersja 2018) Arduino. Arduino. Oprogramowanie. Rys historyczny. Mikrokontroler

Czym jest sygnał PWM?

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

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Systemy Wbudowane. Arduino, AVR. Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler. Mikrokontroler Platforma Arduino. Arduino IDE: Arduino C:

Modulatory PWM CELE ĆWICZEŃ PODSTAWY TEORETYCZNE

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

Systemy Wbudowane. Arduino, AVR (wersja 2019) Arduino. Arduino. Oprogramowanie. Rys historyczny. Mikrokontroler

KARTA KATALOGOWA. Moduł ściemniacza MTR-8s.

POLITECHNIKA WARSZAWSKA Wydział Elektryczny Instytut Elektroenergetyki Zakład Elektrowni i Gospodarki Elektroenergetycznej

SILNIK INDUKCYJNY STEROWANY Z WEKTOROWEGO FALOWNIKA NAPIĘCIA

Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe

Oscyloskop (007; ; arduino; processing)

M-1TI. PRECYZYJNY PRZETWORNIK RTD, TC, R, U NA SYGNAŁ ANALOGOWY 4-20mA Z SEPARACJĄ GALWANICZNĄ. 2

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

PROGRAMOWANIE PWM. Porty, które mogą być zamienione na PWM w każdym module RaT16 to port 3,4,5,6

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

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

Systemy Wbudowane. Arduino, AVR (wersja ) Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler

MCAR Robot mobilny z procesorem AVR Atmega32

DWUKIERUNKOWY REGULATOR SILNIKA DC VDC 20A

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

Arduino Power Shield. Moduł Arduino do sterowania silnikami dużej mocy i pomiaru prądu

Państwowa Wyższa Szkoła Zawodowa

OBSŁUGA ZA POMOCĄ PROGRAMU MAMOS.EXE

KARTA KATALOGOWA. Moduł ściemniacza MDIM-1p.

start Program mikroprocesorowego miernika mocy generowanej $crystal = deklaracja

Moduł nagrzewnicy elektrycznej EL-HE

Instrukcja obsługi elektronicznego licznika typu 524. Model 524. Licznik sumujący i wskaźnik pozycji typu Opis. 1. Opis

Programowanie w językach asemblera i C

a) dolno przepustowa; b) górno przepustowa; c) pasmowo przepustowa; d) pasmowo - zaporowa.

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Sterowniki Programowalne Sem. V, AiR

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

STEROWNIK LAMP LED MS-1 Konwerter sygnału 0-10V. Agropian System

Programowanie mikrokontrolerów. 8 listopada 2007

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

NAPĘDY SERII 16LE. 1. Dane techniczne.

Nazwa implementacji: Pamięć i zręczność - zapamiętaj kolejność. Autor: Krzysztof Bytow

INSTRUKCJA OBSŁUGI MONITORA LINII PRĄDOWEJ

Karta katalogowa JAZZ OPLC JZ20-R31

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

Teraz możesz kupić zestaw ponad 70 elementów niezbędnych do przeprowadzenia ćwiczeń z kursu u naszych dystrybutorów!

Sterownik nagrzewnic elektrycznych HE module

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

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

Karta katalogowa JAZZ OPLC JZ20-T40/JZ20-J-T wejść cyfrowych, 2 wejścia analogowe/cyfrowe, 2 wejścia analogowe. 20 wyjść tranzystorowych

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Kurs Arduino #2 podstawy programowania, porty I/O. 2 //Zawartość programu. 1 int main() { void setup() { //Instrukcje, które wykonają się jeden raz

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

SZYMAŃSKI ŁÓDŹ Ul. Wiskicka 22 Tel./fax. (042) Tel./fax. (042) Kom

Przetworniki analogowo-cyfrowe

Wskaźnik. Opis. Informacje ogólne. Obrotomierz. Kalibracja

SDD287 - wysokoprądowy, podwójny driver silnika DC

6 ARDUINO DLA POCZĄTKUJĄCYCH. PODSTAWY I SZKICE

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

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

Projektowanie i produkcja urządzeń elektronicznych

Prosty system alarmowy z Arduino

Ćw. 7 Przetworniki A/C i C/A

Interfejs analogowy LDN-...-AN

Język programowania. KURS Kurs Arduino (1)

Bootloader programming

Przetwarzanie A/C i C/A

Napęd CANON MD5501. Fot 1. Wygląd płytki sterującej napędu CANON MD5501

Wyświetlacz LCD. Ogólne zasady działania

Układy czasowo-licznikowe w systemach mikroprocesorowych

Instytut Teleinformatyki

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

E-TRONIX Sterownik Uniwersalny SU 1.2

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

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Wprowadzenie do programowania urządzeń Arduino (Arduino dla Informatyków)

Transkrypt:

Podstawowe funkcje sterowania pinami cyfrowymi pinmode(8, OUTPUT); //ustawienie końcówki jako wyjście pinmode(8, INPUT); // ustawienie końcówki jako wejście pinmode(8, INPUT_PULLUP); // ustawienie końcówki jako wejście // z rezystorem podciągającym digitalwrite(8, HIGH); //ustawienie wyjścia w stan wysoki (1) digitalwrite(8, LOW); //ustawienie wyjścia w stan niski (0) Uwaga: dioda na wyjściu 13 świeci gdy na wyjście podamy 0. Sterowanie diody za pomocą klawisza Podłączmy klawisz i diodę do Arduino i programowo będziemy sterować zapalaniem diody. W tym przypadku można stworzyć wyłącznik czasowy, który wyłączy diodę po 4 sekundach. Przykład 1: const int readpin = 8; const int writepin = 11; pinmode(readpin, INPUT); pinmode(writepin, OUTPUT); const int interval = 50; const int maxlightms = 4000; int activated = 0; // 4s boolean active =!digitalread(readpin); if (active) activated += interval; else activated = 0; if (active && (activated <= maxlightms)) digitalwrite(writepin, HIGH); else digitalwrite(writepin, LOW); delay(interval); 1

Sygnały PWM (Pulse Width Modulated) Arduino nie może wytwarzać sygnałów analogowych lecz może generować sygnały prostokątne o zmienianym programowo współczynniku wypełnienia. Dzięki temu można wytwarzać sygnały wyjściowe o regulowanej wartości średniej napięcia. Może to być wykorzystane np. do regulacji jasności świecenia diody LED lub sterowania prędkością obrotową silnika prądu stałego. Wpływ współczynnika wypełnienia (T i /T) na wartość średnią napięcia ON T 25% 75% 25% OF t ON 50% T 50% 50% OF t ON 75% T 25% 75% OF Do ustawienia współczynnika wypełnienia używamy funkcji analogwrite(numerpinu, wspwypełnienia); gdzie wspwypełnienia może przyjmować wartości od 0 (0%) do 255 (100%), zaś numer pinu określa wyjście analogowe od 0 do 13 t 2

Przykłady programów zmieniających jasność świecenia diody korzystające z modulacji PWM Przykład 2: int led = 11; pinmode(led, OUTPUT); int value = 0; for (value = 0; value <255; value++) analogwrite(led, value); delay(10); // opóźnienie 10ms Przykład 3: int led = 11; // dioda LED podłączona do pinu 11 int poziom = 0; // określa jasność diody LED int zmiana = 5; // szybkość zmiany jasności diody LED pinmode(led, OUTPUT); // określenie końcówki 11 jako wyjścia analogwrite(led, poziom); // ustawienie jasności świecenia diody LED poziom = poziom + zmiana; // zmiana poziomu świecenia przy każdym cyklu // zmiana kierunku zmian jasności świecenia przy końcu przedziału: if (poziom == 0 poziom == 255) zmiana = - zmiana ; delay(30); // opóźnienie 30ms Zadanie 1: Sprawdzić możliwość sterowania poziomem świecenia diody za pomocą monitora portu szeregowego. Zmierzyć poziom napięcia na wyjściu analogowym układu przy różnych współczynnikach wypełnienia impulsu. Uwaga: Do wprowadzenia liczby z monitora portu szeregowego wykorzystać funkcję ASCII2long() z następującego przykładu: 3

Przykład 4: // Wczytywanie liczby w kodzie ASCII z portu szeregowego i zamiana na zmienną typu long long liczba = 0; Serial.begin(9600); liczba = ASCII2long(); Serial.print("Wprowadzono: "); Serial.println(liczba); Serial.print(liczba); Serial.print(" razy 2 to "); liczba = liczba * 2; Serial.println(liczba); long ASCII2long() long a; long n = 0; // wstępne zerowanie wczytywanej zmiennej Serial.flush(); // oczyszczenie bufora z ewentualnych wcześniejszych znaków while (Serial.available() == 0) // oczekiwanie na wprowadzone znaki; // po wprowadzeniu znaków do bufora funkcja Serial.available() // zwraca liczbę znaków oczekujących na przetworzenie // każdy przetwarzany znak powoduje: while (Serial.available() > 0) // pomnożenie zawartości n przez 10 n = n * 10; // odczyt kolejnego znaku (cyfry) z bufora, skorygowanie do wartości binarnej cyfry a = Serial.read() - '0'; // i dodanie do zmiennej n n = n + a; // krótkie oczekiwanie na kolejny znak delay(5); return n; Zadanie 2: Napisać program, który przesyła do Arduino przez monitor portu szeregowego trzy liczby całkowite i sprawdza czy mogą one być długościami trójkąta prostokątnego. 4

Wejścia analogowe Układ Arduino Mega posiada 16 wejść analogowych A0-A15, które mogą służyć do odczytu wartości podawanego na nie napięcia. Wykorzystywany jest w tym celu przetwornik analogowo-cyfrowy 10 bitowy. Do odczytu wartości napięcia służy funkcja analogread(numer pinu); Przykład 5: const int sensorpin = A0; int analogvalue = analogread(sensor pin); Serial.print( wartość analogowa = ); Serial.println(analogValue, DEC); lub w postaci liczby zmiennoprzecinkowej: float voltage = 0.0048 * analogvalue; Wartość mierzonych napięć standardowo wynosi 0 5V lecz może być zmieniony za pomocą funkcji: analogreference(typ); gdzie parametr typ może przyjmować wartości: INTERNAL wewnętrzne źródło 1,1 V EXTERNAL wartość podawana na końcówkę AREF np. 3,3 V DEFAULT - napięcie +5 V Przykład 6: int analogvalue = 0; int ledpin = 11; // nie trzeba definiować trybu pracy wejść / wyjść analogowych analogvalue analogread(a0) / 4; analogwrite(ledpin, analogvalue); delay(20); Zadanie 3: Podłączyć potencjometr 10 kω do płytki Arduino i sprawdzić działanie powyższego przykładu (regulujemy za pomocą potencjometru poziom świecenia diody). Wyświetlać w oknie monitora portu szeregowego aktualną wartość napięcia podawanego z potencjometru. 5

Przykład 7: Zapoznać się z opisem funkcji map() i constrain() // Wczytanie wartości z portu analogowego i wysłanie // po przeskalowaniu do portu szeregowego // Dioda LED świeci z częstotliwością zależną od ustawienia potencjometru const int ledpin = 13; // dioda LED podłączona do pinu 13 const int sensorpin = 0; // suwak potencjometru (sensor) do wejścia analogowego A0 // następne dwie linie określają minimalny i maksymalny czas świecenia diody const int minczas = 100; // minimum czasu świecenia const int maxczas = 1000; // maximum czasu świecenia pinmode(ledpin, OUTPUT); Serial.begin(9600); int czas = analogread(sensorpin); // odczyt napięcia na wejściu analogowym czas = map(czas, 200,800,minCzas, maxczas); // przeskalowanie czas = constrain(czas, minczas, maxczas); // ograniczenie Serial.println(czas); digitalwrite(ledpin, HIGH); delay(czas); // świeci przez określony czas digitalwrite(ledpin, LOW); delay(czas); // zgaszona przez określony czas Funkcja map(x, in_min, in_max, out_min, out_max) Przeskalowuje wartość do podanego zakresu long map(long x, long in_min, long in_max, long out_min, long out_max) return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; Funkcja constrain(x, a, b) Ogranicza wartość do podanego zakresu. Parametry x: wartość ograniczana, dowolnego typu a: dolny zakres ograniczania, dowolnego typu b: górny zakres ograniczania, dowolnego typu Zwraca x: jeśli x jest pomiędzy a i b a: jeśli x jest mniejsze niż a b: jeśli x jest większe niż b 6