Skip to content

Commit

Permalink
增加Arduino使用的example
Browse files Browse the repository at this point in the history
部分源自:ricmoo/QRCode#12

Signed-off-by: Meco Man <[email protected]>
  • Loading branch information
mysterywolf committed Mar 20, 2022
1 parent ff5f274 commit af1d934
Show file tree
Hide file tree
Showing 2 changed files with 128 additions and 0 deletions.
56 changes: 56 additions & 0 deletions examples/QRCode/QRCode.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/**
* QRCode
*
* A quick example of generating a QR code.
*
* This prints the QR code to the serial monitor as solid blocks. Each module
* is two characters wide, since the monospace font used in the serial monitor
* is approximately twice as tall as wide.
*
*/

#include "qrcode.h"

void setup() {
Serial.begin(115200);

// Start time
uint32_t dt = millis();

// Create the QR code
QRCode qrcode;
uint8_t qrcodeData[qrcode_getBufferSize(3)];
qrcode_initText(&qrcode, qrcodeData, 3, 0, "HELLO WORLD");

// Delta time
dt = millis() - dt;
Serial.print("QR Code Generation Time: ");
Serial.print(dt);
Serial.print("\n");

// Top quiet zone
Serial.print("\n\n\n\n");

for (uint8_t y = 0; y < qrcode.size; y++) {

// Left quiet zone
Serial.print(" ");

// Each horizontal module
for (uint8_t x = 0; x < qrcode.size; x++) {

// Print each module (UTF-8 \u2588 is a solid block)
Serial.print(qrcode_getModule(&qrcode, x, y) ? "\u2588\u2588": " ");

}

Serial.print("\n");
}

// Bottom quiet zone
Serial.print("\n\n\n\n");
}

void loop() {

}
72 changes: 72 additions & 0 deletions examples/QRCode/QRCode_halfsize.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
/**
* QRCode
*
* A quick example of generating a QR code.
*
* This prints the QR code to the serial monitor as solid blocks. Each character
* contains two blocks, since the monospace font used in the serial monitor
* is approximately twice as tall as wide.
*
*/

#include "qrcode.h"

void setup() {
Serial.begin(115200);

// Start time
uint32_t dt = millis();

// Create the QR code
QRCode qrcode;
uint8_t qrcodeData[qrcode_getBufferSize(3)];
qrcode_initText(&qrcode, qrcodeData, 3, 0, "HELLO WORLD");

// Delta time
dt = millis() - dt;
Serial.print("QR Code Generation Time: ");
Serial.print(dt);
Serial.print("\n");

// Top quiet zone
Serial.print("\n\n\n\n");

for (uint8_t y = 0; y < qrcode.size; y += 2) {

// Left quiet zone
Serial.print(" ");

// Each horizontal module
for (uint8_t x = 0; x < qrcode.size; x++) {
uint8_t block = qrcode_getModule(&qrcode, x, y) << 1 | qrcode_getModule(&qrcode, x, y + 1);

switch (block)
{
case 0b00:
Serial.print(" ");
break;

case 0b01:
Serial.print("\u2584"); // \u2584 lower block
break;

case 0b10:
Serial.print("\u2580"); // \u2580 upper block
break;

case 0b11:
Serial.print("\u2588"); // \u2588 both blocks
break;
}
}

Serial.print("\n");
}

// Bottom quiet zone
Serial.print("\n\n\n\n");
}

void loop() {

}

0 comments on commit af1d934

Please sign in to comment.