ASCII táblázat

Haladó Arduino soros kimeneti funkciókat mutat be.


Utolsó felülvizsgálat: 2022.02.04 16:50


Ez a példa bemutatja a haladó soros nyomtatási funkciókat azáltal, hogy az Arduino Software (IDE) soros monitorán egy táblázatot generál a karakterekből és azok ASCII-értékeiből decimális, hexadecimális, oktális és bináris formában. Az ASCII-vel kapcsolatos további információkért lásd a https://www.asciitable.com/ és a https://hu.wikipedia.org/wiki/ASCII oldalakat.

Hardver szükséglet

  • Arduino kártya

Az áramkör

Nincs, de a kártyát a soros porton vagy az USB-porton keresztül kell csatlakoztatni a számítógéphez.

A kód

A vázlat soros kapcsolatra vár a setup()-ban, majd soronként kiírja az ASCII-táblázatot az utolsó nyomtatható karakterig. Amikor ez megtörtént, egy végtelen ciklusba kerül egy while struktúrában, és semmi más nem történik. Az Arduino Software (IDE) soros monitor ablakának bezárásával és megnyitásával resetelni lehet a kártyát, és újra lehet indítani a vázlatot.

/*
  ASCII table

  Minden lehetséges formátumban kinyomtatja a bájt értékeket:
  - nyers bináris értékként
  - ASCII-kódolt decimális, hexadecimális, oktális és bináris értékként

  Az ASCII-ről bővebben lásd https://www.asciitable.com/ és https://hu.wikipedia.org/wiki/ASCII

  Az áramkör: Nincs szükség külső hardverre.

  created 2006
  by Nicholas Zambetti <http://www.zambetti.com>
  modified 9 Apr 2012
  by Tom Igoe

  Ez a kód nyilvános.

  https://docs.arduino.cc/built-in-examples/communication/ASCIITable
*/

void setup() {
  //Inicializálja a soros portot, és megvárja, amíg megnyílik:
  Serial.begin(9600);
  while (!Serial) {
    ; // várja meg a soros port csatlakozását. Csak a natív USB-porthoz szükséges.
  }

  // kiírja a címkét záró sortöréssel
  Serial.println("ASCII Table ~ Character Map");
}

// az első látható ASCII-karakter '!' kódja 33:
int thisByte = 33;
// Az ASCII karaktereket egyszeres idézőjelbe is írhatja.
// Például, '!' ugyanaz, mint a 33, szóval ezt is használhatod:
// int thisByte = '!';

void loop() {
  // változatlanul kiírja az értéket, azaz a bájt nyers bináris változatát.
  // A Soros Monitor az összes bájtot ASCII-ként értelmezi, így a 33,
  // az első szám „!”-ként jelenik meg.
  Serial.write(thisByte);

  Serial.print(", dec: ");
  // Az értéket karakterláncként írja ki ASCII-kódolású decimális számként (10-es alapú).
  // A tizedes a Serial.print() és a Serial.println() alapértelmezett formátuma,
  // ezért nincs szükség módosítóra:
  Serial.print(thisByte);
  // De a módosítót decimálisra is deklarálhatod, ha akarod.
  // ez is működik, ha törli a megjegyzést: 

  // Serial.print(thisByte, DEC);


  Serial.print(", hex: ");
  // az értéket karakterláncként írja ki hexadecimális formában (16-os alapú):
  Serial.print(thisByte, HEX);

  Serial.print(", oct: ");
  // az értéket karakterláncként írja ki oktálisan (8-as alapú);
  Serial.print(thisByte, OCT);

  Serial.print(", bin: ");
  // kiírja az értéket sztringként binárisan (2-es alapú), és kiírja a záró sortörést is:
  Serial.println(thisByte, BIN);

  // ha az utolsó látható karakter '~' vagy 126 van kinyomtatva, állítsa le:
  if (thisByte == 126) {    // ezt is használhatnád if (thisByte == '~') {
    // Ez a ciklus örökké ismétlődik és nem csinál semmit.
    while (true) {
      continue;
    }
  }
  // folytassa a következő karakterrel
  thisByte++;
}

A kimenet:

ASCII Table ~ Character Map
!, dec: 33, hex: 21, oct: 41, bin: 100001
", dec: 34, hex: 22, oct: 42, bin: 100010
#, dec: 35, hex: 23, oct: 43, bin: 100011
$, dec: 36, hex: 24, oct: 44, bin: 100100
%, dec: 37, hex: 25, oct: 45, bin: 100101
&, dec: 38, hex: 26, oct: 46, bin: 100110
', dec: 39, hex: 27, oct: 47, bin: 100111
(, dec: 40, hex: 28, oct: 50, bin: 101000
), dec: 41, hex: 29, oct: 51, bin: 101001
*, dec: 42, hex: 2A, oct: 52, bin: 101010
+, dec: 43, hex: 2B, oct: 53, bin: 101011
,, dec: 44, hex: 2C, oct: 54, bin: 101100
-, dec: 45, hex: 2D, oct: 55, bin: 101101
., dec: 46, hex: 2E, oct: 56, bin: 101110
/, dec: 47, hex: 2F, oct: 57, bin: 101111
0, dec: 48, hex: 30, oct: 60, bin: 110000
1, dec: 49, hex: 31, oct: 61, bin: 110001
2, dec: 50, hex: 32, oct: 62, bin: 110010
3, dec: 51, hex: 33, oct: 63, bin: 110011
4, dec: 52, hex: 34, oct: 64, bin: 110100
5, dec: 53, hex: 35, oct: 65, bin: 110101
6, dec: 54, hex: 36, oct: 66, bin: 110110
7, dec: 55, hex: 37, oct: 67, bin: 110111
8, dec: 56, hex: 38, oct: 70, bin: 111000
9, dec: 57, hex: 39, oct: 71, bin: 111001
:, dec: 58, hex: 3A, oct: 72, bin: 111010
;, dec: 59, hex: 3B, oct: 73, bin: 111011
<, dec: 60, hex: 3C, oct: 74, bin: 111100
=, dec: 61, hex: 3D, oct: 75, bin: 111101
>, dec: 62, hex: 3E, oct: 76, bin: 111110
?, dec: 63, hex: 3F, oct: 77, bin: 111111
@, dec: 64, hex: 40, oct: 100, bin: 1000000
A, dec: 65, hex: 41, oct: 101, bin: 1000001
B, dec: 66, hex: 42, oct: 102, bin: 1000010
C, dec: 67, hex: 43, oct: 103, bin: 1000011
D, dec: 68, hex: 44, oct: 104, bin: 1000100
E, dec: 69, hex: 45, oct: 105, bin: 1000101
...

Tudj meg többet

További alapvető oktatóanyagokat a beépített példák részben talál.

Felfedezheti a nyelvi referenciát is, az Arduino programozási nyelv részletes gyűjteményét.