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
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 = "";