Struny na Arduino Czym są, do czego służą i jak ich używać do planowania projektów Free Hardware?

Struny na Arduino są bardzo przydatnymi narzędziami, które musisz użyć karty, aby ją zaprogramować ten Z tego powodu ważne jest, aby wiedzieć, do czego służą te funkcje i funkcje jakie łańcuchy? możesz znaleźć.

Dlatego koniecznie przeczytaj ten artykuł do końca, ponieważ wyjaśnimy, jakie łańcuchy są dostępne i jakiej składni należy użyć zrozumieć swoją pracę.

Ale to nie wszystko, możesz też znaleźć poradnik jak z niego właściwie korzystać ciąg (obiekt) oraz listę najlepszych projektów, które możesz wykonać samodzielnie.

Co to jest ciąg programowania Arduino i do czego służą podczas programowania tego typu sprzętu?

W programowanie arduino ten Struny to narzędzia używane do przechowywania ciągów. Dlatego łańcuch nie jest brane pod uwagę jako dane same w sobie, ale jako klasa od nich zależna. Ich koniec jest sygnałem zerowym. Ponadto charakteryzują się rezerwacją określonej pojemności pamięci stół arduino stworzyć bufor i móc go intensywnie używać możliwości oferowane użytkownikom.

Rodzaje ciągów w programowaniu Arduino Co to jest?

Możesz znaleźć różne rodzaje łańcuchów używane w programowaniu Arduino.

Każdy z nich pokażemy poniżej:

Seria postaci

Tabela Char to tabela znaków używanych w dużych ciągach tekstowych ten Oznacza to, że za każdym razem, gdy pracujesz nad ciągiem C++ kończącym się na 0 ( 0), tworzonych jest więcej struktur syntezy pamięci, które zużywają mniej pamięci i w inny sposób ciąg zostanie rozpoznany jako char ten Pamiętaj, że zawsze musisz kończyć się znakiem zerowym i możesz odwoływać się do poszczególnych znaków w ciągu.

Uprzejmy

W przypadku braku pracy z wieloma tekstami , możesz użyć obiektu napisowego ten Te zajęcia dane optymalizują zarządzanie ciągami za pomocą metod jest używany przez użytkowników między innymi do porównywania dwóch ciągów, wyszukiwania określonych znaków, wklejania i dodawania elementów do ciągu.

Operatory ciągów

Operatory są symbolami używane do zdefiniowania konkretnej dyrektywy suri Seria. W ten sposób możesz określić akcje używane do dodawania, eksportowania i sprawdzania, czy określony znak w ciągu jest prawdziwy, czy nie.

Pisanie ciągu znaków (tablicy znaków) Jak rozumieć jego stwierdzenia i warunki użytkowania?

Podczas używania długi ciąg tekstowy, powinieneś użyć seria postaci ten

Aby to zrobić, pokażemy Ci, jak sobie z tym poradzić:

sprawozdania

Zdania, które są poprawne w ciągu dla ciągu, to:

  • znak Str1 [14]? Ta składnia jest używana do ogólnego wykonania tabeli.
  • znak Str2 [4] = {’a’, 'u’, 'i’}; W tym przypadku określone są dodatkowe znaki, które chcę, a kompilator doda znak zerowy.
  • znak Str3 [4] = {’a’, 'u’, 'i’, ’ 0′}; Jeśli wolisz i chcesz wprowadzić znak zerowy ręcznie, powinieneś użyć tej struktury.
  • Znak Str4 [] = „ipap”; Możesz przygotować ciąg ze stałą, używając indywidualnych cudzysłowów. IDE określi rozmiar tabeli.
  • Postać str5 [8] = „Ipaparduino”; Jeśli ustawisz rozmiar ręcznie i ustawisz stały, użyj tej składni.
  • Znak Str6 [15] = „Ipaparduino”; Ta struktura pozwala dodać większy ciąg, ponieważ wciąż jest miejsce.

Wypowiedzenie anulowane

Używane są zaciski zerowe aby określić, gdzie kończy się struna w tym celu należy wziąć pod uwagę sygnał zerowy , z Kod ASCII na końcu funkcji. Można dołączyć ręcznie, pisząc „ 0” lub automatycznie, niech tak będzie interpretowane przez Arduino IDE ten

Tabele kanałów

Tabele służą do skonfigurować ciągi, które zawierają duże ilości tekstu ten W ten sposób praca jest łatwiejsza, ponieważ zmniejsza się złożoność operacji.

Dowiedz się krok po kroku, jak używać ciągu znaków (obiektu) do programowania w Arduino

Aby użyć ciągu w IDE, musisz wykonać ten krok po kroku:

Emerytura

Pierwszą rzeczą, której będziesz potrzebować cząber Jak sobie z tym poradzić struktura łańcucha tenικόςwspomnij o tej reklamie

Aby to zrobić, musisz wziąć pod uwagę składnię użytą w (object):

  • łańcuch (val)
  • łańcuch (wartość, podstawa)
  • łańcuch (val, miejsca dziesiętne)

Parametry

Następnie musisz zastosować parametry użyte w poprzedniej składni:

  • wartość: odnosi się do zmiennej, którą należy sformatować, aby uzyskać ciąg. Dane obsługiwane w tych parametrach to byte, char, double, float, int, long, string, unsigned int i unsigned long.
  • baza: ten parametr jest opcjonalny i wskazuje podstawę, na której zmienna powinna być sformatowana. Domyślnie ma podstawę 10, ale może być również używany w systemie szesnastkowym i binarnym. Na przykład String (14, HEX) i String (13, BIN).
  • miejsca dziesiętne: gdy jako wartość używana jest liczba zmiennoprzecinkowa lub podwójna, należy podać liczbę dziesiętną.

Charakterystyka

Wreszcie będzie potrzebny zawierać funkcje La łańcuch.

Funkcje wykorzystywane w Arduino IDE to:

  • charAt (): funkcja ta umożliwia dostęp do określonego elementu łańcucha.
  • porównać z (): za pomocą tego narzędzia możesz porównać dwa ciągi, a tym samym określić, czy są one równe, czy nie.
  • konkat (): gdy potrzebujesz dodać element lub parametr do ciągu, powinieneś użyć tej funkcji.
  • c_str (): Ta zmienna jest używana, gdy trzeba przekonwertować ciąg na ciąg typu C.
  • kończy się na (): służy do sprawdzenia, czy określony ciąg kończy się określonym znakiem.
  • jest równe (): możesz użyć tej funkcji, aby porównać dwa ciągi i znaleźć równość.
  • równa się wielkość liter pomiń (): Podobnie jak poprzednia funkcja, ta zmienna pozwala porównać dwa ciągi, ale ignoruje wielkie i małe litery.
  • getBytes (): umożliwia kopiowanie znaków z ciągu.
  • index of (): Ta funkcja jest używana w ciągu, gdy trzeba wyszukać ciąg lub wartość w ciągu.
  • lastIndexOf (): służy do znajdowania znaku lub ciągu.
  • długość (): kiedy potrzebuję znać długość ciągu, powinieneś użyć tej funkcji.
  • odejmowanie (): usuwać lub modyfikować znaki.
  • zastąpi cię może zamienić jeden znak na inny w ciągu.
  • Książka (): możesz użyć tej funkcji, aby utworzyć bufor w pamięci karty, dzięki czemu możesz pracować z procesami bez wpływu na wydajność sprzętu.
  • ustawCharAt (): używany do osadzenia sygnału.
  • zacząć od (): to namaszczenie charakteryzuje się kontrolą, że sekwencja zaczyna się od określonego elementu.
  • podłoża (): Jej nazwa mówi wszystko, ta funkcja służy do znalezienia podciągu w ciągu.
  • toCharArray (): umożliwia kopiowanie znaków do wybranego bufora w celu utworzenia miejsca w pamięci.
  • podwójne (): Jeśli ciąg jest poprawny, można go użyć do skopiowania.
  • doInt (): Ciąg można przekonwertować na liczbę całkowitą, jeśli jest poprawny.
  • pływak (): udaje się przekonwertować ciąg na znak zmiennoprzecinkowy.
  • dla małych liter (): gdy ciąg jest wielkimi literami i musi być małymi, użyj tej funkcji.
  • wielkie litery (): jest to przeciwieństwo poprzedniej funkcji.
  • kończyć się (): możesz użyć tego narzędzia, aby uzyskać białe znaki na początku lub na końcu wersji ciągu.

Lista najlepszych projektów zaplanowanych w Strings, które możesz wykonać samodzielnie

Poniżej przedstawiamy najlepsze projekty, które możesz programować za pomocą ciągów ten

Zaczynajmy:

Urządzenie szybkiego reagowania

Z Płytka Arduino UNO , przycisk, model, ekran led, zestaw 10k rezystorów potrzebnych do instalacji, możesz stworzyć ekran, na którym wpisujesz pytanie i otrzymujesz losową odpowiedź. Aktywować pytania i odpowiedzi, użyj ciągu.

Kody do użycia:

#zawierać

#zawierać

#zawierać

#zawierać

„UPDATE” Chcesz dowiedzieć się więcej o ciągach w Arduino i ich działaniu? ⭐ ODWIEDŹ TUTAJ ⭐ i dowiedz się wszystkiego o SCRATCH! „

Teraz musisz uwzględnić zmienne i ustawić je na ekranie:

#define SCREEN_WIDTH 128

#define SCREEN_HEIGHT 32

#define STRING_ARRAYSIZE 10

// Deklaracja dla ekranu SSD1306 podłączonego do I2C (piny SDA, SCL) - Arduino UNO: A4 (SDA - Dane), A5 (SCL - Zegar)

#define OLED_RESET 4 // Reset pin # (lub -1, jeśli udostępniasz pin resetowania Arduino)

Wyświetlacz Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT i przewód, OLED_RESET);

Ustaw zmienne przycisku:

const int przyciskPin = 2;

int Stan przycisku = 0;

int lastButtonState = 0;

int liczbalosowa = 0;

String mainText = "Zapytaj";

pusta konfiguracja () {

// Konfiguracja szeregowa

początek (9600);

// Konfiguracja OLED

// SSD1306_SWITCHCAPVCC = generuj napięcie wyświetlacza z 3,3 V wewnętrznie

if (! display.begin (SSD1306_SWITCHCAPVCC, 0x3C)) {// Adres 0x3C dla 128x32

println (F ("Nie można przydzielić SSD1306"));

dla (;;); // Nie kontynuuj, pętla w nieskończoność

}

displayTextOnOLED (mainText);

// PIN dedykowany do konfiguracji przycisków

pinMode (buttonPin, INPUT);

// jeśli pin 0 wejścia analogowego nie jest podłączony, losowy analog

// szum spowoduje wygenerowanie wywołania randomSeed()

// różne numery startowe przy każdym uruchomieniu szkicu.

// randomSeed() następnie przetasuje funkcję random.

randomSeed (analogowyOdczyt (0));

}

// celem jest wysłuchanie stanu przycisku

// i po naciśnięciu OLED, aby wyświetlić inny tekst

// po zwolnieniu, aby wyświetlić ustawienia tekstu ()

pusta pętla () {

// odczytaj stan wartości przycisku:

buttonState = digitalRead (buttonPin);

if (buttonState! = lastButtonState) {

if (stan przycisku == WYSOKI) {

displayTextOnOLED (losowy tekst ());

} inny {

displayTextOnOLED (mainText);

}

}

lastButtonState = buttonState;

}

void displayTextOnOLED (ciąg) {

wyczyśćWyświetlacz ();

setTextSize (2); // Rysuj tekst w skali 2X

setTextColor (SSD1306_WHITE);

setCursor (0,0);

println (str);

wyświetlacz (); // Wyświetl początkowy tekst

}

Użyj ciągu:

Ciąg randomText (nieważny) {

String texts [STRING_ARRAYSIZE] = {"Da", "Nu", "Nu stiu!", "Nu vreau!", "Du-te naibii!", "Varule", "Te pup!", "Sigur!" , "Sigur może nu!", "Nie!"};

if (buttonState! = lastButtonState) {

randomNumber = losowo (1, 10);

zwróć teksty [losowa liczba];

} inny {

zwróć teksty [losowa liczba];

}

}

Stacja radarowa

Do tego projektu potrzebny będzie panel Arduino , czujnik ultradźwiękowy HC-SR04, od serwomotor, kable i rezystor 10k. Będziesz musiał podłączyć czujnik z pinami 10 i 11 do płytki a następnie serwo do pinu nr 12.

Następnie musisz wprowadzić te kody w ciągach:

#zawierać .

const int trigPin = 10;

const int echoPin = 11;

długi czas trwania;

odległość międzymiastowa;

Aby przetestować serwomotor, musisz stworzyć obiekt serwo:

Moje Serwo Serwo;

pusta konfiguracja () {

pinMode (trigPin, WYJŚCIE);

Tryb PinOutput (echoPin, INPUT);

początek (9600);

krawat (12);

}

pusta pętla () {

Ustaw promień serwomechanizmu od 15 do 165 stopni:

dla (int i = 15; i <= 165; i ++) {

pisać (i);

opóźnienie (30);

odległość = obliczOdległość ();

druk (i);

wrażenie (",");

druk (odległość);

wrażenie (".");

}

dla (int i = 165; i> 15; i -) {

Napisz do mnie);

opóźnienie (30);

odległość = obliczOdległość ();

druk (i);

wrażenie (",");

druk (odległość);

wrażenie (".");

}

}

int ObliczOdległość () {

digitalWrite (trigPin, LOW);

opóźnienieMikrosekund (2);

digitalWrite (trigPin, HIGH);

opóźnienieMikrosekund (10);

digitalWrite (trigPin, LOW);

czas trwania = pulseIn (echoPin, HIGH);

odległość = czas trwania * 0,034 / 2;

odległość powrotu;

}

Użyj SerialEvent (), aby otrzymać wartości odległości i kąta:

pusty DrawRadar () {

pushMatrix ();

tłumaczyć (960,1000);

bez dopełnienia ();

obrysWaga (2);

udar (98,245,31 XNUMX);

łuk łuku (0,0,1800,1800, PI, DWA_PI);

łuk (0,0,1400,1400, PI, DWA_PI);

łuk (0,0,1000,1000, PI, DWA_PI);

łuk (0,0,600,600, PI, DWA_PI);

linia linii kątowych (-960,0,960,0);

linia (0,0, -960 cos (radiany (30)), - 960 sin (radiany (30)));

linia (0,0, -960 cos (radiany (60)), - 960 sin (radiany (60)));

linia (0,0, -960 cos (radiany (90)), - 960 sin (radiany (90)));

linia (0,0, -960 cos (radiany (120)), - 960sin (radiany (120)));

linia (0,0, -960 cos (radiany (150)), - 960 sin (radiany (150)));

linia (-960 * cos (radiany (30)), 0.960.0);

popMatrix ();

}

Narysuj linie, które będą widoczne na radarze:

pusta linia rysowania () {

pushMatrix ();

obrysWaga (9);

skok (30, 250, 60);

tłumaczyć (960,1000);

linia lokalizacji (0,0,950 cos (radianów (iAngle)), - 950 sin (radianów (iAngle)));

popMatrix ();

}

Zrzut ekranu radarowego 04

Musisz teraz zaprojektować obiekty wykryte przez radar:

pusty obiekt do rysowania () {

pushMatrix ();

tłumaczyć (960,1000);

obrysWaga (9);

skok (255, 10, 10);

pixsOdległość = iOdległość 22,5;

jeśli (iOdległość <40) {

// narysuj obiekt zgodnie z kątem i

linia odległości (pixsDistance cos (radiany (iAngle)), -pixsDistance sin (radiany (iAngle)), 950 cos (radiany (iAngle)), - 950 * sin (radiany (iAngle));

}

popMatrix ();

}

Dodaj słowa do ekranu:

pusty druk () {

wypełnienie (98 245,31);

tekstFont (orcFont);

bez skoku ();

wypełnienie (0,4);

prostokąt (0, 0, szerokość, 1010);

wypełnienie (98 245,31); // zielony kolor

DrawRadar ();

Narysuj linię ();

DrawObject ();

narysujTekst ();

}

Zaplanuj radar:

importuj serię przetwarzania. *;

import java.awt.event.KeyEvent;


import java.io.IOException;


port szeregowy myPort;


Kąt łańcucha = "";

Dodaj komentarz