Ustawienia pinów Zmienne Ustawienia WiFi Wstawianie własnego znaku Warunki
pinMode - ustawienie czy pin będzie wejściem czy wyjściem.
OUTPUT - ustawia pin jako wyjście INPUT - ustawia pin jako wejście INPUT_PULLUP - Wejście z podciągnięciem] - ustawia pin jako wejście z domyślnym stanem HIGH Stan zmienia podłączenie wejścia do GND.
Przykład: pinMode(1, OUTPUT); pinMode(2, INPUT); pinMode(3, INPUT_PULLUP);
digitalWrite - zapis do pinu digitalWrite(numer_pinu, wartość_wyjścia); digitalWrite - zapisz do pinu cyfrowego] - ustawia wyjście pinu cyfrowego. wartość_wyjścia - ustawia wyjście w stan niski lub wysoki LOW - stan NISKI] - ustawia wyjście na napięcie zbliżone do 0 V HIGH - stan WYSOKI] - ustawia wyjście na napięcie zbliżone do 5 V
Przykład: digitalWrite(1, LOW); digitalWrite(2, HIGH); ustawienie pinu 1 w stan niski ustawienie pinu 2 w stan wysoki
digitalRead - odczyt z pinu wartość_wejścia - digitalRead(numer_pinu); digitalRead - odczytuje wartość wejścia pinu cyfrowego. podaje wartość wejścia LOW - NISKI] - na wejściu jest napięcie zbliżone do 0 V HIGH - WYSOKI] - na wejściu jest napięcie od 2,5 do 5 V
Przykład: void setup() { Serial.begin(9600); pinMode(1, INPUT_PULLUP); } void loop() { byte value = digitalRead(1); Serial.print(F("Wejscie cyfrowe 1 ma wartosc: ")); if (value == LOW) { Serial.println(F("LOW")); }
else { Serial.println(F("HIGH")); }
delay(500); } Program odczytuje poziom pinu cyfrowego 1. Zapisuje do zmiennej "value" i wysyła ustawienie poziomu do komputera. Na komputerze możesz to odczytać za pomocą Monitora portu szeregowego w Arduino IDE.
WiFi (biblioteka ESP8266)
WIFI_AP - Access Point (Punkt dostępu) WIFI_STA - Klijent WIFI_AP_STA - tryb mieszany
MAC kart sieciowej: WIFI_STA - WiFi.macAddress(mac) WIFI_AP - WIFI.softAPmacAddress(mac)
Adres IP: STA - WiFi.localIP() AP - WiFi.softAPIP()
WiFi.printDiag(Serial) - wyświetla informacje diagnostyczne
WiFi.softAP(ssid) w celu ustawienia własnej otwartej sieci (w trybie z AP), dostęp bez hasła
WiFi.softAP(ssid, hasło) w celu ustawienia sieci WPA2-PSK zbezpieczonej hasłem
WiFiServer, WiFiClient i WiFiUDP działają i zachowują się tak samo jak w oryginalnej bibliotece.
Wyświetlacz LCD 2x16
Tworzenie własnego znaku. Znak na wyświetlaczu składa się z 5 kolumn i 8 rzędów. Własne znaki tworzymy zapalając lub gasząc piksele. 0 - zgaszony 1 - zapalony Na rysunku przedstawiony jest przykład tworzenia uproszczonego znaku stopni cencjusza. Tworzymy macież jako tablicę ośmiu liczb.
uint8_t znak[8] = { B00100, B01010, B00100, B00000, B00000, B00000, B00000, B00000 };
Lub tłumacząc liczby binarne na szestnastkowe:
const uint8_t znak[ ] PROGMEM = { 0x27,0x57,0x27,0x07,0x07,0x07,0x07,0x07, };
Wstawiamy do naszego kodu.
#include <Wire.h> #include <LiquidCrystal_I2C.h> #define LCD_SDA_PIN D2 #define LCD_SCL_PIN D1
uint8_t znak[8] = { B00100, B01010, B00100, B00000, B00000, B00000, B00000, B00000 };
#define LCD_COLUMNS 16 #define LCD_ROWS 2
LiquidCrystal_I2C lcd(0x38, LCD_COLUMNS, LCD_ROWS);
void setup(){ Wire.begin(LCD_SDA_PIN, LCD_SCL_PIN);
lcd.begin(); lcd.backlight();
//dodanie znaku na wyświelaczu lcd.createChar(0, znak); } void loop(){ }
W ten sposób możemy dodać do ośmiu znaków zmieniając liczbę w nawiasie kwadratowym od 0 do 7. uint8_t znak[0]
Zmienne:
Żeby zapamiętać liczbę, trzeba stworzyć zmienną typu int liczby całkowite ujemne lub dodatnie.
int nazwaZmiennej;
By zapamiętać napis używa się zmiennych typu String.
String zmiennaZNapisem;
Zapisywanie danych w zmiennej Do zapisywania danych w zmiennej służy znaczek =.
int zmienna;
zmienna = 3;
int druga_zmienna = 5;
String napis = "Napis w zmiennej";
Rodzaje zmiennych
int - przechowuje liczby od -32768 do 32767, zajmuje 2 bajty pamięci word - przechowuje liczby od 0 do 65535, zajmuje 2 bajty pamięci byte - przechowuje liczby od 0 do 255, zajmuje 1 bajt pamięci char - przechowuje liczby od -128 do 127, zajmuje 1 bajt pamięci long - przechowuje liczby od -2 miliardów do 2 miliardów, zajmuje 4 bajty pamięci unsigned long - przechowuje liczby od 0 do 4 miliardów, zajmuje 4 bajty pamięci
Zmienne do liczb ułamkowych:
float - zapamiętuje ułamki z dokładnością do 7 cyfr po przecinku, zajmuje 4 bajty double - zapamiętuje ułamki z dokładnością do 15 cyfr po przecinku, zajmuje 8 bajtów
float zmiennaZUlamkiem = 2.54;
double liczbaPi = 3.1415926535897;
Przetwarzanie jednego typu na inny
Czasem zachodzi potrzeba zamiany jednego rodzaju zmiennej na inny np. liczbę na napis.
String tekst; int liczba = 10;
tekst = String(liczba); Zamienia liczbę ze zmiennej "liczba" na tekst w zmiennej "tekst". Wystarczy napisać na jaki typ chcesz zamienić i w nawiasie wstawić nazwę zmiennej.
Dostępne typy do zamiany to:
char() - zamienia dowolny typ na char byte() - zamienia dowolny typ na byte int() - zamienia dowolny typ na int word() - zamienia dowolny typ na word long() - zamienia dowolny typ na long float() - zamienia dowolny typ na float String() - zamienia dowolny typ na String
Obliczenia na zmiennych
Możesz przekazać dane z jednej zmiennej do drugiej.
zmienna1 = zamienna2;
Możesz robić obliczenia i ich wynik zapisywać do zamiennej.
zmienna2 = 2 + 2;
Można robić obliczenia z udziałem zmiennych.
zmienna2 = zamienna1 * 3;
Dostępne znaczki do obliczeń:
= - przekazanie danych do zmiennej + - dodawanie - - odejmowanie * - mnożenie / - dzielenie % - reszta z dzielenia ( i ) - działania w nawiasie wykonują się jako pierwsze
Skróty obliczeń
Jeśli operujesz na tej samej zmiennej, są też skróty niektórych operacji. Zamiast pisać:
zmienna = zmienna + 1; Można napisać w skrócie:
zmienna += 1; lub zmienna++;
Dostępne skróty to:
+= -= *= /= %=
Warunki:
Instrukcje zwane warunkami służą do wydaniu procesorowi poleceń wymagających jego decyzji. Służy do tego komenda if np.:
if (zmienna > 3) { digitalWrite(1, LOW); } else { digitalWrite(1, HIGH); }
Jeżeli warunki w nawiasie są spełnione to zostanie wykonany kod między klamerkami. W przypadku gdy warunek nie jest spełniony możemy zlecić wykonanie instrukcji else która wykona polecenie zawarte w swoich klamerkach.
Dostępne operatory: == - dane są takie same != - dane są różne > - wartość z lewej jest większa niż z prawej < - wartość z lewej jest mniejsza niż z prawej >= - wartość z lewej jest większa lub równa <= - wartość z lewej jest mniejsza lub równa && - obydwa warunki muszą być spełnione || - jeden z warunków może być spełniony ! - wynik warunku będzie odwrócony
if (zmienna1 == 5 && zmienna2 > 10) {
} W tym przypadku zmienna musi spełniać oba warunki. W tedy zostanie wykonana instrukcje z klamerek.
|