Lekcja 1
Zacznijmy od podstaw
Stworzyłem tą stronę z myślą prostego tworzenia i nauki w środowisku Arduino. Interesuję się w elektroniką i dowiedziałem się o płytce Arduino dzięki której mogę tworzyć własne projekty, które muszę zmątować i zaprogramować. Wciągnąłem się dość szybko za pośrednictwem książek, filmików i artykułów na YouTube.
Polecam książkę Arduino dla początkujących. Podstawy i szkice. Wydanie II.
Kurs Poziomu I składa się z 4 lekcji, które zawierają podstawy, działanie i budowę Arduino. Jeśli przejdziesz Poziom I, przejdź do Poziomu II, który na ten moment zawiera 2 lekcje, ale w budowie są kolejne lekcje.
Powiem też krótko, że Arduino powstało we Włoszech w 2005 i dzięki swoim zwolennikom zyskał na sławę i siłę na całym świecie, dzięki swojemu potencjałowi, nieskiej cenie i spójnej składni kodu.
Płytka
Arduino posiada swój własny detykowany język programowania opierający się na C/C++.Zapoznajy się z budową mikrokontrolera (czyli płytka, bo za dużo razy piszę Arduino). Przez cały kurs będziemy pracować na modelu UNO, który ma swoje lata, ale co jakiś czas wychodzi nowy egzemplarz. W chwili obecnej jest ponad 20 modelów, a w planach jest kilka kolejnych.Ja używam na ten czas chiński odpowienik originału na bazie budowy modułu UNO oraz MEGA 2560.
Mikrokontroler składa się z:
- 1. Przycisk Resetujący
- 2. Złącze USB
- 3. Stablizator napięcia
- 4. Złącze programowania
- 5. Pole lutownicze
- 6. Mikrokontroler odpowiedzialny za komunikację przez USB
- 7. Dioda LED do dyspozycji użytkownia
- 8. Dioda LED sygnalizująca transmisję z komputera
- 9. Zwrotka. Przez jej przecięcie wyłącza aitomatycznie resetowanie Arduino
- 10. Rezontor ceramiczny
- 11. Jadro Arduino. Główny mikrokontroler.
- 12. Złącze zasilające
- 13. Złącze Sygnałowe
- 16/4. Dioda LED sygnalizująca podłączenie napięcia do Arduino
- 15. Wyjście programatora dla mikrokontrolera
- 16. Złącze zasilania (7V-12V)
Czego potrzebujesz?
Oczywiste jest to abyś posiadał Arduino, originalne albo zamiennik wraz z przewodem USB orza połączeniowym.Przydadzą ci się kolorowe diody, przyciski, rezystory, wyświetlacz tekstowy 2x16 znaków, czujnik odległości, fotorezystor, głośniczek i wiele inncyh, ale to już wtrakcie. Na razie zaopatrz się w podstawowy zestaw, który możesz znaleść na Allegro czy Aliexpress.
Przyda się też program dzięki któremu będziesz mógł napisać kod i wgrać go do płytki. Najlepszym i originalnym programem jest Arduino IDE. Pobierz najnowszą wersję. Arduino IDE.
Instalacja jest bardzo prosta i szybka. Akceptuj wszystkie potrzebne składniki i sterowniki.Gdy zainstalujesz program, uruchom go. Aby sprawdzić czy wszystko działą uruchomimy podstawowy program. Musisz w menu IDE wybrać: Plik > Przykłady > 01.Basic > Blink.
Teraz podłącz swoją płytkę do komputera za pomocą kabla USB. Poczekaj aż komputer wykryje sprzęt i zainstaluje sterowniki.Teraz sprawdź który port zajmuje płytka za pomocą Menadżera urządzeń. W moim przypadku jest to PORT 6. Wróćmy do IDE. W Narzędziach wybieramy Płytkę oraz Port.
Teraz wgrajmy ten podstwowy Szkic Blik. U góry masz dwa przyciski: "Zweryfikuj" i "Wgraj" . Pierwszy służy do sprawdzenia poprawności kodu oraz czy nie występują tu żadne błędy. Drugi zaś odpowiada za przesyłanie kodu do płytki Arduino.Po załadowani powinny mignąć diody opisane jako TX i RX.(czyli 7 i 8 oznaczenie z górnego schematu). Powinien się też pojawić u dołu kompunikat o przesłaniu kodu oraz ile miejsca zajmuje program. W tym przypadku 1084 bajtów.
Rzecz jasna musisz jeszcze zobaczyć na płytce po przez zaopserwowanie że jedna dioda LED miga co 1 sekundę.Powinna ona działać jak poniżej .
POCZĄTEK
Teraz możemy oficjanie zacząć. Wreszcie jesteś gotowy. Masz płytkę, program i pospoiltą stronę. Zanim zaczniemy przedstawię krótką budowę kodu, co za co odpowiada, czyli rozkazy. Jak przypominam będziemy posługiwać się językiem C.
void setup() {}
Jest to komenda ustawiająca. Polega to na tym że wpinając do pinu 1 jedną końcówkę diody, a drugą do zasilania GND możemy przypisać działanie .Oczywiście będzie to jednorazowe działanie, dlatego tak samo jak w innych językach użyjemy pętki.
void loop() {}
Jest to funkcja wykonująca się wielokrotnie przez cały czas. Jeśli przepiszemy zadanie dla płytki np. miganie Diody co 1 sekundę to będzie się wykonywać w nieskończoność. Jest to rzecz prosta i wytłumaczę w trakcie a najlepiej na przykładzie.
Przygoduj : 1 kolorową diodę, rezystor, kabelik pinowe i płytkę .
Wgraj kod
void setup() {
pinMode(1, OUTPUT);
digitalWrite(1, HIGH) ;
}
void loop(){
}
Dobra teraz powiem co za co odpowiada.
pinMode(1 ,OUTPUT );
1 to pin odpowiada za wejście lub wyjście danych. OUTPUT jest to tryb . Jest kilka trybów a każdy z nich odpowiada za sterowanie wyjściem.OUTPUT odpowiada za sterowanie wyjściem.Są jeszcze INPUT i INPUT_PULLUP, która odpowiadają za wejście.
digitalWrite(1 ,HIGH );
digitalWrite jest początkową funkcją, która odpowiada za aktualny stan. W tym przypadku jest HIGH czyli wysoki , może być też LOW czyli niski niski .
Efekt powinien być taki
Brawo!!! Oto twoje pierwsze urządzenie i program. Myślę że możemy przejść dalej. Może zróbmy coś z wykorzystaniem pętli. Najlepszym przykładem będzie migająca dioda.Układ pozostaje taki sam wystarczy trochę pomieszać w kodzie.Przyda się nam delay odpowiada za oczekiwanie w milisekundach.Jeśli napiszemy delay (1000) to program będzie oczekiwał przez 1 sekundę . Zrobi przerwę.
void setup() {
pinMode(1, OUTPUT);
}
void loop() {
digitalWrite(1, HIGH);
delay(1000);
digitalWrite(1, LOW);
delay(1000);
}
UWAGA
Spróbuj pobawić się tą pętlą. Zrób tak aby migało się co pół sekundy, co 10 sekund. Jak myślisz do ilu milisekund dioda będzie nadal migała? Czy zauważysz zmiany?
PRZYCISKI
Opanowałeś podłączenie diody do płytki. Teraz możemy zacząć się bawić z przyciskami. Proste zadanie. Zapalenie diody po przez wciśnięcie przyciku, bedzie to tak zwana instrukcja warunkowa .Wykorzystamy też wcześniej wspomniany tryb INPUT_PULLUP , który odpowiada za wejście przycisku i jego działanie w programie. Aby odczytać stan wejścia przyda się warunek w formie funkcji digitalRead(pin ) gdzie będzie posiadać wartość HIGH albo LOW .W pętli wykorzystamy znany warunek wykorzystywany w innych językach IF ,czyli jeśli wykona się dana czynność jak wciśnięcie przycisku to wykona się inna czynność czyli zapali dioda. Ale chcemy dodać drugi warunek to używamy instrukcjęELSE . Wszytsko okarze się w praktyce.
Przygoduj: przycik, diodę, rezytor, kabeliki pinowe i płytkę .
Wgraj kod
void setup() {
pinMode(1, OUTPUT);
pinMode(2, INPUT_PULLUP);
digitalWrite(1, LOW);
}
void loop()
{
if (digitalRead(2) == LOW) {
digitalWrite(1, HIGH);
} else {
digitalWrite(1, LOW);
}
}
Omówię co za co odpowiada. Widzimy że w pętli jest warunek IF który ma przypisany pin z przyciskiem. Jeśli przycisk będzie wciśnięty digitalWrite(1 ,HIGH ) - dioda się zapali, a warunek ELSE , czyli różwnież będzie odpowiadał za to że jeśli nie będzie wciśnięty to dioda będzie wyłączona .
Spróbujmy zrobić tak aby dioda świeciła się dłużej po wciśnięciu przycisku. Wystarczy że w warunku IF dodamy znane nam wcześniej delay i wyznaczymy czas po jakim znowu ma się zapalić dioda np.delay(10000 ) . Nie musimy wykorzystywać ELSE.
void setup() {
pinMode(1, OUTPUT);
pinMode(2, INPUT_PULLUP);
digitalWrite(1, LOW);
}
void loop()
{
if (digitalRead(2) == LOW) {
digitalWrite(1, HIGH);
delay(10000);
digitalWrite(1, LOW);
}
}
ZADANIE
Teraz dam ci zadanie. Pod spodem masz schemat zadania. Spróbuj napisać program do tego schematu. Progaram polega na tym że po wciśnięciu przycisku odpali się dioda czerwona, po 2 sekundach zielona, a po 3 i pół sekundzie niebieska. Odpowiedź wpisz w komentarzu lub wyśli na fanpage na Facebooku.
Darmowy hosting zapewnia PRV.PL
void setup() {
pinMode(1, OUTPUT);
}
void loop() {
digitalWrite(1, HIGH);
delay(1000);
digitalWrite(1, LOW);
delay(1000);
}
UWAGA Spróbuj pobawić się tą pętlą. Zrób tak aby migało się co pół sekundy, co 10 sekund. Jak myślisz do ilu milisekund dioda będzie nadal migała? Czy zauważysz zmiany?
void setup() {
pinMode(1, OUTPUT);
pinMode(2, INPUT_PULLUP);
digitalWrite(1, LOW);
}
void loop()
{
if (digitalRead(2) == LOW) {
digitalWrite(1, HIGH);
} else {
digitalWrite(1, LOW);
}
}
void setup() {
pinMode(1, OUTPUT);
pinMode(2, INPUT_PULLUP);
digitalWrite(1, LOW);
}
void loop()
{
if (digitalRead(2) == LOW) {
digitalWrite(1, HIGH);
delay(10000);
digitalWrite(1, LOW);
}
}
ZADANIE Teraz dam ci zadanie. Pod spodem masz schemat zadania. Spróbuj napisać program do tego schematu. Progaram polega na tym że po wciśnięciu przycisku odpali się dioda czerwona, po 2 sekundach zielona, a po 3 i pół sekundzie niebieska. Odpowiedź wpisz w komentarzu lub wyśli na fanpage na Facebooku.
Darmowy hosting zapewnia PRV.PL