mirror of https://github.com/arendst/Tasmota.git
80 lines
2.8 KiB
Arduino
80 lines
2.8 KiB
Arduino
|
/*
|
||
|
Serial Print example
|
||
|
|
||
|
Prints text typed to the Serial Monitor on the display. Connect an Arduino to a TM1637 4 digit 7-segment display. Connect the wires as descibed below. Run the sketch and open the Serial Monitor. Set the the speed to 9600 baud, set the line ending to Newline. Now type some text and press enter, the text will be displayed on the 7-segment display.
|
||
|
|
||
|
Note: make sure to set your serial monitor to line end: NEW LINE!
|
||
|
|
||
|
The circuit:
|
||
|
* connect TM1637 pin CLK to Arduino pin D4
|
||
|
* connect TM1637 pin DIO to Arduino pin D5
|
||
|
* connect TM1637 pin Vcc to Arduino pin 5V
|
||
|
* connect TM1637 pin GND to Arduino pin GND
|
||
|
|
||
|
Created 25 September 2015
|
||
|
By Bram Harmsen
|
||
|
|
||
|
http://url/of/online/tutorial.cc
|
||
|
|
||
|
*/
|
||
|
|
||
|
// include the SevenSegmentTM1637 library
|
||
|
#include "SevenSegmentTM1637.h"
|
||
|
|
||
|
/* initialize global TM1637 Display object
|
||
|
* The constructor takes two arguments, the number of the clock pin and the digital output pin:
|
||
|
* SevenSegmentTM1637(byte pinCLK, byte pinDIO);
|
||
|
*/
|
||
|
const byte PIN_CLK = 4; // define CLK pin (any digital pin)
|
||
|
const byte PIN_DIO = 5; // define DIO pin (any digital pin)
|
||
|
SevenSegmentTM1637 display(PIN_CLK, PIN_DIO);
|
||
|
|
||
|
// define a fixed buffer size for receiving characters via Serial
|
||
|
const byte BUFFER_SIZE = 128;
|
||
|
char serialBuffer[BUFFER_SIZE]; // initialize global serial buffer
|
||
|
|
||
|
// run setup code
|
||
|
void setup() {
|
||
|
display.begin(); // initializes the display
|
||
|
Serial.begin(9600); // initializes the Serial connection @ 9600 baud
|
||
|
Serial.println(F("Enter some text followed by ENTER"));
|
||
|
Serial.println(F("also make sure to set the line ending to Newline (\\n)"));
|
||
|
};
|
||
|
|
||
|
// run loop (forever)
|
||
|
void loop() {
|
||
|
// if received new serial data, print to display
|
||
|
if ( receivedSerialString() ) {
|
||
|
display.print(serialBuffer); // Print received serial data to display
|
||
|
Serial.print(F("Echo:\t")); // Echo serial data back to Serial Monitor
|
||
|
Serial.println(serialBuffer);
|
||
|
};
|
||
|
};
|
||
|
|
||
|
// Read in bytes from Serial Monitor and return true is ether the serialBuffer is full or a Newline character is received
|
||
|
bool receivedSerialString() {
|
||
|
static unsigned int i=0; // init static counter to keep track of count
|
||
|
|
||
|
while( Serial.available() ) { // check if new data arrived
|
||
|
|
||
|
if ( i == BUFFER_SIZE-1) { // if buffer is full RETURN true
|
||
|
serialBuffer[i] = '\0'; // add termination char
|
||
|
i = 0;
|
||
|
Serial.println(F("Buffer full!"));
|
||
|
return true;
|
||
|
};
|
||
|
|
||
|
char c = Serial.read(); // read new char from serial port
|
||
|
|
||
|
if ( c == '\n') { // if new line RETURN true
|
||
|
serialBuffer[i] = '\0'; // add termination char
|
||
|
i = 0;
|
||
|
return true;
|
||
|
} else {
|
||
|
serialBuffer[i] = c; // add received character to buffer
|
||
|
}
|
||
|
i++; // increase counter
|
||
|
};
|
||
|
return false; // default RETURN false
|
||
|
};
|