working V1
This commit is contained in:
parent
6933864dbb
commit
4e52ba30e5
2 changed files with 38 additions and 2 deletions
1
.vscode/.cortex-debug.registers.state.json
vendored
Normal file
1
.vscode/.cortex-debug.registers.state.json
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
[]
|
||||||
|
|
@ -1,17 +1,52 @@
|
||||||
|
#include <Wire.h> //for screen
|
||||||
|
#include <Adafruit_GFX.h> //for screen
|
||||||
|
#include "Adafruit_LEDBackpack.h" //for screen
|
||||||
|
#include <string>
|
||||||
|
|
||||||
#define outArrSize 100
|
#define outArrSize 100
|
||||||
|
#define DISPLAY_ADDRESS 0x70 //I2C address of screen
|
||||||
|
#define SCREEN_BRIGHTNESS 15
|
||||||
|
|
||||||
|
//vars for serial communication
|
||||||
String incomingData;
|
String incomingData;
|
||||||
char outData[outArrSize];
|
char outData[outArrSize];
|
||||||
|
|
||||||
|
//vars for screen
|
||||||
|
Adafruit_AlphaNum4 disp = Adafruit_AlphaNum4();
|
||||||
|
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
|
//serial setup
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
Serial.println("ready for Data:\n");
|
Serial.println("ready for Data:\n");
|
||||||
|
//setup screen
|
||||||
|
Wire.setSCL(17);
|
||||||
|
Wire.setSDA(16);
|
||||||
|
disp.begin(DISPLAY_ADDRESS);
|
||||||
|
disp.setBrightness(SCREEN_BRIGHTNESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
|
||||||
if (Serial.available() > 0) {
|
if (Serial.available() > 0) {
|
||||||
|
disp.clear();
|
||||||
incomingData = Serial.readStringUntil(':');
|
incomingData = Serial.readStringUntil(':');
|
||||||
incomingData.toCharArray(outData, outArrSize);
|
float speed = incomingData.toFloat();
|
||||||
Serial.write(outData);
|
int temp = speed * 10;
|
||||||
|
//int temp = rand();
|
||||||
|
if (temp < 10) { temp = 0; } // show 0 when stopped and not noise.
|
||||||
|
int digit0 = temp / 1000;
|
||||||
|
int digit1 = (temp / 100) - (digit0 * 10);
|
||||||
|
int digit2 = (temp / 10) - (digit0 * 100) - (digit1 * 10);
|
||||||
|
int digit3 = temp - (digit0 * 1000) - (digit1 * 100) - (digit2 * 10);
|
||||||
|
if (speed > 100) { //dont show leading 0 if going under 100km/h
|
||||||
|
disp.writeDigitAscii(0, 48 + digit0);
|
||||||
|
}
|
||||||
|
if (speed > 10) { //dont show 10s digit if less then 10km/h
|
||||||
|
disp.writeDigitAscii(1, 48 + digit1);
|
||||||
|
}
|
||||||
|
disp.writeDigitAscii(2, 48 + digit2, true);
|
||||||
|
disp.writeDigitAscii(3, 48 + digit3);
|
||||||
|
disp.writeDisplay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue