Home

Arduino - wybrane instrukcje

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.