facebook pixel מדריך: פירוט שפת תכנות - תקשורת - ()Serial.print - www.4project.co.il
Main logo www.4project.co.il
כל הרכיבים לפרוייקט שלכם
עגלת קניות

העגלה ריקה

פירוט שפת תכנות - תקשורת - ()Serial.print


2022-06-14 09:42:00
פונקציית ()print מדפיסה נתונים דרך ערוץ תקשורת טורית כמחרוזת תווים הקריאה לבן אדם. לפונקציה זו יש הרבה צורות. מספרים שלמים מודפסים כתו ASCII לכל ספרה. גם מספרים עם נקודה צפה מודפסים כל ספרה בנפרד עם שתי ספרות אחרי הנקודה כברירת מחדל. בתים (bytes) מוצגים כתו אחד. תווים (chars) ומחרוזות (string) נשלחים כמו שהם. לדוגמה:
קוד: בחר הכל
Serial.print(78) gives "78"
Serial.print(1.23456) gives "1.23"
Serial.print('N') gives "N"
Serial.print("Hello world.") gives "Hello world."


למספרים שלמים (integers) הפרמטר השני (אופציונלי) יכול לציין את הבסיס בו יוצג המספר, אפשר להשתמש בקבועים הבאים:
  • BIN - תצוגה בינארית (binary), או בסיס 2
  • OCT - תצוגה אוקטאלית (octal), או בסיס 8
  • DEC - תצוגה דצימלית (decimal), או בסיס 10
  • HEX - תצוגה הקסה-דצימלית (hexadecimal), או בסיס 16

למספרים עם נקודה צפה (floats), הפרמטר השני יכול לציין את כמות הספרות אחרי הנקודה. לדוגמה:
קוד: בחר הכל
Serial.print(78, BIN) gives "1001110"
Serial.print(78, OCT) gives "116"
Serial.print(78, DEC) gives "78"
Serial.print(78, HEX) gives "4E"
Serial.println(1.23456, 0) gives "1"
Serial.println(1.23456, 2) gives "1.23"
Serial.println(1.23456, 4) gives "1.2346"


אפשר להדפיס מחרוזות שנשמרו בזכרון FLASH ע"י שימוש ב-()F (ראו הסבר ב-PROGMEM). לדוגמה:
קוד: בחר הכל
Serial.print(F(“Hello World”));


כדי לשלוח בית (byte) אחד השתמשו ב-()Serial.write.


תחביר

קוד: בחר הכל
Serial.print(val);
Serial.print(val, format);

פרמטרים:
val - נתונים שצריך להדפיס, מכל סוג
format - למספרים שלמים מציין את הבסיס להצגה, למספרים עם נקודה צפה מציין את כמות הספרות אחרי הנקודה

הפונקציה מחזירה את כמות הבתים (bytes) שהודפסו. הערך המוחזר הוא מסוג long.


דוגמה

קוד: בחר הכל
/*
Uses a FOR loop for data and prints a number in various formats.
*/
int x = 0;    // variable

void setup() {
  Serial.begin(9600);      // open the serial port at 9600 bps:   
}

void loop() { 
  // print labels
  Serial.print("NO FORMAT");       // prints a label
  Serial.print("\t");              // prints a tab

  Serial.print("DEC"); 
  Serial.print("\t");     

  Serial.print("HEX");
  Serial.print("\t");  

  Serial.print("OCT");
  Serial.print("\t");

  Serial.print("BIN");
  Serial.print("\t");

  for(x=0; x< 64; x++){    // only part of the ASCII chart, change to suit
    // print it out in many formats:
    Serial.print(x);       // print as an ASCII-encoded decimal - same as "DEC"
    Serial.print("\t");    // prints a tab

    Serial.print(x, DEC);  // print as an ASCII-encoded decimal
    Serial.print("\t");    // prints a tab

    Serial.print(x, HEX);  // print as an ASCII-encoded hexadecimal
    Serial.print("\t");    // prints a tab

    Serial.print(x, OCT);  // print as an ASCII-encoded octal
    Serial.print("\t");    // prints a tab

    Serial.println(x, BIN);  // print as an ASCII-encoded binary
    //                             then adds the carriage return with "println"
    delay(200);            // delay 200 milliseconds
  }
  Serial.println("");      // prints another carriage return
}


שימו לב:
החל מגרסה 1.0 של סביבת הפיתוח השידור דרך Serial הוא א-סינכרוני (asynchronous), מה שאומר שפונקציה ()Serial.print תחזור לפני שהנתונים נשלחו.


ראו גם:

()begin
()end
()available
()read
()peek
()flush
()println
()write
()SerialEvent
מדריך - Memory - TODO

פירוט שפת תכנות לסביבת Arduino


עמוד זה הוא תרגום של ()print לפי רישיון Creative Commons Attribution-ShareAlike 3.0.