• Nie Znaleziono Wyników

Ćwiczenie nr 2_2019

N/A
N/A
Protected

Academic year: 2021

Share "Ćwiczenie nr 2_2019"

Copied!
6
0
0

Pełen tekst

(1)

Rysunek 1-Arduino Mega 2560

PRACOWNIA MIERNICTWA ELEKTRONICZNEGO/

INTERNETU RZECZY

ĆWICZENIE NR 2

Temat: Arduino. Część 1: proste pomiary podzespołów

elektronicznych

Cel ćwiczenia:

Zapoznanie z krótką teorią na temat Arduino oraz wykonanie czterech zadań treningowych.

Teoria:

Arduino – platforma programistyczna dla systemów wbudowanych oparta na

prostym projekcie Open Hardware przeznaczonym dla mikrokontrolerów montowanych w pojedynczym obwodzie drukowanym, z wbudowaną obsługą układów wejścia/wyjścia oraz standaryzowanym językiem programowania. Język programowania Arduino jest oparty na środowisku Wiring i zasadniczo na

języku C/C++ (kilka prostych przekształceń kodu

wykonywane przed przejściem do avr-gcc). Celem projektu Arduino jest przygotowanie narzędzi –

ogólnodostępnych, tanich, niewymagających dużych nakładów finansowych, elastycznych i łatwych w użyciu przez hobbystów. Częściowo Arduino stanowi również alternatywę dla

(2)

osób, które nie mają dostępu do bardziej zaawansowanych kontrolerów, wymagających bardziej skomplikowanych narzędzi

Porty:

Na ćwiczeniach będziemy korzystać z portów PWM i analogowych.

Wejścia analogowe - Wyprowadzenia umożliwiające operacje na sygnale analogowym. Połączone są z wbudowanym przetwornikiem analogowo-cyfrowym. Każde z nich posiada 10-bitową rozdzielczość

(3)

(1024 różnych wartości). Dzięki wejściom analogowym użytkownik może obsługiwać rozmaite czujniki (np. akcelerometry lub sensory optyczne), lub stworzyć własny miernik napięcia. Wyjścia PWM - Modulacja szerokości impulsu. Dzięki tym wyprowadzeniom użytkownik może w sposób sprzętowy (bez zajmowania procesora) generować sygnał o zadanym wypełnieniu. Funkcja wykorzystywana np. do sterowania prędkością obrotową silników DC przy użyciu Motor Shieldu lub dowolnego sterownika silników (np. TB6612). Pozwala również na sterowanie pozycją serw.

Instrukcja

Zadanie pierwsze:

Komponenty:

 Arduino 2560 Opis:

Zadanie polega na zaprogramowania diody która jest wbudowana w Arduino. Ma się zapalać na pięć sekund i gasnąć.

Rysunek 2- dioda którą będziemy starować

Kod:

void setup() {

pinMode(LED_BUILTIN, OUTPUT);// zainicjowanie pinu LED_BUILTIN jako wyjścir.

(4)

void loop() {// nieskończona pętla w , której wykonywany jest kod

digitalWrite(LED_BUILTIN, HIGH); // włączenie diody wbudowanej w Arduino

delay(5000); // dioda pali się przez pięć sekund

digitalWrite(LED_BUILTIN, LOW); // wyłączenie diody wbudowanej w Arduino

delay(5000); // dioda jest wyłączona przez pięć sekund

}

Zadanie drugie:

Komponenty:  Arduino 2560  Sound sensor Opis:

Zadanie polega na podłączenie sensora dźwięku do Arduino oraz odczytanie jego wskazań poprzez monitor portu szeregowego(można go uruchomić przy pomocy skrótu Ctrl+Shift+m) .

Rysunek 3 - Podłączenie sensora dźwięku(niebieski - A0, czerwony - 5V, czarny - GND)

Kod:

void setup() {

Serial.begin(9600); //Ustawienie szybkości dla szeregowej transmisji danych.

}

(5)

int sensorValue = analogRead(A0);//odczyt wartości z sensora dźwięku

Serial.println(sensorValue);//wypisane wartości do monitora portu szeregowego

delay(1000);//sekunda odstepu miedzy odczytami

}

Zadanie trzecie:

Komponenty:  Arduino 2560  Sound sensor Opis:

Rysunek 4 - podłączenie diody LED(krótsza nóżka do GND, dłuższa do portu PWM nr. 6)

Zadanie polega dołożeniu diody LED i napisaniu kodu, który pozwoli na zapalenie jej po wykryciu klaśnięcia oraz zgaszenie po dwóch klaśnięciach w ciągu sekundy.

Kod:

void setup() {

Serial.begin(9600); pinMode(6, OUTPUT); }

bool blink(bool flag) // funkcja oczekująca na drugie klaśnięcie. Jeżeli klaśniemy w odpowiednim czasie dioda zgaśnie

{

delay(250);

(6)

{

int sensorValue3 = analogRead(A0); Serial.println(sensorValue3);

if (sensorValue3 > 100) { flag = true; analogWrite(6, 0); break; } delay(20);

}

return flag; }

void loop() {// nieskończona pętla w której wykonywany jest cały program

label:

delay(150); // 150 milisekund przed każdym pomiarem

int sensorValue = analogRead(A0);//odczyt wskazań z sensora dźwięku

Serial.println(sensorValue); // wyświetlenie wartości w monitorze portu szeregowego

if (sensorValue > 100) // jeżeli klaśniemy odpowiednio głośno dioda zapali się

{

for (;;) {

analogWrite(6, 50); // zapalenie diody LED

delay(150); // odstęp przed kolejnym pomiarem

int sensorValue2 = analogRead(A0); // odczyt wskazań z sensora dźwięku

Serial.println(sensorValue2); // wyświetlenie wartości w monitorze portu szeregowego

if (sensorValue2 > 100) // jeżeli klaśniemy odpowiednio głośno program czeka na kolejne klaśnięcie w okresie 250 milisekund – 2 sekundy od

poprzedniego klaśnięcia. Jeżeli warunek zostanie spełniony dioda LED zgaśnie

{

bool flag = false;

flag = blink(flag); // wywołanie funkcji oczekująca na drugie klaśnięcie

if (flag == true) goto label; }

} }

}

Zadanie dodatkowe:

Dodać opcję zapalenia diody po dwóch klaśnięciach w ciągu sekundy .

Wymagania dotyczące opracowania teoretycznego:

Opis - topologie sieciowe Internetu Rzeczy

Cytaty

Powiązane dokumenty

Zasada wyznaczania zależności pojemności diody od napięcia polaryzującego, zastosowana w wykonywanym ćwiczeniu (metoda pośrednia – przestrajanie

Z Głównym Urzędem Nadzoru Budowlanego są utrzymywane stałe kontakty w związku z prowadzeniem przez Głównego Inspektora Nad- zoru Budowlanego centralnego rejestru

możliwość bezpośredniej modulacji mocy wyjściowej, analogowej i cyfrowej, przez zmianę wartości prądu I diody laserowej. Ø Na rys.a) pokazano charakterystykę gęstości J

Robi to wywołując mention na każdym reje- strze i pseudorejestrze jaki jest w dowolnej chwili użyty przez dowolną instrukcję wewnątrz bloku oraz wywołując interf ere na każdej

Zakładamy, że istnieje użytkownik uczen, hasło uczeń123 o uprawnieniach administratora (jak założyć nowego użytkownika opisane jest w tworzenie użytkownika z

złącze baza emiter jest spolaryzowane w kierunku przewodzenia, a złącze baza kolektor w kierunku zaporowym.

Aby zmienid prędkośd poruszania się obiektu po krzywej, klikamy na krzywą, wchodzimy w jej opcje (prawe menu, tam gdzie materiały, przycisk pomiędzy modyfikatorami a

Główne pozycje wydatków stanowią diety radnych, wynagrodzenia osobowe wraz z pochodnymi od wynagrodzeń oraz pozostałe wydatki związane z funkcjonowaniem biura Rady