O‘n beshinchi amaliy mashg’ulot mavzusi


Arduino majmualaridagi UART interfeyslari ma’lumotlarni uzatish tezligi


Download 0.82 Mb.
bet2/10
Sana02.05.2023
Hajmi0.82 Mb.
#1423177
1   2   3   4   5   6   7   8   9   10
Bog'liq
15-amaliy mashg\'ulot

Arduino majmualaridagi UART interfeyslari ma’lumotlarni uzatish tezligi


Serial, begin funksiyasi bodlarda ketma-ket interfeys tezligini o‘rnatadi. Bod bir soniyada uzatiladigan bit sonini bildiradi. Agar biz 9600 bodni tanlasak, bir bit 1/9600 = 0.000104 s = 104 mksda uzatiladi. Bu juda yuqori tezlik hisoblanadi.


Serial.begin (Baudrate) funksiyasi ketma-ket portni ochadi va ma’lumotlarni ketma-ket uzatish uchun bod tezligini (ma'lumotlar uzatish tezligi) o‘rnatadi. Quyidagi bod tezliklaridan foydalanish mumkin: P 300

  • 1200

  • 4800

  • 9600

  • 14400

  • 19200

  • 28800

  • 38400

  • 57 600

  • 115200

Arduino Pro modulini yoki shunga o‘xshash turdagi modullarni qo‘shganda UART apparat interfeyslari konfiguratsiya quyidagicha sozlanishi mumkin:
Serial.begin (9600);
Seriall.begin (38400);
Serial2.begin (19200);
Serial3.begin (4800);


Arduino majmualaridagi UART interfeyslariga dastur yozish ketma-ketligi

Barcha interfeyslarda nomer mavjud. Birinchi interfeys UART0. Agar belgini chiqarishni istasangiz, unda bu holda serialx.print funksiyasi ishlatiladi, bu erda x UART interfeysi nomeri hisoblanadi.


Serial.println ("Hallo hier ist UART 0"); Seriall.println ("Hallo hier ist UART 1")
Serial2.println("Hallo hier ist UART 2"); Serial3.println ("Hallo hier ist UART 3")
Ketma-ket aloqada, 0(Rx) va 1(Tx) raqamli chiqishlaridan bir vaqtning o‘zida foydalanib bo‘lmaydi.
Serial.end()
Ketma-ket interfeys bilan ishni yakunlash va chiqishlarni boshqa maqsadlar uchun ishlatish uchun serial.end() funksiyadan foydalanishingiz mumkin.
Serial.read()
ketma-ket interfeysdan bir baytni o‘qiydi:
Serial.read () funksiyasi int x;
x = Serial.read ();
Serial.availablef)
Serial.available() funksiyasi ketma-ketlik buferida belgi mavjud yoki yo‘qligini tekshiradi. Bu funksiya, masalan, buferda hech qanaqa ma'lumot bo‘lmasa, dastur bloklarini o‘tkazish imkonini beradi. Bu funksiya ketma-ketlik interfeysi bilan ishlash uchun juda muhimdir. Quyida ushbu funksiyaning qanday ishlashi ko‘rsatilgan.
// Franzis Arduino
// Arduino Serial.available Funktion
byte eingabe, ausgabe;
void setup () {
Serial.begin (9600);
Serial.println ("Arduino Serial.available Funktion");
Serial.println (); }
void loop () {
if (Serial.available ()> 0) {
eingabe = Serial.read ();
Serial.print ("Ich habe folgendes Zeichen empfangen:");
ausgabe = char (eingabe); Serial.println (eingabe); }}
Bunda tiplarni o‘zgartirish aks ettirilgan. Agar o‘zgartirish bajarilmasa, ASCII kodi ko‘rsatiladi. Quyidagi misolni bajarib ko‘ring:
Serial.printIn (kirish ma'lumotlari, DEC);
Serial.print
Ushbu funksiya ketma-ketlik buferi tarkibini o‘chiradi. Ketma-ket ma’lumotlar taqsimlangandan keyin buferni tozalash uchun uni qo‘llang. Agar aloqada xatolar ro‘y bersa va ma'lumotlar buzilgan bo‘lsa, ular buferdan o‘chiriladi.
Serial.print()
Serial.print() funksiyasi ketma-ket uzatish buferidan ma'lumotlarni chiqaradi. Ma’lumotlar Integer, bayt, Char va Float ko‘rinishida bo‘ladi.
Format ko‘rsatilmasa, serial.print(x) funksiyasi UART buferidan o‘nli sonini chiqaradi:
int b = 79; Serial.print (b);
UART buferidan 79 soni chiqadi.
Bu serial.print (B, DEC) funksiyasi, DEC formatni bildirib, UART buferidan ASCII satridagi sonni chiqaradi:
int b = 79;
Serial.print (b, DEC);
UART buferidan ASCII satridagi 79 sonni chiqaradi.
Bu serial.print (b, HEX) funksiyasi, HEX formatni bildirib, UART buferidan bir sonni oʼn oltilik formatda ASCII satr sifatida chiqaradi:
int b = 79;
Serial.print (b, HEX);
ASCII satridagi " 4F " ni UАRT buferidan chiqaradi.
Bu serial.ost formatini koʼrsatuvchi print(B, OST) funksiyasi UART buferidan SEKTАL formatdagi ASCII satri sifatida raqam chiqaradi:
int b = 79 ;
Serial. print (b,OCT);
ASCII satrini " 117 " UАRT buferidan chiqaradi.
Bu serial.print (b, BIN) funksiyasi BIN formatini bildirib, UART buferidan bir sonni ASCII satrini binar formatda chiqaradi:
int b = 79 ;
Serial.print(b, BIN);
"1001111" ASCII satrini UАRT buferidan chiqaradi.
Bu serial.print (b, BYTE) funksiyasi bayt formatini bildirib, UART buferidan alohida bayt sifatida raqam chiqaradi:
int b = 79;
Serial.print(b, BАYT);
ASCII xarfini "0" UАRT buferidan chiqaradi.
Turli formatlarda chiqish misollar koʼrsatilgan.
// Franzis Arduino
// Arduino Serial.print Funktion
int x;
void setup() {
Serial.begin(9600);
Serial.printIn("Arduino Serial.print Funktion");
Serial.println(); }
void loop() {
Serial.print("NO FORMAT");
Serial.print("NO FORMAT");
Serial.print("\t"); // Print Tab
Serial.print("DEC"); // Decimal
Serial.print("\t");
Serial.print("HEX"); // Hexadezimal
Serial.print("\t");
Serial.print("OCT"); // Octal
Serial.print("\t");
Serial .print ("BIN") ; // Binar
Serial.print("\t");
Serial.println("BYTE"); // Byte
for(x=0; x< 64; x++)
{
// turli xil formatda chiqarish Serial.print(x); Serial.print(n\t");
Serial.print(x, DEC); Serial.print("\t");
Serial.print(x, HEX); Serial.print("\t");
Serial.print(x, ОСТ); Serial.print("\t");
Serial.print(x, BIN); Serial.print("\t");
Serial.println(x, BYTE);
delay(200); // 200 ms uzilish
}
Serial.println(""); }
Serial.println()
Bu funksiya ketma-ket portdan maʼlumotlarni chiqaradi va avtomatik ravishda yangi satrga oʼtadi.
Serial.write()
Serial.write() funksiyasi serial buferidan bayt maʼlumot chiqishini amalga oshiradi:
Serial.write(val); Serial.write(str) ; Serial.write (buf,len);
Parametrlar qiymati:

  • Val-alohida bayt yuboradi;

  • str-satrlarni baytlarda yuboradi;

  • buf-massivni baytlarda yuboradi;

  • len-massivning uzunligi (bufer oʼlchami).

Quyida misol aks ettirilgan.
//Franzis Arduino
//Arduino Serial.write Funktion
byte val = 65;
char str[] = "Test";
byte buf[] = { ' H' , ' a' , ' 1 \ ' 1' , ' о' } ;
byte len = 3;
void setup() {
Serial.begin(9600);
Serial.println("Arduino Serial.write
Serial.println(); }
void loop() {
Serial.println("ASCII Zeichen"); Serial.write(val); Serial.println();
Serial.println("String 1"); Serial.write(str); Serial.println();
Serial.println("String 2"); Serial.write(buf, len); Serial.println();
while(1);
Serial.write (buf,len) funksiyasi 3mga teng len oʼzgaruvchi belgilangan. Bu yoʼl, faqat birinchi uch belgi chiqish boʼladi.



Download 0.82 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling